ゆめさくエンジニア研究所

HTTP の GET と POST の違いを説明してください

用途、値の載せ方、同じ要求を繰り返したときの性質の 3 点で答える問い。フォームや API を作った経験と結びつけます。

短い答え

  • GET はデータを取りに行くとき、POST はデータを送って登録などをするときに使います。
  • GET は値を URL に載せ、サーバーの状態を変えない前提なので、ブラウザやキャッシュが気軽に送り直します。
  • POST は値を本文に入れて送り、送るたびに登録が起きうるので、二重に送らない工夫が要ります。

深掘りの答え

違いは「何のために使うか」から決まります。

  • 安全と冪等 (べきとう) GET はサーバーの状態を変えない (安全) 約束です。同じ要求を何度送っても、サーバーに起きることは 1 回送ったときと同じです (冪等)。返ってくる中身はデータが更新されれば変わりますが、送り直したせいで何かが増えることはありません。だから再読み込みや先読みで送り直されても困りません。POST はどちらの約束もしないので、送り直すと注文が 2 件入る、ということが起こります
  • 値の置き場 GET は ?q=python のように URL に載ります。URL は履歴やサーバーのログ、共有したリンクに残るので、パスワードのような値は GET で送りません
  • 暗号 POST にしただけでは中身は守られません。通信を守るのは HTTPS です。「POST だから安全」は誤りです

作った物と結べると説得力が増します。たとえば「検索は結果を共有できるよう GET、会員登録は POST にし、送信中はボタンを押せなくして二重登録を防いだ」のように話します。

面接官が見ている点

  • 「URL に載るか本文か」だけで終わらず、安全と冪等の考え方まで話せるか
  • POST なら暗号になる、という誤解をしていないか
  • PUT や DELETE を聞き返されたときに、同じ物差しで説明を広げられるか

確認日 2026年10月17日

面接問題の一覧へ戻る