HTTP メソッド:GET vs. POST

前へ 次のリファレンス ❯

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


HTTP とは?

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

HTTP は、クライアントとサーバとの間の request-response プロトコルとして動きます。

web ブラウザをクライアントと、web サイトをホストするコンピュータのアプリケーションをサーバと言っています。

例:クライアント(ブラウザ)は、サーバに HTTP リクエストを送信します;その時、サーバはクライアントにレスポンスを返します。 レスポンスには、リクエストのステータス情報が含まれますが、リクエストしたコンテンツが含まれることもあります。


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

クライアントとサーバ間の request-response のために一般的に用いられるメソッドは、GET と POST の 2 つです。


GET メソッド

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

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

GET リクエストのその他の注意事項:


POST メソッド

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

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

POST リクエストのその他の注意事項:


GET 対 POST の比較

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

  GET POST
BACK ボタン/リロード Harmless 無害 データは再送される(ブラウザは、データが再提出されようとしていることをユーザに警告します)
ブックマーク ブックマーク可能 ブックマーク不可
キャッシュ キャッシュ可能 キャッシュ不可
エンコード・タイプ application/x-www-form-urlencoded application/x-www-form-urlencoded または multipart/form-data. バイナリデータには、multipart エンコードを使用します
履歴 パラメータは、ブラウザの履歴に残る パラメータは、ブラウザの履歴に保存されない
データ長の制限 あり。データを送信時、GET メソッドは URL にデータを追加する、且つ、URL の長さに制限がある(URL の最大長は 2048 文字です) 制限なし
データ型の制限 ASCII 文字のみが可 制限なし。バイナリデータも可
セキュリティ 送信データが URL の一部であるため、GET は POST に比べて安全性が低い

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

他の HTTP リクエスト・メソッド

次の表は、他の HTTP リクエスト・メソッドの一部のリストです:

メソッド 説明
HEAD GET と同じですが、ただ HTTP ヘッダを返すだけで、文書本体は返しません
PUT 指定の URI 表現(representation)をアップロードします
DELETE 指定のリソースを削除します
OPTIONS サーバがサポートする HTTP メソッドを返します
CONNECT transparent TCP/IP tunnel への接続要求を変換します


前へ 次のリファレンス ❯