クエリパラメータを用いたデータの受け渡し
クライアントがデータを送信する仕組み
PHP を用いることで、サーバー上でプログラムを動作させることができました。それでは、サーバー上で動作するプログラムに対し、ユーザーの入力内容を伝え、それによって動作を変更するにはどうしたら良いのでしょうか。
もっとも単純な方法は、URL にクエリ文字列と呼ばれる追加情報を付加することです。東京大学の学務システム UTAS を例にとってみましょう。ブラウザで UTAS にログインし、トップページを表示させると、その URL は
https://utas.adm.u-tokyo.ac.jp/campusweb/campusportal.do?page=main&tabId=home
になっています。https://utas.adm.u-tokyo.ac.jp/campusweb/campusportal.do
まではよく見る形式で?page=main&tabId=home
の部分がクエリ文字列です。
クエリ文字列は、パラメータ名=値
の組み合わせを&
でつなぎ合わせた形となっており、?
から始まります。
プロパティ名や値に特殊な文字(主にアルファベット以外の文字を指します)が含まれる場合は注意が必要です。例えば、日本語の文字は URL として使用することができないため、そのままではクエリ文字列の中に含めることができません。これらの文字を 使用する場合、URL として使用可能な形式に変換してやる必要があります。
例えば、日本語のあ
は UTF-8 においてE38182
(6 桁の 16 進数)で表されます。この時、あ
を URL で使用可能な形式に変換する(URL エンコード)場合、%E3%81%82
となります。
コンピューター上では、文字列をデータとして扱うために、すべての文字に対し一意のコードを割り当てています。これが文字コード
です。Web の世界では、UTF-8
が標準です。
よく言われる文字化けは、製作者側の意図と異なる文字コードでデータを開こうとする場合に起こる現象です。