使用GET请求发送POST数据有效吗?

时间:2010-01-14 13:20:11

标签: post httpwebrequest get request

以Curl为例,我可以在GET请求中“发布”数据。这是有效的吗?我的意思是:

  • 任何RFC规范都禁止这样做吗?
  • 有人有充分的理由使用它吗?

感谢您的帮助。

2 个答案:

答案 0 :(得分:22)

请参阅RFC2616 - Hypertext Transfer Protocol -- HTTP/1.1,第4.3节“消息正文”:

  

如果请求方法的规范(第5.1.1节)不允许在请求中发送实体主体,则消息体不得包含在请求中。

在第9.3节中,“GET”包括实体 - 身体不被禁止。

所以,是的,您可以使用HTTP GET请求发送实体主体。

答案 1 :(得分:6)

那里有一个“好理由”的用例。

elasticsearch使用GET请求中的entity-body数据尝试使用GET动词作为读取,同时允许比单独的url允许(更容易)更复杂的规范。