HTTPメソッド「GET」と「POST」の違いとは?HTTP 1.0とHTTP 1.1で微妙に異なる違い

TechTargetはHTTPメソッドの「GET」と「POST」の違いを解説する記事を公開した。各メソッドの動作や使い分けを紹介する。

» 2024年08月30日 08時00分 公開
[Cameron McKenzieTechTarget]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

 TechTargetは2024年7月19日(米国時間)、「GET」と「POST」の違いを解説する記事を公開した。

GETとPOSTの違い(提供:TechTarget)

 HTTPメソッドのGETとPOSTの主な違いは、GETがサーバからデータを取得するだけなのに対し、POSTはサーバ側のリソースを変更または更新できる点にある。POSTによって、何も更新しないサーバ側処理ルーティンをトリガーすることも可能だ。POST操作の唯一の制限は、PUTまたはPATCHと同じ動作にはならないことだ。

 GETとPOSTは1996年に公開されたHTTP 1.0仕様で導入されている。

GETメソッドの動作

 HTTP仕様では、GETメソッドは、サーバからリソースまたはリソースに関するデータを取得するだけの安全な操作と定義されている。GET呼び出しでは、サーバ側リソースの状態が変更または更新されたり、サーバ側にリソースが作成されたりすることはない。また、サーバ側リソースの状態が変わらない限り、クライアントは結果をキャッシュすることが推奨される。

POSTメソッドの動作

 GETとは対照的に、POST操作では、データをサーバに送信し、処理ルーティンをトリガーして、サーバ側のリソースを更新できる。HTTP 1.0仕様では、POST操作は次のような操作を実行できるとされている。

  • フォームを送信して製品の注文を作成する
  • 掲示板に新しいメッセージを投稿する
  • バックエンドデータベースのフィールドを更新する
  • サーバ上に全く新しいリソースを作成する

 ただし、1997年にリリースされたHTTP 1.1プロトコルでは、POST操作の役割が微妙に変わっている。

「PUT」「POST」「PATCH」の各操作

 HTTP 1.1プロトコルでは、サーバ側リソースを更新する操作として「PUT」と「PATCH」という2つのメソッドが導入されている。仕様では、両操作の使用法が次のように説明されている。

  • PUT操作は、サーバ側リソースを完全にかつ冪等(べきとう)に置き換える
  • PATCH操作は、既知のパスの既存のリソースを更新する

 HTTP 1.1では、PUTまたはPATCH呼び出しが意味を成す場合はPOSTを使用しないように規定されている。

GETとPOSTの使い分け

 POSTメソッドとPATCHメソッドの導入により、GETメソッドとPOSTメソッドの区別に微妙な違いが加わり、単に「GETはサーバからデータを取得し、POSTは更新を実行する」と説明するだけでは不十分となった。

 POSTメソッドの更新は、PATCHメソッドによる更新とは異なるため、GETとPOSTの違いをシンプルに説明することがより難しくなっている。

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。