GET と POST
HTMLの<form>タグ中で利用する「GET方式」と「POST方式」は、なぜか直感的に理解し難いので、忘れてしまうなら書き残しておこうという訳です。
私の中では、GETは「取る」で、POSTは「投げる」みたいな感じになってしまって、混乱してしまうのです。そもそも<form>タグでは、何かしら入力した内容を次のページ(処理など)に渡すのですから、GETの取るって、「渡すのに取るって何!?」となってしまう訳です。
GETとPOSTの違い
GET方式 | <form>タグで指定された次のページ(処理)のURLの末尾に、入力された値が付加されて送られる。 ・渡せる文字数に制限がある。 |
POST方式 | <form>タグで指定された次のページ(処理)のURLのまま送られる。 その際の入力された値はドコカに保存されている。 |
端的に言えば、<form>で指定された次のページ(処理)に入力された値を渡すときに、人目に触れるか否かの違いと言って良いでしょう。
では、どう使い分けるか?というと、誰に見られても良い内容はGETにして、見られちゃ困る内容はPOSTにすれば良いということになります。
どうして2種類必要なんだろう?
たぶん・・・誰かの善意によってなのでしょう。
例えば、見えないPOSTで統一(なんでも見えてしまうGETで統一するのは、セキュリティ上あり得ないでしょう。ATMでキャッシュカードの暗証番号を叫びながら入力しているようなものだから)した場合、入力した値が密かに渡されている訳ですから、利用者が何を送られているのか判らないという不安(裏で何をやっているか判らない!怖い!)が募ります。
なので、たまに「情報の再送信」を警告するメッセージが表示されることがありますが、これは一度POSTした内容を、再びPOSTしても良いですか?って確認されている訳で、意識して情報を渡すことが自身の情報を守るための必要な機能なのです。
しかし、何をやっても情報の再送信の警告が出るようになってしまうと、検索サイトで「戻る」をする度に警告されます。これはかなり鬱陶しい!よほどやましいことがない限り、検索したかったキーワードなんて、誰に見られても構わない。それにやましかったら履歴を消せば良いのです。
2種類あるのは、利用者の操作性の向上と、利用者の入力情報を守るためだと、実際には違うかもしれないけど、勝手に解釈してみました。
そしてPUTが現れる
GET方式とPOST方式の使い分けが見えてくると、PUT方式が顔を出す。他にもいろいろ顔を出す〜。