什么更紧凑,GET或POST?

时间:2009-09-29 18:38:47

标签: http post get webserver data-transfer

POST是否比GET更紧凑,因为GET请求必须进行URL编码?

6 个答案:

答案 0 :(得分:5)

两者的目的完全不同,所以我不会以这种方式比较它们。 GET用于数据检索,除此之外不应有任何副作用。 POST用于发送数据,而不是检索数据。

答案 1 :(得分:4)

POST也是如此。它们同样紧凑。这是 数据的问题。对于POST,它进入请求正文。对于GET - 进入URL本身。此外,在multpart/form-data编码的情况下(文件上传需要,但在这种情况下GET请求不是一个选项,无论如何)POST将更加详细。

答案 2 :(得分:2)

不,POST请求仍然必须放入http查询中。您只是没有将它们视为URL的一部分。

IE这里是一个获取查询

  GET <url with params>

vs后查询

  POST <url>
  ...
  <params>

答案 3 :(得分:2)

POST中还有一个字母,而不是GET,所以它不那么紧凑。

如果紧凑性非常重要且您不关心HTTP语义,请改用二进制协议。 POST和GET的语义不同,HTTP没有针对紧凑性进行优化。

答案 4 :(得分:2)

您可能希望查看以下有关获取与后期可用性的信息。 http://www.w3.org/2001/tag/doc/whenToUseGet.html

总结一下:

如果符合以下条件,请使用GET:

互动更像是一个问题。例如,查找,只读操作等

使用POST if:

交互更像是一个订单,更改了资源的状态,或者用户将对交互结果负责。

请注意,这些都不考虑请求的SIZE。更多的想法,你可以考虑互联网的早期阶段,当搜索引擎只是通过对他们抓取的链接执行GET请求导致数据库问题。这是因为一些程序员使用GET请求来改变资源状态(例如删除记录,删除表等)。

答案 5 :(得分:1)

快速说明:根据Yahoo YUI团队和YSlow,当使用XMLHttpRequest对象(AJAX)时,POST几乎总是使用两个数据包,而GET将使用一个(内容长度允许)。

这意味着如果您使用GET,您的AJAX请求会“更紧凑”。

来源:

http://developer.yahoo.com/performance/rules.html#ajax_get