/
979.txt
130 lines (97 loc) · 5.2 KB
/
979.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
[5] かつて [[URL]] の構文要素として [DFN[params]]、[DFN[param]] が定義されていました。
[6] 現在は[[パス][URL path]]の一部として扱われ、特別な意味は持っていません。
* 構文
[HISTORY[
- [1] [CODE(ABNF)[[DFN[params]] := [[param]] *( ";" param ) ;; [[RFC 1808]]]]
- [2] [CODE(ABNF)[[DFN[param]] := *( pchar / "/" ) ;; RFC 1808]]
[3] [[RFC 2396]] では
[CODE(ABNF)[[DFN[[[segment]]]] := *[[pchar]] *( ";" param )]],
[CODE(ABNF)[[DFN[[[param]]]] := *pchar]] です。 RFC 1808
では一節を裂いていたのに 2396 では tone down して [CODE(ABNF)[[[path_segment]]]] のおまけ扱いです。
もっとも、 1808 までは URI の一番最後の [CODE(ABNF)[[[query]]]]
直前だけが[RUBY[引数][パラメーター]]だったのが、 2396 では
[CODE(ABNF)[path]] 内のどの [CODE(ABNF)[segment]]
にもつけれるようになったという意味では進化しています。
]HISTORY]
* 文脈
[4] 次の場面で使われています。
[FIG(short list)[
- [CODE(URI)@en[ftp:]]
- [CODE(URI)@en[;save]]
-- [CODE(URI)@en[sftp:]]
-- [CODE(URI)@en[scp:]]
- [CODE[prospero:]]
]FIG]
* 歴史
[FIG(quote)[
[FIGCAPTION[
[9] RFC 1808 (相対 URL) 2.4.5. Parsing the Parameters
]FIGCAPTION]
> If the parse string contains a semicolon ";" character, then the
substring after the first (left-most) semicolon ";" and up to the end
of the parse string is the parameters (<params>). If the semicolon
is the last character, or no semicolon is present, then <params> is
empty. The matched substring, including the semicolon character, is
removed from the parse string before continuing.
解析文字列がセミコロン [CODE(char)[;]]
文字を含んでいるなら、最初の (最左の) セミコロン
[CODE(URI)[;]] の後から解析文字列の最後までは引数
([CODE[<params>]]) です。
セミコロンが最後の文字であるか、セミコロンが現れないなら、
[CODE[<params>]] は空です。
一致した部分文字列は、セミコロンも含めて、続行する前に解析文字列から削除します。
]FIG]
[FIG(quote)[
[FIGCAPTION[
[10] RFC 2396 (URI) 3.3 抜粋
]FIGCAPTION]
>Each path segment may include a sequence of parameters, indicated by the semicolon ";" character. The parameters are not significant to the parsing of relative references.
各経路 segment は引数の列を含めることができまして、
これはセミコロン [CODE(URI)[;]] 文字で示します。
引数は相対 URI の解析には意味を持ちません。
]FIG]
[8] [CITE@en[84409 – URL: relative URLs break if if base URL has ";" character]]
( ([TIME[2016-06-12 00:25:31 +09:00]]))
<https://bugzilla.mozilla.org/show_bug.cgi?id=84409>
[7] [CITE@en[448141 – Unable to open file with special characters in file:// ftp:// listing (";", semicolon, in file name)]]
( ([TIME[2016-06-12 00:25:09 +09:00]]))
<https://bugzilla.mozilla.org/show_bug.cgi?id=448141>
[11] [CITE@ja[都税 クレジットカードお支払サイト]]
([TIME[2016-12-16 09:25:43 +09:00]])
<https://zei.tokyo/about-this-site.action;jsessionid=503ec08b6e8a7a3637f9583497d7>
[12] [CITE[Yocto Project Reference Manual]]
([TIME[2017-11-20 17:34:04 +09:00]])
<http://www.yoctoproject.org/docs/2.4/ref-manual/ref-manual.html#var-SRC_URI>
[FIG(quote)[
[FIGCAPTION[
[13] [CITE[BitBake User Manual]]
([TIME[2017-11-20 17:34:41 +09:00]])
<http://www.yoctoproject.org/docs/2.4/bitbake-user-manual/bitbake-user-manual.html#http-ftp-fetcher>
]FIGCAPTION]
> Because URL parameters are delimited by semi-colons, this can introduce ambiguity when parsing URLs that also contain semi-colons, for example:
> SRC_URI = "http://abc123.org/git/?p=gcc/gcc.git;a=snapshot;h=a5dd47"
>
> Such URLs should should be modified by replacing semi-colons with '&' characters:
> SRC_URI = "http://abc123.org/git/?p=gcc/gcc.git&a=snapshot&h=a5dd47"
>
> In most cases this should work. Treating semi-colons and '&' in queries identically is recommended by the World Wide Web Consortium (W3C). Note that due to the nature of the URL, you may have to specify the name of the downloaded file as well:
> SRC_URI = "http://abc123.org/git/?p=gcc/gcc.git&a=snapshot&h=a5dd47;downloadfilename=myfile.bz2"
]FIG]
[FIG(quote)[
[FIGCAPTION[
[14] [CITE[Yocto Project Development Tasks Manual]]
([TIME[2017-11-20 17:35:23 +09:00]])
<http://www.yoctoproject.org/docs/current/dev-manual/dev-manual.html#new-recipe-makefile-based-package>
]FIGCAPTION]
> LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \
> file://include/common.h;beginline=1;endline=17;md5=ba05b07912a44ea2bf81ce409380049c"
]FIG]
[FIG(quote)[
[FIGCAPTION[
[15] [CITE@en[TipsAndTricks/NPM - Yocto Project]]
([TIME[2016-10-21 09:06:14 +09:00]])
<https://wiki.yoctoproject.org/wiki/TipsAndTricks/NPM>
]FIGCAPTION]
> SRC_URI = "npm://registry.npmjs.org;name=cute-files;version=${PV}"
]FIG]
[16] [CITE[Matrix URIs - Ideas about Web Architecture]], [TIME[2009-08-27T21:38:06.000Z]], [TIME[2020-12-29T06:45:41.159Z]] <https://www.w3.org/DesignIssues/MatrixURIs.html>