8

HTTP メソッドがどのように機能し、どのように設計されているかは知っていますが、データを取得するためだけに使用する場合に、一部のメソッドが他のメソッドよりも高速かどうかを知りたいです。
私が取り組んでいるチームでは、以下のような多くの JQuery ajax リクエストに気付きました。

$.ajax({url: "../dir/someFile.json", method: 'post', dataType: 'json',
    error: function(...){ ... },
    success: function(...){ ... }       
});

このリクエストにはデータが送信されないため、明らかに「get」メソッドを使用します。これは、チームメイトがコードをコピーして貼り付けたときに発生した可能性があります。これも問題なく動作します。「get」に変更する正当な理由はないようです。

この場合、「get」メソッドを使用すると高速になると思いますが、それを確認するソースは見つかりませんでした。

4

4 に答える 4

3

一部のブラウザが POST リクエストを複数のパケットに分割することを示すいくつかの調査があります。これはパフォーマンスに影響を与える可能性があり、リクエストが遅くなると思われます。ただし、テストでは、POST の方が高速な場合があるようです。これがなぜなのかわかりません。

ただし、実際には、パフォーマンスの違いはごくわずかであり、意図したとおりに POST と GET を使用する必要があります。

読んだ:

于 2012-08-06T18:31:44.380 に答える
2

少なくとも IE の過去のバージョンでは、余分なパケットを転送する POST の問題があります。ここでこれについてのいくつかの議論:

http://josephscott.org/archives/2009/08/xmlhttprequest-xhr-uses-multiple-packets-for-http-post/

ただし、これが現在のブラウザーの群れとどの程度関連しているかはわかりません。

この記事で説明されているテストの結果は次のとおりです。

  • IE 6 – 2 パケット
  • IE 7 – 2 パケット
  • IE 8 – 2 パケット
  • Firefox 3.0.13 – 1 パケット
  • Firefox 3.5.2 – 1 パケット
  • Opera 9.27 – 2 パケット
  • Safari 4.0.3 – 2 パケット
  • Chrome 2.0.172.43 – 2 パケット
于 2012-08-06T18:25:04.007 に答える
0

All things being equal, there is no difference in network performance between GET, POST, or any of the other methods. It all depends on how the server handles a GET vs. POST request. A server may, for example, attempt to update a resource on POST but only search for it on GET.

Also, with GET, you can send data. In jQuery, it just gets serialized into the query string ($.get("someplace", data: { foo: "bar" }) gets sent as $.get("someplace?foo=bar")).

于 2012-08-06T18:24:34.287 に答える