最新のWeb開発のチュートリアル
 

HTTPメソッドは:POST対GET


2最も使用されるHTTPメソッドは次のとおりです:GETとPOST。


HTTPとは何ですか?

ハイパーテキスト転送プロトコルは、(HTTP)クライアントとサーバ間の通信を可能にするように設計されています。

HTTPは、クライアントとサーバとの間の要求 - 応答プロトコルとして働きます。

ウェブブラウザは、クライアントとすることができ、ウェブサイトをホストするコンピュータ上のアプリケーションは、サーバであってもよいです。

例:クライアント(ブラウザ)がサーバーにHTTP要求を送信します。 サーバはクライアントに応答を返します。 応答は、要求のステータス情報を含み、また、要求されたコンテンツを含んでいてもよいです。


2つのHTTPリクエストメソッド:GETとPOST

クライアントとサーバ間の要求と応答のための2つの一般的に用いられる方法は、次のとおりです。GETとPOST。

  • GET -指定されたリソースからのリクエストデータ
  • POST -指定されたリソースに加工することに提出するデータ

GETメソッド

クエリ文字列(名前/値のペア)がGETリクエストのURLに送信されることに注意してください:

/test/demo_form.asp?name1=value1&name2=value2

GET要求のいくつかの他の注意事項:

  • 要求がキャッシュできGET
  • 要求は、ブラウザの履歴に残るGET
  • 要求はブックマークが可能GET
  • 機密データを扱う際の要求が使用されることはありませんGET
  • GETリクエストは、長さの制限を持っています
  • 要求は、データを取得するためにのみ使用されるべきでGET

POSTメソッド

クエリ文字列(名前/値のペア)はPOSTリクエストのHTTPメッセージの本文で送信されることに注意してください:

POST /test/demo_form.asp HTTP/1.1
Host: w3ii.com
name1=value1&name2=value2

POSTリクエストのいくつかのその他の注意事項:

  • POSTリクエストはキャッシュされることはありません
  • POSTリクエストは、ブラウザの履歴に残りません
  • POSTリクエストは、ブックマークすることができません
  • POSTリクエストは、データの長さに制限はありません

POST対GET比較

次の表は、2つのHTTPメソッドを比較:GETとPOST。

取得する 役職
BACKボタン/リロード 無害の データが再送信されます(ブラウザは、データが再提出されようとしていることをユーザーに警告する必要があります)
ブックマークさ ブックマークが可能 ブックマークされたことはできません
キャッシュされました キャッシュすることができます キャッシュされていません
エンコーディングタイプ アプリケーション/ x-www-form-urlencodedで アプリケーション/ x-www-form-urlencodedでまたはマルチパート/フォームデータ。 バイナリデータのためのマルチパートのエンコードを使用します
歴史 パラメータは、ブラウザの履歴に残ります パラメータは、ブラウザの履歴に保存されません
データ長の制限 データを送信するときにはい、GETメソッドはURLにデータを追加します。 そして、、URLの長さが制限されています(URLの最大長は2048文字です) 無制限
データ型の制限事項 ASCII文字のみが許可されます 無制限。 バイナリデータも許可されています
セキュリティ 送信されたデータはURLの一部であるため、GETはPOSTに比べて安全性が低いです

パスワードやその他の機密情報を送信するとき、GETを使用しないでください!
パラメータは、ブラウザの履歴にまたはWebサーバーのログに格納されていないため、POSTはGETよりも少し安全です
可視性 データはURL内のすべてのユーザーに表示されます データは、URLに表示されません

その他のHTTP要求メソッド

次の表は、いくつかの他のHTTPリクエストメソッドを示します:

方法 説明
HEAD GETと同じですが、唯一のHTTPヘッダと全く文書本体を返しません
PUT 指定されたURIの表現をアップロード
DELETE 指定されたリソースを削除します。
OPTIONS サーバーがサポートするHTTPメソッドを返します。
CONNECT 透明TCP / IPトンネルへの要求の接続に変換