【くえりもじれつ】

クエリ文字列 とは?

公開:
💡 URLの行き先に添える「条件メモ」

URLの最初の「?」に続く、検索語や表示条件などを表す部分。「#」があればその直前までで、具体的な意味は受け取るサイトが決めます。

📌 このページのポイント
URLに添える条件の例 https://example.net/search ? q=cat&page=2 #top q=cat&page=2 クエリ:この例は2組 #top フラグメント 項目名や意味はサイトが決める 名前=値の形式はよくある使い方
例示用URLを分解した図。クエリは最初の?の後から#またはURL末尾まで。項目の意味や重複時の扱いはサービスの仕様で確認する。
ひよこ ひよこ
URLの後ろの?q=catって何なの?
ペンギン先生 ペンギン先生
?の後のq=catがクエリ文字列だよ。たとえば検索語をqで受け取るサイトなら「catを探して」という条件になるんだ。qという名前の意味は、すべてのサイトで共通ではないよ。
ひよこ ひよこ
条件を2つ付けることもできる?
ペンギン先生 ペンギン先生
よくある形式では、q=cat&page=2のように&で区切るよ。この例はqとpageの2組で、サイトがそう定めていれば「catの検索結果の2ページ目」を表すね。
ひよこ ひよこ
その後に#topがあったら、これも条件なの?
ペンギン先生 ペンギン先生
#から先はフラグメントという別の部分だよ。クエリ文字列はその手前で終わるんだ。また、URLのクエリとデータベースに送るSQLのクエリは同じものではないよ。
ひよこ ひよこ
どんな情報でも入れて送っていいの?
ペンギン先生 ペンギン先生
秘密情報を入れる設計は避けよう。URLは共有されたり、履歴やログなどに残ったりするからね。HTTPSでもURLの共有先や保存先から内容が見える可能性まではなくならないよ。
もっと詳しく知りたい人へ

同じ項目名が2回あると、後ろの値が使われる?

一律には決まらないよ。URLSearchParamsでは同じ名前の組を複数保持でき、getAllで全部取り出せるんだ。サーバーが最初・最後・全件のどれを使うかは実装の仕様を確認しよう。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「クエリ文字列」って出てきたら「URLに添えた検索条件などの情報」と思えればだいたいOK!
📖 おまけ:英語の意味
「Query String」 = 問い合わせを表す文字列
💬 Queryは問い合わせ、Stringは文字列。URLでは検索条件などを文字列で渡す部分を指すんだよ。

参考資料

← 用語集にもどる