クエリ文字列
Webサーバに渡す値だよ
URLの後ろに付くよ
GETでやり取りするときに出てくるよ
簡単に書くよ
クエリ文字列(読:クエリモジレツ 英:query string)とは
ホームページを見るときに使うソフト(Webブラウザ)からホームページのファイルが置いてあるコンピュータ(Webサーバ)に渡すデータのひとつ
であり
例えば「https://wa3.i-3-i.info/search.html?q=piyota&ln=e」における「?q=piyota&ln=e」のように、ホームページの住所(URL)の最後に付くかもしれない「?項目1=値1&項目2=値2」形式の文字列のこと
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として
・ホームページが表示される流れ
・URL
・GET
について説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
あなたがホームページを見ようとすると、まず、ホームページを見るときに使うソフト(Webブラウザ)からホームページのファイルが置いてあるコンピュータ(Webサーバ)に対して「このページをおくれ」と お願いが出されます。
そのお願いに対して、WebサーバさんからWebブラウザさんに「ほれ、そのページだよ」と お返事がきます。
お返事を受け取ったWebブラウザさんは、受け取った内容(ホームページのファイル)を画面上に表示してくれます。
これが、ホームページが表示されるときの流れです。
URLは「ホームページの住所」です。
ホームページの置いてある場所とかファイル名とかを示す情報です。
例えば
http://wa3.i-3-i.info/extension/index.html
というURLが あったとしましょう。
このURLは
「wa3.i-3-i.info」という名前のコンピュータの中にある「extension」という名前のディレクトリの中にある「index.html」という名前のファイル
を意味します。
GETはホームページの話で出てくる「このページをくれよ」なお願いです。
……が、今回は「WebブラウザからWebサーバに渡す値をURLの後ろにくっつけて送るやり方」と解釈してください。
ホームページのファイルをやり取りするとき、WebブラウザさんからWebサーバさんに情報を送りたい場合があります。
例えば、会員登録の画面で入力した情報(会員情報)をWebサーバさんに伝えたい場合とかです。
WebブラウザさんからWebサーバさんに情報を送るときのやり方は2つあります。
それは
1.送りたい情報をURLの最後にくっつけて送るやり方(GET)
2.送りたい情報を人間様の目には見えないところにくっつけて送るやり方(POST)
です。
※本来の役割は「ページをくれよ」なやり取りをするときに使うのが「GET」です。「このデータをくれてやるよ」なやり取りをするときに使うのが「POST」です。……が、今回は気にしないでください。
GETで送る場合、送る情報はURLの後ろにくっつきます。
本来のURLが
http://wa3.i-3-i.info/search.html
だったとしましょう。
GETで送ったときのURLは
http://wa3.i-3-i.info/search.html?q=piyota&ln=e
のように書き換わります。
URLの「?」より後ろの部分「q=piyota&ln=e」が送る情報です。
形式は
?項目1=値1&項目2=値2
です。
「?」で始まり、複数の項目があれば「&」で区切られる形でくっつきます。
「?q=piyota&ln=e」であれば「『q』という項目の値は『piyota』ですよ。『ln』という項目の値は『e』ですよ」を意味しています。
POSTで送る場合、送る情報は見えないところにくっつきます。
どこにくっつくかの説明は省略しますが、本来のURLが
http://wa3.i-3-i.info/search.html
だったとすると、POSTで送ったときのURLは
http://wa3.i-3-i.info/search.html
のままです。
URL自体は変わりません。
今回はPOSTの方は忘れても大丈夫です。
GETの方に注目してください。
GETで送る場合、送る情報はURLの最後にくっつく
というのが今回のポイントです。
以上を踏まえて
GETでやり取りするときにURLの最後に付く(かもしれない)「?項目1=値1&項目2=値2」形式の文字列
が「クエリ文字列」です。
言い方を変えると
GETでやり取りするときにWebサーバに送る情報
ですね。
例えばURLが
http://wa3.i-3-i.info/search.html?q=piyota&ln=e
であれば「?q=piyota&ln=e」の部分がクエリ文字列です。
ちなみに、クエリ文字列は、他にも
・クエリストリング
・クエリパラメータ
・URLパラメータ
・GETパラメータ
などと呼ばれることがあります。
厳密に考えると微妙な違いがありますけどね。
気にする必要ありません。
同じだと思っていても困らないはずです。
一言でまとめるよ
まぁ「クエリ文字列」って単語が出てきたら「GET
(「このページをくれよ」な、お願い)でやり取りするときにURL
(ホームページの住所に相当する情報)の最後に付く(かもしれない)『?項目1=値1&項目2=値2』形式の文字列なんだな~」と お考えください。
おまけ
■訳してみるよ
「query(クエリ)」の意味は「質問」とか「疑問」とか「問い合わせ」とか「質問する」とか「問い合わせる」とかです。
「文字列」は日本語ですね。
何となく くっつけると
問い合わせの文字列
となります。
■検索してみる?






