そもそもHTTPメソッドってなに?
この内容については、Web開発でよく使う4つのHTTPメソッド【REST API】で以下のように説明されています。
HTTPメソッドとは、「クライアントがサーバーにしてほしいことを依頼するための手段」となります。
例えば、「Webブラウザ」で「今見ているこのサイト」を表示する際は、次のような処理がクライアントとサーバーの間で行われています。
①Webブラウザ(クライアント)が、
②このサイトのサーバーに対して、
③「ページ情報(=HTML形式のデータ)をください」と依頼して、データを受け取りページを表示する
このとき、クライアントがサーバーに依頼(=リクエスト)を投げる際に、リクエストの種類に応じてHTTPメソッドの種類を切り換えることができます。
つまりHTTPリクエストを用いてWebサーバーに「具体的な要求内容」を伝えているものです。
なのでクライアント側の要求によってHTTPメソッドはそれぞれ変わってきます。
HTTPメソッドにはどんな種類があるのか?
ここではWEB開発でよく使用される4つのHTTPメソッドを紹介します。
HTTPメソッド名 | 説明 |
---|---|
GET | HTMLファイルや画像といったデータを取得する場合に利用する。Webサイト閲覧時において使用頻度が高い |
POST | フォームに入力したパスワードといったデータを転送する場合に利用する |
PUT | データ(ファイル)をアップロードする場合に利用する。Webサーバー上のファイルを置き換えることができるため、利用できないように制限されている場合が多い |
DELETE | 指定したデータ(ファイル)を削除する場合に利用する。PUTメソッド同様に利用できないように制限されている場合が多い |
この表を見た通り、クライアント側でWebサイトを閲覧する際に主に利用されるHTTPメソッドは、「GET」メソッドと「POST」メソッドになります。
Webサーバーが保管されているコンテンツを書き換えたり削除できたりする「PUT」メソッドや「DELETE」メソッドは、Webサイトの改ざんができてしまうため、Webサーバー側で使用できなくしている場合が多いです。
「GET」と「POST」の違いを詳しく
ここでは本題のGETメソッドとPOSTメソッドの違いを詳しく説明していきます。
コンテンツを取得する際に利用するGETメソッドは、POSTメソッドと同じようにデータを送信する際にも利用できますが、GETメソッドとPOSTメソッドでデータの送信方法が異なります。
GETメソッドを利用してデータを送信する場合は、URLの後ろに送りたいデータを付与して送ります。
URLの末尾に「?」を付けて、「パラメーター名=値」の形式で送信します。
GETの場合 /sample.com?name=sample&password=1234
一方、POSTメソッドを利用してデータを送信する場合は、HTTPリクエスト内のメッセージボディ内にデータを含めて送ります。
GETメソッドを利用しデータを送る場合は、上記のようにURLにデータが組み込まれるため、送ったデータがWebブラウザの閲覧履歴に残ってしまい、漏洩の可能性があります。
一方、POSTメソッドを利用した場合はメッセージボディ内にデータが組み込まれるため、閲覧履歴には残りません。
そのため、ショッピングサイトや会員制のWebサイトにおいてログインする際に、ユーザーIDやパスワードといったデータをWebサーバーに対して送る場合は、機密性を考慮してPOSTメソッドが利用されます。
参考文献
最後に
記事の感想や意見、ご指摘等いただけると助かります。
最後までご覧いただき、ありがとうございました。