GET と POST の違い

このページでは HTTP/1.1 プロトコルのメソッドである get と post の違いに関して説明します。

スポンサード リンク

WebブラウザからWebサーバにリクエストを送信する場合、リクエストは以下で構成されます。

HTTPリクエストのURLそのもの
HTTPヘッダー
HTTPリクエストのBody部

Webサーバにデータを送信する方法は GETとPOSTの2種類があります。
デフォルトではGETが使用されます。Webブラウザ上でリンクをクリックした場合も「このリンクのページを取得してください」というGETメッソッドが送信されています。

GETは一見するとデータの取得の手段に思えますが、実際にはデータを送る手段です。

GETとPOSTの違いは以下の通りです。

GET POST
データ送信手段 HTTPリクエストのURLにパラメータとしてデータを設定。 Body部にデータを設定。
データ種類 URLに記載するためテキストデータのみ。 テキスト、バイナリどちらも可能。
データ長 少量。ブラウザにより長さの制限あり。 GETと比較して大容量。
アクセスログ URLにデータが含まれるため、アクセスログを記録する機器(ProxyやFirewall)にURLの一部としてデータが記録されてしまう。 データはBody部に含まれるため、ProxyやFirewallなどのアクセスログに記録されない。
ブラウザへのキャッシュ 一般的なブラウザでは結果がキャッシュされる。 一般的なブラウザでは結果がキャッシュされない。
デメリット ProxyやFirewallにデータが記録されるため、ユーザ名、パスワード、口座番号の送信するのにGETを使用してはいけない。 GETと比較してデータは漏れにくいが、パケットモニタなどを利用すれば簡単にデータの漏えいが可能なため、重要なデータには別途 TLS(暗号化)通信などが必須。

スポンサード リンク

[インターネット技術へ戻る]