我正在构建一个基于web的报告工具,它可以查询,但不会改变的大量数据。
为了验证报告查询,我使用一个表单进行输入验证。
我了解以下关于HTTP的知识:
,下面的情况如何?
我知道我可以很容易地使用POST和“破坏规则”,但是有一些明确的情况,在这种情况下,推荐POST用于幂等请求
另外,我是通过AJAX提交表单的,框架是Python/Django,但我不认为这会改变任何事情。
发布于 2016-03-23 22:07:01
我认为在这种情况下使用POST是可以接受的。引用HTTP 1.1 RFC
POST方法执行的操作可能不会导致可以由URI标识的资源。在这种情况下,200 (OK)或204 (无内容)是适当的响应状态,这取决于响应是否包括描述结果的实体。
在您的示例中,将在符合HTTP请求规范的服务器上创建“搜索结果”资源。您可以选择将结果资源作为响应返回,也可以选择将结果资源作为单独的URI返回到刚刚创建的资源,并且可能会被删除,因为结果资源在一分钟后不再需要(也就是说,正如您所说的,数据每隔一分钟更改一次)。
The data being reported changes every minute
每次提出请求时,它都将根据上述语句创建新的资源。
此外,您可以返回201状态和一个URL来检索搜索结果资源,但是我不确定您是否想要这种行为,但我只是附带说明。
第一个问题的第二部分说,结果不能缓存。这是您在服务器上配置的东西,可以返回必要的headers,以强制中间代理和客户端不缓存结果,例如,使用If-Modified-Since、Cache-control等。
您的第二个问题已经回答了,因为您必须使用POST请求而不是GET请求,因为URL字符限制。
https://stackoverflow.com/questions/36188866
复制相似问题