Wikipedia entry on HTTP列出了以下HTTP请求方法:
我有兴趣了解(特别是关于前五种方法):
我感谢所有的输入,如果你能分享一些(最好是轻的)阅读,那也很棒!
答案 0 :(得分:83)
以下是RFC 7231的摘要,已发布链接@Darrel的更新版本:
正如@John所提到的,所有请求方法都支持URL中的查询字符串(一个值得注意的例外可能是 OPTIONS ,如果URL是的话,这在我的测试中似乎很有用HOST/*
)。
我没有测试 CONNECT 和 PATCH 方法,因为我对它们没有兴趣。
答案 1 :(得分:28)
RFC 7231,HTTP 1.1语义和内容,是HTTP方法语义的最新和权威来源。此规范表明,对于可能包含在GET,HEAD,OPTIONS或CONNECT消息中的有效负载,没有明确的含义。第4.3.8节说客户端不得为TRACE请求发送正文。因此,只有TRACE不能有有效负载,但GET,HEAD,OPTIONS和CONNECT可能不会,如果客户端发送一个(意味着它可以忽略它),服务器不会知道如何处理它。 p>
如果您认为任何内容含糊不清,那么您可以a mailing list表达您的疑虑。
答案 2 :(得分:3)
我很确定GET请求是否可以拥有有效负载尚不清楚。 GET请求通常通过查询字符串发布表单数据,对于HEAD请求也是如此。 HEAD基本上是GET - 除了它不需要响应体。
(旁注:我说它不清楚,因为GET请求可以在技术上升级到另一个协议;事实上,一个版本的websockets就是这样做的,虽然一些代理软件可以很好地处理它,但其他代理软件却握紧了握手。 )
POST通常有一个正文。没有什么能阻止您使用查询字符串,但POST主体通常会在POST中包含表单数据。
有关更多(和更详细)的信息,我会点击实际的HTTP/1.1 specs。