ブラウザからサーバーに対して送られるリクエスト(ページの要求)には、GETとPOSTの2種類があります。このリクエストの種類は、リクエストメソッドと呼ばれます。
URLを直接入力したり、リンクをクリックしてページ遷移が行われた場合、これはGETという種類のリクエストです。一方で、会員登録フォームやお問い合わせフォーム等の送信ボタンを押した際に、ページ遷移が起こりますが、これはPOSTという種類のリクエストです。
※ 厳密には、フォームによるページ遷移でも、GETの場合があります(検索など)
リクエストパラメータ
GETパラメータ
サーバーにリクエストを送る際には、付加情報を持たせることができます。
たとえば、YouTubeのトップページで動画のサムネイルをクリックすると、ページ遷移が行われ、動画が個別に表示されます。この時のURLは、どの動画を閲覧する際も共通して「www.youtube.com/watch」となります。しかし、これでは、YouTubeのサーバーはどの動画を表示していいか判断がつきません。
しかしながら、URLを詳しく見てみると、「www.youtube.com/watch?v=ABC123」といったような形式になっていることがわかります。この末尾の部分、「v=ABC123」が付加情報(YouTubeの各動画に紐づいたID)です。この付加情報を元に、YouTubeのサーバーは、どの動画を表示させるのか判断をします。このようにURLの末尾に付いているパラメータ(付加情報)をGETパラメータ、またはクエリストリングと呼びます。
POSTパラメータ
一方で、POSTリクエストで送信されるパラメータをPOSTパラメータと呼び、これはURLの末尾に表示されることはありません。会員登録フォームやお問い合わせフォームでは、個人情報を取り扱ういますが、これが付加情報として送信される際にURLの一部として表示されるのは望ましい事ではありません。
POSTメソッドで情報を送信するには、form要素のmethod属性値を「post」に設定する必要があります。このmethod属性の初期値は「get」になっているため、明示的にpostを指定しない限り、GETリクエストになってしまいます(送信される情報がURLの末尾に表示されてしまいます)。
<form action="/register" method="post">
<p>氏名: <input type="text" name="name"></p>
<p>メール: <input type="text" name="email"></p>
<input type="submit" value="登録">
</form>
Comments
Comments are closed.