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

cis*_*eat 20 post get request httpwebrequest

例如,使用Curl,我可以在GET请求中"发布"数据.这是有效的吗?我的意思是:

  • 是否禁止任何RFC规范?
  • 那个人有充分的理由使用它吗?

谢谢你的帮助.

小智 26

请参阅RFC2616 - 超文本传输​​协议 - HTTP/1.1,第4.3节"消息正文":

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

在第9.3节中,不允许包括实体在内的"GET".

所以,是的,您可以发送带有HTTP GET请求的实体主体.

  • 注意:您可以这样做,但是代理是否会破坏您的请求,以及目标服务器是否理解它,是否有人猜测. (3认同)

und*_*run 6

那里有一个"好理由"的用例.

elasticsearch在GET请求中使用实体主体数据来尝试将GET动词用作读取,同时还允许(单独的URL)允许(轻松)更复杂的规范.