POST方法请求这样一种目标资源,它通过资源的自己确定的语义处理封闭在请求中的表示。例如,POST被用于以下功能(等):

  • 将数据块(如HTML中的表单字段)提供给数据处理程序;
  • 在公告板,新闻组,邮件里标,博客,或者类似的文章群中发布一个消息;
  • 创建一个还没有被源服务器确定的资源;以及
  • 添加数据到资源的已存在表示上。

源服务器通过基于处理POST请求的结果来选择一个适合的状态码指示响应语义;几乎本规范定义的所有的状态码都可能在POST请求的响应中被接收到(除了2036(部分内容),304(未修改),416(范围不可满足))。

如果一个或多个资源在源服务器上作为POST请求成功处理的结果而被创建,源服务器应该发送一个包含Location头字段的201(创建)响应,这个头字段提供了被创建资源的标识符(7.1.2节),以及发送一个描述了请求状态同时提及新资源的表示。

POST请求的响应只有在他们包含明确的新鲜度信息(RFC7234,4.2.1节)的时候可以被缓存。然而,POST缓存没有被广泛实现。在源服务器希望客户端能够缓存POST的结果(以一种之后的GET能够复用的方式)的场景下源服务器可能发送200(成功)响应包含了结果以及一个Content-Location头字段,该字段与POST的有效请求URI有相同的值(3.1.4.2节)。

如果除了POST的结果与已存在的资源表示是等价的,源服务器可能通过发送一个在Location字段当中包含资源标识符的303(查看其他)响应将用户代理重定向。这有益于为用户代理提供资源标识符并通过更适合共享缓存的方法传送表示,虽然需要一个额外的请求作为代价(如果用户代理还没有缓存的表示)。

results matching ""

    No results matching ""