-PR-
解決済み

GETとPOSTの違い

  • 困ってます
  • 質問No.56289
  • 閲覧数31448
  • ありがとう数32
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 40% (100/250)

<form>でCGIへのデータの転送ですが、

(1)「GET」と 「POST」がありますが、どんな違い、メリット/デメリットがあるのか教えてください

(2)また、送信情報のセキュリティーと関係はありますか?

(3)検索エンジンなどはGETが多いようですが、なぜですか?


いろいろ質問が多くて申し訳ありません。
よろしくお願いいたします
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1
レベル12

ベストアンサー率 57% (232/402)

CGIプログラム側から見ると、

○「GET」の場合
 環境変数「QUERY_STRING」で値が渡される
 データがOSで認められた以上の大きさになると、値が環境変数に収まらなくなりデータが途中で切れてしまう
○「POST」の場合
 Formの値は標準入力(STDIN)に渡され、データの長さは環境変数「CONTENT_LENGTH」に入る
 データの長さはOSに依存しないため、大きなデータでも問題なく渡せる

という違いがありますね。

一方、CGIを使うユーザー側から見ると、GET methodの場合はURLの後に「http://hogehoge/foo.cgi?input=xxx」というような形で引数を指定すると、Formからデータを入力したのと同じような効果が得られるのに対し、POST methodしか対応していないCGIでは、基本的にFormにデータを入力してやらないとプログラムが正しく動かない、という違いがあります。
そのため、検索エンジン等の場合は検索結果に対して直リンクが張りやすいGET methodを使っているところがほとんどです。

セキュリティ的にはどちらも大した違いはありませんが、Formに入力したデータがブラウザの「アドレス」欄に表示されない分だけ、ややGET methodの方が有利といえるでしょうか。
お礼コメント
u16

お礼率 40% (100/250)

よく分かりました。ありがとうございます。
ちなみに、最後のくだりは、POSTのほうが有利の間違いではないですか?
GETはアドレス欄に取得値が表示されるのですよね?
投稿日時 - 2001-03-28 09:23:30
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.2
レベル9

ベストアンサー率 29% (28/95)

メリット/デメリット、またはセキュリティという面でみると、ホストのアクセスログや、ブラウザのabout:cache、about:globalでURLの参照すると、GETの内容が見えてしまいます。
たとえばGETを利用してpasswordを送信した場合は、そこからpasswordがモレる可能性をはらんでいます。


  • 回答No.3
レベル12

ベストアンサー率 57% (232/402)

ありゃ、確かに最終行間違えましたね。
そこは「POST methodの方が有利」の間違いです。(^^;;
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


専門家があなたの悩みに回答!

-PR-

ピックアップ

-PR-
ページ先頭へ