GET 要求は URL エンコードする必要があるため、POST は GET よりコンパクトですか?
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 よりも 1 文字多いため、コンパクトではありません。
コンパクトさが非常に重要で、HTTP セマンティクスを気にしない場合は、代わりにバイナリ プロトコルを使用してください。POST と GET のセマンティクスは異なり、HTTP はコンパクトさのために最適化されていません。
get と post の使いやすさに関する次の情報を確認することをお勧めします。 http://www.w3.org/2001/tag/doc/whenToUseGet.html
要約すると:
次の場合に GET を使用します。
インタラクションは質問に似ています。たとえば、ルックアップ、読み取り専用操作などです。
次の場合は POST を使用します。
インタラクションは命令に似ており、リソースの状態を変更します。そうしないと、ユーザーがインタラクションの結果に対して責任を負うことになります。
これは、リクエストのサイズを考慮していないことに注意してください。さらに考えてみると、検索エンジンがクロールしたリンクに対して GET 要求を実行するだけでデータベースの問題を引き起こしたインターネットの黎明期を考えてみてください。これは、一部のプログラマーが GET 要求を使用してリソースの状態を変更したためです (レコードの削除、テーブルの削除など)。
簡単なメモ: Yahoo YUI チームと YSlow によると、XMLHttpRequest オブジェクト (AJAX) を使用する場合、POST はほとんどの場合 2 つのパケットを使用しますが、GET は 1 つを使用します (コンテンツの長さが許す限り)。
これは、GET を使用すると、AJAX リクエストが「よりコンパクト」になることを意味します。
ソース: