1

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

4

6 回答 6

5

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

于 2009-09-29T18:42:10.803 回答
4

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

于 2009-09-29T18:42:17.447 回答
2

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

IE 这里有一个 get 查询

  GET <url with params>

与后查询

  POST <url>
  ...
  <params>
于 2009-09-29T18:42:48.477 回答
2

POST 比 GET 多一个字母,所以它不那么紧凑。

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

于 2009-09-29T18:47:57.107 回答
2

您可能需要查看以下有关获取与发布可用性的信息。 http://www.w3.org/2001/tag/doc/whenToUseGet.html

把它们加起来:

在以下情况下使用 GET:

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

在以下情况下使用 POST:

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

请注意,这些都没有考虑请求的大小。想一想,您可以考虑一下互联网的早期,当时搜索引擎仅通过对它们爬取的链接执行 GET 请求就引起了数据库问题。这是因为一些程序员使用 GET 请求来更改资源的状态(例如删除记录、删除表等)。

于 2009-09-29T18:49:02.927 回答
1

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

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

来源:

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

于 2009-09-29T19:09:15.957 回答