はじめに
・前提知識として、httpプロトコルがわかる方。
・URLパラメータ,GET,POSTについて、よくわからない方。
・Web系に関する知識に興味がある方。
URLパラメータ
・サーバーに情報をおくるために用意する、
URLの文末に渡す値(変数)などのこと。
(クエリ文字列ともよ呼ぶ)
※URLの末尾に『?』を追加しその後に、『パラメータ(値)』
『URL』+『?』+『パラメータ』
######サンプルコード (aタグを利用して表現)
<?php
// 『?』 以降がURLパラメータ
echo '<a href="queryGet.php?valueGet=これはパラメータです">GET</a>';
?>
GET
・httpプロトコルのメソッドの1つ。
リクエストする情報をURLパラメータで付与する通信方式。
※GETで送信した値を取得するには**$_GETを使用。
$_GETは連想配列**として値が格納される。
######サンプルコード
<?php
// 『?』 以降がURLパラメータ (URLパラメータを付与したので、GETされる)
echo '<a href="queryGet.php?valueGet=これはパラメータです">リンク</a>';
?>
<?php
// // GETで送信された値を取得し、配列として格納される
echo $_GET['valueGet'];
echo '<br>';
// $_GETが連想配列であるかの確認
echo gettype($_GET);
?>
実行結果
・query.php
・queryGet.php
POST
・GET同様、httpプロトコルのメソッドの1つ。
メッセージボディに入力した値を付与する通信方式。
※フォームから入力された値などが該当する。
POSTで送信した値を取得するには**$_POST**を使用。
$_POSTは$_GETと同様、
連想配列として値が格納される。
######サンプルコード
<form action = "formPost.php" method = "post">
<br>
<input type="text" name="valuePost">
<input type="submit" value="送信">
</form>
<?php
// POSTで送信された値を取得し、連想配列として格納される
echo $_POST['valuePost'];
echo '<br>';
// $_POSTが配列であるかの確認
echo gettype($_POST);
?>
実行結果
・form.php
・formPost.php
まとめ
・GET,POST↓
httpプロトコルのメソッド。
・GET↓
URLパラメータを付与して通信。
・POST↓
フォームなどを利用してデータを付与して通信。
・$_GET↓
GETで送信したデータを取得するために使用。
・$_POST↓
POSTで送信したデータを取得するために使用。
######※余談
・GETはURLに直接付与するので目で見えてしまう。
以下のように↓
このような理由から、
機密性の高い情報はGETを使用することは推奨されていません。
・POSTはメッセージボディに値を付与するため、
上記の画像のように確認はできない
※しかし、通信を盗聴されたら見れるため
セキュリティには注意が必要。