ネットワークスペシャリスト 2009年 午前2 問10
問題文
HTTPのGETメソッドとPOSTメソッドに関する記述のうち、適切なものはどれか。
選択肢
ア:GETの実装は必須であるが、POSTはオプションである。(正解)
イ:GETはサーバへの送信、POSTはサーバからの応答である。
ウ:POSTの応答はキャッシュされるが、GETはキャッシュされない。
エ:POSTはサーバのCGIを起動できるが、GETは起動できない。
HTTPのGETメソッドとPOSTメソッドに関する問題【午前2 解説】
要点まとめ
- 結論:HTTP仕様ではGETメソッドの実装が必須で、POSTメソッドはオプションと定められているため、アが正解です。
- 根拠:RFC 7231などのHTTP標準仕様でGETは安全かつ冪等なメソッドとして必須実装とされ、POSTは任意実装が認められています。
- 差がつくポイント:GETとPOSTの役割や仕様上の必須・オプションの違いを正確に理解し、誤った動作やキャッシュの扱いを混同しないことが重要です。
正解の理由
ア: GETの実装は必須であるが、POSTはオプションである。
HTTP/1.1の仕様(RFC 7231)では、GETメソッドはクライアントがサーバからリソースを取得するための基本的な手段であり、必ず実装されるべきとされています。一方、POSTメソッドはサーバにデータを送信して処理を依頼するための手段であり、必須ではなくオプションとして扱われます。したがって、アが正しい記述です。
HTTP/1.1の仕様(RFC 7231)では、GETメソッドはクライアントがサーバからリソースを取得するための基本的な手段であり、必ず実装されるべきとされています。一方、POSTメソッドはサーバにデータを送信して処理を依頼するための手段であり、必須ではなくオプションとして扱われます。したがって、アが正しい記述です。
よくある誤解
GETは「送信」ではなく「取得」用のメソッドであり、POSTは「サーバからの応答」ではなく「サーバへの送信」に使います。
また、POSTの応答が必ずキャッシュされるわけではなく、GETの応答もキャッシュ可能です。
また、POSTの応答が必ずキャッシュされるわけではなく、GETの応答もキャッシュ可能です。
解法ステップ
- HTTPメソッドの基本的な役割を確認する(GETは取得、POSTは送信)。
- HTTP仕様書(RFC 7231)でGETとPOSTの実装要件を確認する。
- 選択肢の文言が仕様に合致しているかを検証する。
- 誤った用語や動作の混同がないかをチェックする。
- 最も仕様に忠実な選択肢を選ぶ。
選択肢別の誤答解説
- イ: 「GETはサーバへの送信、POSTはサーバからの応答」という説明は逆であり、GETはリソース取得、POSTはデータ送信に使います。
- ウ: POSTの応答が必ずキャッシュされるわけではなく、GETの応答もキャッシュ可能です。キャッシュの可否はHTTPヘッダーで制御されます。
- エ: GETでもCGIなどのサーバ側プログラムを起動可能であり、POSTだけに限定されません。起動の可否はメソッドではなくサーバの設定によります。
補足コラム
HTTPメソッドはWeb通信の基本であり、GETは主にデータの取得に使われ、URLにパラメータを付加して送信します。POSTはフォームデータやファイルアップロードなど、サーバにデータを送信する際に使われます。GETは冪等性があり、キャッシュやブックマークに適していますが、POSTは非冪等であり、キャッシュされにくい特徴があります。
FAQ
Q: GETとPOSTの違いは何ですか?
A: GETは主にデータの取得に使い、URLにパラメータを付けて送信します。POSTはデータをサーバに送信し、フォーム送信などに使われます。
A: GETは主にデータの取得に使い、URLにパラメータを付けて送信します。POSTはデータをサーバに送信し、フォーム送信などに使われます。
Q: なぜGETは必須でPOSTはオプションなのですか?
A: GETはWebの基本的なリソース取得手段として必須実装が求められますが、POSTは追加機能として任意実装とされています。
A: GETはWebの基本的なリソース取得手段として必須実装が求められますが、POSTは追加機能として任意実装とされています。
関連キーワード: HTTP, GETメソッド、POSTメソッド、RFC 7231, Web通信、メソッド実装要件

\ せっかくなら /
ネットワークスペシャリストを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

