POST 是否比 GET 更紧凑,因为 GET 请求必须是 URL 编码的?
6 回答
两者的目的完全不同,所以我不会以这种方式比较它们。GET
用于数据检索,除此之外应该没有副作用。并且POST
用于发送数据,而不是检索它们。
POST也是如此。它们同样紧凑。这是数据去向的问题。对于 POST,它进入请求正文。对于 GET — 进入 URL 本身。此外,在multpart/form-data
编码的情况下(这是文件上传所必需的,但在这种情况下,GET 请求不是一个选项,无论如何)POST 将更加冗长。
不,POST 请求仍然必须放入 http 查询中。您只是没有将它们视为 URL 的一部分。
IE 这里有一个 get 查询
GET <url with params>
与后查询
POST <url>
...
<params>
POST 比 GET 多一个字母,所以它不那么紧凑。
如果紧凑性非常重要并且您不关心 HTTP 语义,请改用二进制协议。POST 和 GET 的语义不同,HTTP 没有针对紧凑性进行优化。
您可能需要查看以下有关获取与发布可用性的信息。 http://www.w3.org/2001/tag/doc/whenToUseGet.html
把它们加起来:
在以下情况下使用 GET:
互动更像是一个问题。例如,查找、只读操作等。
在以下情况下使用 POST:
交互更像是一个订单,改变资源的状态,或者用户将对交互的结果负责。
请注意,这些都没有考虑请求的大小。想一想,您可以考虑一下互联网的早期,当时搜索引擎仅通过对它们爬取的链接执行 GET 请求就引起了数据库问题。这是因为一些程序员使用 GET 请求来更改资源的状态(例如删除记录、删除表等)。
简单说明一下:根据 Yahoo YUI 团队和 YSlow 的说法,当使用 XMLHttpRequest 对象 (AJAX) 时,POST 几乎总是使用两个数据包,而 GET 将使用一个(内容长度允许)。
这意味着如果您使用 GET,您的 AJAX 请求会“更紧凑”。
来源: