最も使用される HTTP メソッドは GET と POST の 2 つです。
ハイパーテキスト転送プロトコル(HTTP)は、クライアントとサーバ間の通信を可能にするように設計されています。
HTTP は、クライアントとサーバとの間の request-response プロトコルとして動きます。
web ブラウザをクライアントと、web サイトをホストするコンピュータのアプリケーションをサーバと言っています。
例:クライアント(ブラウザ)は、サーバに HTTP リクエストを送信します;その時、サーバはクライアントにレスポンスを返します。 レスポンスには、リクエストのステータス情報が含まれますが、リクエストしたコンテンツが含まれることもあります。
クライアントとサーバ間の request-response のために一般的に用いられるメソッドは、GET と POST の 2 つです。
クエリ文字列(名前/値のペア)が、GET リクエストの URL で送信されることに注意してください:
/test/demo_form.html?name1=value1&name2=value2
GET リクエストのその他の注意事項:
クエリ文字列(名前/値のペア)は、POST リクエストの HTTP メッセージの本文で送信されることに注意してください:
POST /test/demo_form.html HTTP/1.1
Host: w3schools.com
name1=value1&name2=value2
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 リクエスト・メソッドの一部のリストです:
メソッド | 説明 |
---|---|
HEAD | GET と同じですが、ただ HTTP ヘッダを返すだけで、文書本体は返しません |
PUT | 指定の URI 表現(representation)をアップロードします |
DELETE | 指定のリソースを削除します |
OPTIONS | サーバがサポートする HTTP メソッドを返します |
CONNECT | transparent TCP/IP tunnel への接続要求を変換します |