HTTP GETとHTTP POSTの違いは何ですか?

GET vs. POST

厳密に言えば、GETとPOSTの違いはアプリケーションの転送方法にあります。 GETの情報はURLで送信されます。 疑問符とユニオンシンボルを含むURLを見たことがある場合は、GETリクエストを探していました。example.com/ request.php?var1 = foo&var2 = barは、変数「var1」を次のようにエンコードするGET文字列です「foo」および変数「var2」を「bar」として。 POST情報はリクエストの本文に含まれており、URL文字列には表示されません(したがって、ユーザーには表示されません)。

正式なガイドライン

正式には、HTMLガイドラインでは、GETは「べき等の」リクエスト、または何も変更しないリクエストに使用する必要があるとしています。 たとえば、ローカル天気を返すWebページを想像してください: "example.com/weather.php?zipcode=12345"。 その要求を何度も送信する行為は何も変わりません。 POSTは、べき等でない要求に使用する必要があります。 たとえば、クレジットカードで購入したとします。 その請願書を何度も提出すると、かなり大きな変化につながる可能性があります。 POSTリクエストを再送信すると結果が生じるため(マイナーな場合でも)、通常、Webブラウザはユーザーにクエリフォームを本当に再送信することを確認するためのリクエストを表示します。

GETの利点

GETには、POSTよりも多くの利点があります。 GETはURLの一部としてエンコードされるため、URLをカットアンドペーストして他のユーザーと共有できます。 GETリクエストにもマークを付けることができます。 定期的に天気を確認する場合は、ブラウザの「お気に入り」バーに「example.com/weather.php?zipcode=12345」を追加して、そのリンクをクリックするとカスタム天気ページが自動的に読み込まれるようにすることができます。 GETリクエストはユーザーに表示(および編集)できるため、ハッキングされる可能性もあります。 たとえば、天気予報サイトが時間リクエストの場所を変更する明白な方法を提供しなかった場合、スケネクタディの天気の代わりにアラスカのノームの天気を見るために手動で「12345」を「99762」に変更できます。

POSTを使用する場合

べき等の状況でも、POSTには明確な用途がある場合があります。 これらのいくつかは、セキュリティまたは合法性に基づいています。 GET変数は、クレジットカード情報、社会保障番号、パスワード、またはユーザーの機密情報をGETで送信したくないため、「クリア」で送信されます。 POSTデータは暗くなるので、このような状況では望ましいです。 POSTは、データが機密でない場合でも、大量のデータの送信にも使用されます。 技術的には、URL(したがってGET変数)の長さには制限がありません。 ただし、多くのブラウザはURLが保持できるスペースを制限しているため、GETは一般に比較的短いリクエストにのみ適していると考えられています。

興味深い記事