- クライアントとサーバー間ではリクエストとレスポンスがやりとりされる。
- GETとPOSTはリクエストの方式の1つ
リクエストの内容は?
- ブラウザのアドレス欄にURLを直接入力する
- お気に入り(ブックマーク)からアクセスする
- ページ内のリンクやボタン、画像などをクリックする
- 入力フォームに情報を入力して送信ボタンをクリックする
- JavaScriptなどからバックグラウンドでアクセスする
GET
- URLの末尾にパラメータをくっつけて送る方法
- パラメータはURLの一部としてサーバーに送信される
- 「値をURLにくっつけてサーバに送る」方法
- 何か情報を検索したり取得するために使うためのメソッド
- ブラウザキャッシュは有効
POST
- 「値を見えないところにくっつけてサーバに送る」方法
- パラメータはBody部分に設定される
- 登録や更新などの、書き込みがあり更新されるようなときに使われるメソッド
- POSTメソッドの方が安全
- ブラウザキャッシュは無効
HTTP通信
- HTTPはリクエストの前後で状態を保持しない(ステートレスな)プロトコル
- ※ステートフルなプロトコル(FTP、SSHなど)
- 2回ブラウザとサーバーでリクエストがあった場合、2回目は1回目の内容を知らない。
フォームの書き方
GETメソッドの場合
index.php
<form action="get.php" method="GET">
<imput type="text" name="username">
<imput type="password" name="pwd">
<imput type="submit" value="ボタンを押してね">
</form>
get.php
<div>
名前:<?php echo $_GET['username']; ?>
</div>
<div>
パスワード:<?php echo $_GET['pwd']; ?>
</div>
名前とパスワードを入力して送信すると。。
下記のようにブラウザに表示される
名前:name
パスワード:pass
POSTメソッドの場合
index.php
<form action="get.php" method="POST">
<imput type="text" name="username">
<imput type="password" name="pwd">
<imput type="submit" value="ボタンを押してね">
</form>
get.php
<div>
名前:<?php echo $_POST['username']; ?>
</div>
<div>
パスワード:<?php echo $_POST['pwd']; ?>
</div>
## GETとPOSTの使い分け
- URLにパラメータを設定すべきか、本文にパラメータを設定すべきかで使い分ける