/
426.txt
442 lines (336 loc) · 22.7 KB
/
426.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
[9]
[[URI]] の仕様書で使われている規則 [DFN[[CODE(ABNF)@en[query]]]]
は、 [[URI]] の[[照会]]部分
[WEAK[(最初の [CODE(URI)[?]] より後で、 [CODE(URI)[#]] より前の部分)]]
を表します。
* 仕様書
[REFS[
- [36] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2016-03-14 22:44:13 +09:00]] 版) <https://html.spec.whatwg.org/#dom-location-search>
]REFS]
* より具体的な構文
[11]
[[照会]] ([CODE(ABNF)@en[query]])
は非階層的方法で[[資源]]を識別するものとされています
[SRC[[[RFC 3986]] 3.4.]] が、それ以上の構文や意味は各
[[URI scheme]] に任されています。
(そして scheme によっては更に下位の名前空間管理者に任されています。)
しかし、実際の使われ方はおおむねいくつかのパターンに当てはまります。
- [CODE(ABNF)@en[[[param]]]] 方式 >>12
- [CODE(HTMLe)@en[[[isindex]]]] 方式 >>13
[12] '''[CODE(ABNF)@en[param]] 方式''':
名前と値の組を複数個列挙します。最もよく使われるのは名前と値の間に
[CODE(URI)[=]] を挟み、名前・値の組同士の間に [CODE(URI)[&]]
を挟んで [SAMP(URI)@en[name1=value1&name2=value2]]
のようにします。
- 名前と値の間の区切子 (普通は [CODE(URI)[=]])
- 組同士の間の区切子 ([CODE(URI)[&]] と [CODE(URI)[;]]
が多く、 [CODE(URI)[,]], [CODE(URI)[$]], [CODE(URI)[|]] (構文違反),
[CODE(URI)[!]] などが使われることもあります。)
- 使用できる名前の種類や値の種類
- 同じ名前を複数回使っても良いか
- 組の順序は意味を持つか
- [[予約文字]]・[[非予約文字]]・[[百分率符号化]]の使用可否
- [CODE[[[+]]]] の意味
などにより、幾つかのバリエーションがあります。
主な使用例:
[FIG(list)[
- [CODE(URI)@en[[[http]]:]] + [[HTML]] ([[Web Forms]])
- [CODE(URI)@en[[[mailto]]:]]
- [CODE(URI)@en[[[ftp:]]]]
- [CODE(URI)@en[[[ni:]]]]
- [CITE@en[RFC 4387 - Internet X.509 Public Key Infrastructure Operational Protocols: Certificate Store Access via HTTP]] ([TIME[2014-06-08 08:24:17 +09:00]] 版) <http://tools.ietf.org/html/rfc4387#section-2>
- [16] [[媒体素片]]
]FIG]
[17] 次の場面では [CODE(MIME)@en[[[application/x-www-form-urlencoded]]]]
が使われています。
[FIG(short list)[
- [[フォームの提出]]
- [[OAuth 1.0]]
- [[OAuth 2.0]]
]FIG]
[64] 次の場面では [CODE(MIME)@en[application/x-www-form-urlencoded]]
の [CODE[+]] 構文を使わない[[パーセント符号化]]が使われています。
[FIG(short list)[
- [[フォームの提出]] ([CODE(URI)@en[mailto:]])
]FIG]
[13] '''[CODE(HTMLe)@en[isindex]] 方式''':
複数の値を与える時に [CODE(URI)[+]] で区切ります。
単純な一次元配列です。
主な使用例:
[FIG(list)[
- [[HTML]] の [CODE(HTMLe)@en[[[isindex]]]] 要素
- [[スクリプト命令行]]
]FIG]
[60] [CODE(HTMLa)@en[ismap]] の[[ハイパーリンク接尾辞]]形式
[14]
[CITE@en[Specifying time intervals in URI queries and fragments of time-based Web resources]] ([CODE[2006-05-06 10:39:46 +09:00]] 版) <http://annodex.net/TR/URI_fragments.html#rfc.section.3>
[15] [CODE(URI)@en[[[coffee:]]]] [[URL scheme]] では [CODE(HTTP)[[[,]]]]
区切りのリストとなっています。
[22] [CODE(URI)@en[[[z39.50r:]]]] / [CODE(URI)@en[[[z39.50s:]]]] では、
値の後に [CODE[;]] 区切りで名前、[CODE[=]]、値の組をいくつか指定できます。
** メモ
[DEL[
- [3] 2396 によれば、問い合わせでの予約文字は [CODE(regex)[ [;/?:@&=+,$] ]] です。 [CODE(URI)[?]] は問い合わせのそれ以前との分離のための予約。 [CODE(regex)[ [&$;=] ]] は [[HTTP]] などで問合せを[[引数]]的に解釈するのによく使われるもの。残る [CODE(regex)[ [/:@,] ]] はどうでしょうね? これらも [[CGIスクリプト]]なんかが意味を持たせて使っていたりするのかな。
- [4] >>3 [CODE(URI)[+]] が抜けてました。これはよく[[間隔]]の意味で使いますね。で、これを含めた10文字が、丁度 2396 の [CODE(ABNF)[reserved]] でした。つまり、予約文字全部が予約ですと、ただそれだけの意味でした。
- [5] >>3 [CODE(URI)[/]] はへたれ実装対策で escape encode した方が安全というのもあるでしょう。
]DEL]
[8] (>>3-5 の話は間違っていませんし [[RFC 3986]] でも変わっていませんが、
[CODE(ABNF)[[[query]]]] 固有の話としては出てこなくなりました。
このあたりの話については[[予約文字]]や[[百分率符号化]]の項を参照して下さい。)
[194] [CITE@en[hypertext references and the query component]]
([[Erik van der Poel]] 著, [TIME[2009-07-23 02:43:43 +09:00]] 版)
<http://lists.w3.org/Archives/Public/public-iri/2009Jul/0008.html>
[FIG[
[REFS[
- [209] [CITE@en-us[Media Fragments URI 1.0 (basic)]] ([TIME[2012-09-27 23:08:40 +09:00]] 版) <http://www.w3.org/TR/2012/REC-media-frags-20120925/#standardisation-terminology>
]REFS]
>URI query: The query component is indicated by the first question mark ("?") character and terminated by a number sign ("#") character or by the end of the URI.
]FIG]
[18] [[HTTP]] 上で動作するプロトコルである [[IPP]] の [CODE(URI)@en[[[ipp:]]]]
[[URL]] は、[CODE(URI)@en[[[http:]]]] の [[URL scheme]] を変えたものとして規定されており、
[[query]] について特別な規定はありませんでした。後に [[IPP]] over [[HTTPS]]
のために規定された [CODE(URI)@en[[[ipps:]]]] は [CODE(URI)@en[[[https:]]]]
の [[URL scheme]] を変えたものにあたりますが、 [[query]] は一貫性のために認めるものの、
[[鯖]]の実装依存であることから[[クライアント]]は指定する[['''べきではない''']]
[SRC[>>19]] とされています。
[REFS[
- [19] [CITE@en[RFC 7472 - Internet Printing Protocol (IPP) over HTTPS Transport Binding and the 'ipps' URI Scheme]] ([TIME[2015-03-04 12:23:14 +09:00]] 版) <https://tools.ietf.org/html/rfc7472#section-4.2>
]REFS]
*
@@
[72]
[FIG(short list)[
- [CODE[guid]]
]FIG]
* 演算
[62] [[フォームの提出]]では、 [[URL記録]]の[F[クエリー][URL query]]全体を置き換える操作が行われることがあります。
[63] [[OAuth 1.0]] の[[要求引数]]を[F[クエリー][URL query]]とする場合、
[F[クエリー][URL query]]の末尾に値を追加する操作が行われます。
[65] [[フォームの提出]]では、 [CODE(URI)@en[mailto:]] [[URL]] の場合、
[F[クエリー][URL query]]の末尾に値を追加する操作が行われます。
* クライアント側での query の利用
[34] [[Webアプリケーション]]は、 [[クライアント]]側で動作する [[JavaScript]]
の処理により、 [[URL query]] が指定されていればその値を解釈し、
その結果に基づき動作を変化させることがあります。
;; [35] [[素片識別子]]もそのように使われることがあり、一般的にはそちらが好ましいと考えられています。
しかし、[[サーバー側]]と[[クライアント側]]で協調して処理したい場合など、
[[query]] を使う方が好ましい状況もあります。
* 第三者による query の利用
[24] 本来 [[query]] の利用方法は[[著者]]の管理下にあるものですが
(もちろん任意の[[利用者]]がどのような [[query]] を使って[[要求]]を送信するかまでは制御できませんが、
本来なら想定外の [[query]] を含む場合は何も考えずに拒絶できるはずです)、
実際には第三者が query を勝手に利用することがあります。
[30] [[著者]] (や[[サーバー]]・[[Webサービス]]の開発者) は、実用上、 [[query]]
を次のように扱うべきです。
[FIG(list)[
- [31] [CODE(MIME)@en[[[application/x-www-form-urlencoded]]]] と矛盾しないように解釈するべきです。
- [32] 未知の[[引数]]は無視するべきで、その[[引数]]の存在によりエラーとなったり、
異なる[[Webページ]]を返したりするべきではありません。
- [33] [[query]] をまったく使わない場合、 [[query]] があってもすべて黙って無視するべきです。
]FIG]
** アクセス元明示のための用法
[26] [[リンク]]する時に、[[リンク元]]の [[Webサイト]]がどこであるか示すことを目的に[[リンク先]]の [[URL]]
に何らかの query の値を付与するものがあります。
[EG[
[27] 例えば [[SNS]] は、[[利用者]]が [[URL]] を投稿した時に、 [CODE[?from=snsname]]
のような [[query]] を自動的に付加するかもしれません。
]EG]
[EG[
[28] 例えば[[広告配信]]システムは、出稿者の指定した [[URL]]
に広告配信に関する必要な情報を [[query]] として付加するかもしれません。
]EG]
** 既読管理のための用法
[23] [[アンテナ]]は、[[リンク先]]の [[URL]] に [[URL query]] として更新(検知)日付などの値を付け足すことがありました。
これと [[Webブラウザー]]が[[既読リンク]] ([CODE(CSS)@en[[[:visited]]]]) と[[未読リンク]]
([CODE(CSS)@en[[[:link]]]]) で色を変えるなどして表示することにより、
更新後に当該 [[URL]] を表示したかどうかを [[Webブラウザー]]に管理させることができます。
[25] 本来[[サーバー]]の管理下にある [[query]] を第三者である[[アンテナ]]が勝手に使うため、
[[サーバー]]の処理に悪影響を及ぼすおそれがあります。そうでなくても[[サーバー]]の[[アクセスログ]]に[[著者]]の意図せぬ
[[query]] の記録が残るため、不審に思われる可能性があります。
そのため[[素片識別子]]を使うのがより良い方法と考えられていました。
ただし [[IE]] は[[素片識別子]]を除いた部分で既読管理していたため、
[[IE]] で意図通り動作させるためには [[query]] を使うのもやむを得ないと考えられていました。
[EG[
[29] 例えば [CODE[http://www.example.com/]] が 2000年1月2日に更新されていた場合、
[CODE[http://www.example.com/?20000102]] のような [[URL]] が示されるかもしれません。
]EG]
* [CODE(DOMi)@en[Location]] インターフェイス [CODE(DOMa)@en[search]] 属性
** 性質
[57] この[[属性]]は、 [CODE(xattr IDL)@en[Unforgeable]] です [SRC[>>36]]。
** 取得器
[37] [CODE(JS)@en[location.search]] の[[取得器]]は、次のようにしなければ[MUST[なりません]]
[SRC[>>36]]。
[FIG(steps)[
= [38] [[文脈オブジェクト]]の[F[[[関係する[CODE(DOMi)@en[Document]]]]]]の[F[起源][文書の起源]]と[[入口設定群オブジェクト]]の[F[起源]]が[[同じ起源ドメイン]]でなければ、
== [39] [CODE(DOMe)@en[SecurityError]] [[例外]]を[[投げ]]、ここで停止します。
= [40] [VAR[URL]]を、[[文脈オブジェクト]]の[F[URL][Location (DOM)]] に設定します。
= [41] [VAR[URL]] の[F[query]]が [[null]] か[[空文字列]]なら、
== [42] [[空文字列]]を返します。
= [43] それ以外なら、
== [44] [CODE[?]] と [VAR[URL]] の [F[query]] を連結したものを返します。
]FIG]
** 設定器
[45] [CODE(JS)@en[location.search]] の[[設定器]]は、次のようにしなければ[MUST[なりません]]
[SRC[>>36]]。
[FIG(steps)[
= [58] [VAR[入力]]を、与えられた値を [CODE(IDL)@en[USVString]] として解釈した結果に設定します。
= [46] [[文脈オブジェクト]]の[F[[[関係する[CODE(DOMi)@en[Document]]]]]]の[F[起源][文書の起源]]と[[入口設定群オブジェクト]]の[F[起源]]が[[同じ起源ドメイン]]でなければ、
== [47] [CODE(DOMe)@en[SecurityError]] [[例外]]を[[投げ]]、ここで停止します。
= [48] [VAR[複製]]を、[[文脈オブジェクト]]の[F[URL][Location (DOM)]] に設定します。
= [49] [VAR[入力]]が[[空文字列]]なら、
== [50] [VAR[複製]]の[F[query]]を、 [[null]] に設定します。
= [51] それ以外なら、
== [53] [VAR[入力]]の先頭が [CODE[?]] なら、これを削除します。
== [54] [VAR[複製]]の[F[query]]を、[[空文字列]]に設定します。
== [55] [VAR[入力]]に[[基本URL構文解析]]を適用します。
[VAR[URL]] は[VAR[複製]]、[VAR[状態上書き]]は [[query state]] とします。
[VAR[符号化上書き]]は、[[文脈オブジェクト]]の[F[[[関係する[CODE(DOMi)@en[Document]]]]]]の[F[文書の文字符号化]]とします。
= [56] [[文脈オブジェクト]]と [VAR[複製]]について
[[[CODE(DOMi)@en[Location]]-object-setter navigate]] を実行します。
]FIG]
* メタ変数 [CODE(CGI)@en[QUERY_STRING]] (CGI)
[200] [[CGI]] の[[メタ変数]] [DFN[[CODE(CGI)@en[[[QUERY_STRING]]]]]] には[[要求]]された [[URL]]
の [[query]] 部分が含まれます。
** 仕様書
[REFS[
- [202] [CITE@en[RFC 3875 - The Common Gateway Interface (CGI) Version 1.1]] ([TIME[2011-11-20 06:09:05 +09:00]] 版) <http://tools.ietf.org/html/rfc3875#section-4.1.7>
]REFS]
** 構文
[201] 構文は次のように定義されています [SRC[>>202]]。
[PRE(ABNF code)[
QUERY_STRING = query-string
query-string = *uric
uric = [[reserved]] | [[unreserved]] | [[escaped]]
]PRE]
;; [203] [CODE(CGI)@en[[[PATH_INFO]]]] とは違って勝手に[[パーセント復号]]されることはありません。
*** NULL
[204] [[鯖]]はこの値を必ず設定しなければ[['''なりません''']]。 [[URL]] に [[query]]
が含まれていなければ[[空文字列]]としなければ[['''なりません''']]。 [SRC[>>202]]
[205] >>204 の規定は [[CGI]] において一般に[[空文字列]]と値の未設定を区別しないこととどう関係するのか不明瞭です。
この[[メタ変数]]に限って特別扱いしているとも読めますし、 [[query]]
が[[空文字列]]であっても存在しなくても一貫して[[メタ変数]]を設定しないなら良いと解釈できないこともありません。
[196] [[CGI]] の実装では [[Apache]] などは URI が [SAMP(URI)[/foo]] の場合も [SAMP(URI)[/foo?]] の場合も[[メタ変数]] [CODE(CGI)[QUERY_STRING]] は空文字列になりますが、サーバーによっては前者は変数未定義になることもあるようです。
[197] >>196 [NCSA] 的には妥当だけど、 [COAR] 的には不当ですね。
[199] >>196 [[IIS]] と [[iPlanet]] は [CODE(CGI)@en[[[QUERY_STRING]]]]
をその場合設定しないそうです。
** 歴史
[195] [NCSA]:
[FIG[
> The information which follows the ? in the URL which referenced this script. This is the query information. It should not be decoded in any fashion. This variable should always be set when there is query information, regardless of command line decoding.
そのスクリプトを参照する URL
中で [CODE(URI)[[[?]]]]
に続く情報です。
これは問い合わせ情報です。
これはどんな形でも復号するべきではありません。
この変数は、問い合わせ情報があるときには常に設定するべきです。
[[命令行]]復号にかかわらずです。
]FIG]
[3] [COAR 03]:
[FIG[
> A URL-encoded string; the <query> part of the Script-URI. (See section 3.2.)
URL 符号化文字列: [[Script-URI]]
の [CODE[<query>]]
部分です。
>
- QUERY_STRING = query-string
- query-string = *uric
> The URL syntax for a query string is described in section 3 of RFC 2396 [4].
問合せ文字列の URL 構文は
[[RFC2396]]の3章で説明されています。
> Servers MUST supply this value to scripts. The QUERY_STRING value is case-sensitive. If the Script-URI does not include a query component, the QUERY_STRING metavariable MUST be defined as an empty string ("").
サーバーはこの値をスクリプトに供給し'''なければなりません ([[MUST]])'''。
[CODE(CGI)[[[QUERY_STRING]]]]
値は大文字・小文字を区別します。
Script-URI が問合せ部品を含まないときは、
[CODE(CGI)[QUERY_STRING]]
メタ変数は空文字列 ("")
として定義し'''なければなりません ([[MUST]])'''。
]FIG]
** 実装
[198] PHP では (古い書き方では) [CODE(CGI)[QUERY_STRING]] の部分を構文解析して変数名 = 引数名で値に access できますね。 [SAMP(URI)[?foo=bar]] を [SAMP(PHP)[$foo]] とか。
** 関連
[206] [[query]] はこの[[メタ変数]]の他、[[スクリプト命令行]]として[[CGIスクリプト]]に引き渡されることがあります。
* 歴史
[10] '''定義の変遷''':
= [1] [DEL[[CODE(ABNF)@en[[DFN[query]] := *( [[uchar]] / [[reserved]] ) ;; [[RFC 1808]]]]]]
= [2] [DEL[[CODE(ABNF)@en[[DFN[query]] := *[[uric]] ;; [[RFC 2396]]]]]]
= [6] [CODE(ABNF)@en[[DFN[query]] := *( pchar / "/" / "?" ) ;; [[RFC 3986]]]]
[7] '''RFC 3986 の定義の詳細''':
[[RFC 3986]] の [CODE(ABNF)@en[[[pchar]]]] は
[CODE(ABNF)@en[[[unreserved]] / [[pct-encoded]] / [[sub-delims]] / ":" / "@"]]
です。すなわち [[URI]] で使える[[文字]]のうち、
[CODE(ABNF)["#" / "[" / "]"]] だけが使えません。
定義としては [[RFC 2396]] と同じです。
[207] [CITE[Form of the GET method used with searches]]
( ([TIME[1993-12-13 15:42:19 +09:00]] 版))
<http://www.w3.org/Protocols/HTTP/Methods/GetSearches.html>
[208] [CITE[Web Application Description Language]]
( ([TIME[2009-09-10 03:59:24 +09:00]] 版))
<http://www.w3.org/Submission/2009/SUBM-wadl-20090831/#x3-130002.6.1>
[210] [CITE[IRC logs: freenode / #whatwg / 20131217]]
( ([TIME[2013-12-19 00:39:12 +09:00]] 版))
<http://krijnhoetmer.nl/irc-logs/whatwg/20131217>
[211] [CITE@en[Bug 23822 – Should the EventSource, Worker, and SharedWorker constructors resolve the URL using utf-8?]]
( ([TIME[2014-09-30 04:36:43 +09:00]] 版))
<https://www.w3.org/Bugs/Public/show_bug.cgi?id=23822>
[212] [CITE@en[Clean up set the input algorithm now all URLs have a query · 217cf06 · whatwg/url]]
( ([TIME[2014-10-19 00:59:02 +09:00]] 版))
<https://github.com/whatwg/url/commit/217cf06b9d2b7fbbbf65eec9d1ea9fce66fec8bf>
[20] [CITE@en[Do not encode ` in query. Fixes #17. · whatwg/url@f54c44d]]
([TIME[2015-06-11 12:55:39 +09:00]] 版)
<https://github.com/whatwg/url/commit/f54c44d1f790dd2b8913e955ba6d334c6f14a048>
[21] [CITE@en[Bug 26338 – Limit query encoding override to http/https]]
([TIME[2015-06-18 19:14:36 +09:00]] 版)
<https://www.w3.org/Bugs/Public/show_bug.cgi?id=26338>
[52] [CITE@en[Comment out query/queryAll/Elements for now · whatwg/dom@10b6cf1]]
([TIME[2016-03-30 11:15:27 +09:00]] 版)
<https://github.com/whatwg/dom/commit/10b6cf1ba02806220d5461a3bdb7939728b73635>
[59] [CITE@en[Merge effective script origin into origin · whatwg/html@8a843f2]]
([TIME[2016-03-31 18:10:25 +09:00]] 版)
<https://github.com/whatwg/html/commit/8a843f2169a6864a3024c4329528dccb2051d275>
[61] [CITE@en[Remove isindex handling from application/x-www-form-urlencoded · whatwg/url@c85fb5d]]
([TIME[2016-04-27 16:46:32 +09:00]] 版)
<https://github.com/whatwg/url/commit/c85fb5d527f822e089aecc9207f077c6b886aed5>
[66] [CITE@en[Align with changes in Selectors]]
( ([[annevk]]著, [TIME[2016-06-10 16:44:08 +09:00]]))
<https://github.com/whatwg/dom/commit/1594aa52357371354780750413ad88e9e8a2b56b>
[67] [CITE@en[284474 – Converting to UTF-8 a url with an unescaped non-ASCII chars in the query part leads to an incompatibility with most server-side programs]]
( ([TIME[2016-06-12 00:20:28 +09:00]]))
<https://bugzilla.mozilla.org/show_bug.cgi?id=284474>
[68] [CITE@ja[URL 生成ツール - アナリティクス ヘルプ]]
([TIME[2016-06-28 15:05:49 +09:00]])
<https://support.google.com/analytics/answer/1033867?hl=ja>
[FIG(quote)[
[FIGCAPTION[
[69] [CITE@ja[URL パラメータ ツールでパラメータを分類する - Search Console ヘルプ]]
( ([TIME[2016-09-11 01:29:06 +09:00]]))
<https://support.google.com/webmasters/answer/6080550?hl=ja>
]FIGCAPTION]
> アクティブ パラメータ
> アクティブ パラメータは、ページのコンテンツを変えることができます。たとえば、brand、gender、country、sortorder はアクティブ パラメータです。以下に、アクティブ パラメータによる一般的なコンテンツ変更を示します。
> 並べ替え(例: sort=price_ascending): コンテンツが表示される順番を変更します。
> 絞り込み(例: t-shirt_size=XS): ページのコンテンツをフィルタリングします。
> 特定(例: store=women): ページに表示されるコンテンツを特定します。
> 翻訳(例: lang=fr): コンテンツの翻訳版を表示します。
> ページ指定(例: page=2): 長いリストや記事の特定のページを表示します。なお、直接コンテンツをページ指定することもできます。
> パッシブ パラメータ
> パッシブ URL パラメータは、ユーザーに表示されるコンテンツには影響しません。多くの場合、アクセスやリファラーを追跡する目的で使用しますが、実際のページのコンテンツに影響することはありません。たとえば、次の URL はすべて同じコンテンツを指しています。
> http://www.example.com/products/women/dresses?sessionid=12345
> http://www.example.com/products/women/dresses?sessionid=34567
> http://www.example.com/products/women/dresses?sessionid=34567&source=google.com
> パッシブ パラメータには、sessionid、affiliateid などがあります。
]FIG]
[FIG(quote)[
[FIGCAPTION[
[70] [CITE[Apache Tomcat Configuration Reference (6.0.45) - The HTTP Connector]]
([[Craig R. McClanahan]]著, [TIME[2016-02-11 23:00:17 +09:00]])
<http://tomcat.apache.org/tomcat-6.0-doc/config/http.html>
]FIGCAPTION]
> URIEncoding
> This specifies the character encoding used to decode the URI bytes, after %xx decoding the URL. If not specified, ISO-8859-1 will be used.
> useBodyEncodingForURI
> This specifies if the encoding specified in contentType should be used for URI query parameters, instead of using the URIEncoding. This setting is present for compatibility with Tomcat 4.1.x, where the encoding specified in the contentType, or explicitly set using Request.setCharacterEncoding method was also used for the parameters from the URL. The default value is false.
]FIG]
[71] [CITE@en[Editorial: give URL syntax components their own terms]]
([[annevk]]著, [TIME[2016-11-01 00:05:41 +09:00]])
<https://github.com/whatwg/url/commit/451696e4297c4c676fae21dbc926aeafb2477e6c>