/
186.txt
202 lines (146 loc) · 7.96 KB
/
186.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
[60] [DFN[[[URL]]]] は、 [[Web]] において[[アドレス]]や[[識別子]]として用いられている[[文字列]]です。
* 仕様書
[63] [[URL]] は、 [[URL Standard]] により定義されています。
* URL の分類
[61] [[URL]] には、単独で解釈できる[[絶対URL]]と、他の[[絶対URL]]を文脈として解釈される[[相対URL]]があります。
[62] [[絶対URL]]には [[URL scheme]] が含まれており、その値によって [[[CODE(URI)@en[http:]] URL]]、
[[[CODE(URI)@en[mailto:]] URL]]、[[[CODE(URI)@en[ftp:]] URL]] などに分類されます。
* URL の構成要素
[70] [[URL]] はいろいろな要素によって構成されています。
[FIG[
- [[URL scheme]]
- [[authority]]
-- [[userinfo]]
--- [[user]]
--- [[password]]
-- [[host]]
--- [[hostname]]
---- [[IPv4address]]
---- [[IPv6address]]
--- [[port]]
- [[path]]
-- [[param]]
- [[query]]
- [[素片識別子]]
]FIG]
* URL に関わる概念と演算
[71] [[URL]] には色々な概念や演算が関係しています。
[FIG[
- [[URLの解決]]
- [[基底URL]]
- [[URLの比較]]
- [[パーセント符号化]]
]FIG]
* RSS における URL の利用
[5] [[RSS 2.0]] は [CODE(XMLe)@en[[[url]]]] [[要素]]、
[CODE(XMLe)@en[[[link]]]] [[要素]]、[CODE(XMLa)@en[[[url]]]] [[属性]]、
[CODE(XMLe)@en[[[docs]]]] [[要素]]、[CDE(XMLe)@en[[[comments]]]] [[要素]]、
[CODE(XMLe)@en[[[guid]]]] [[要素]]で [[URL]]
を値として使っています。ただし、「[[URL]]」の定義は明記されておらず、
どの仕様も引用されていません。
;; [[RSS Best Practices Profile]] は [[IRI]] を禁じるにあたって [[RFC 3987]]
を引用しているので、それを類推すれば [[RFC 3986]] に従うのかもしれませんが、
[[RFC 3986]] なら [[URL]] ではなく [[URI]] のはずです。
[6] このうち、なぜか [CODE(XMLe)@en[[[url]]]] ''[[要素]]''と
[CODE(XMLe)@en[[[link]]]] [[要素]]については [[URL scheme]] に関する制限があります。
仕様書:
-[CITE@en[RSS 2.0 Specification (version 2.0.10)]] ([TIME[2008-11-21 18:10:17 +09:00]] 版) <http://www.rssboard.org/rss-specification#comments>
-[CITE@en[RSS Best Practices Profile]] ([TIME[2008-11-21 15:11:45 +09:00]] 版) <http://www.rssboard.org/rss-profile#data-types-url>
** 妥当性
[10] [CODE(XMLe)@en[[[url]]]] ''[[要素]]''と
[CODE(XMLe)@en[[[link]]]] [[要素]]の[[内容]]は妥当な [[URL]]
でなければ[['''なりません''']] [SRC@en[[[RSS Best Practices Profile]]]]。
;; [[IRI]] は使えません [SRC@en[[[RSS Best Practices Profile]]]]。
[7] [[RSS 2.0]] 仕様書や [[RSS Best Practices Profile]]
は、「最初の非[[空白]][[文字]]には制限があります」といっています。
つまり、明記されていませんが、 [[URL]] の前に[[空白]]を挿入してもかまわないようです。
[8] [CODE(XMLe)@en[[[url]]]] ''[[要素]]''と
[CODE(XMLe)@en[[[link]]]] [[要素]]の [[URL]] の
[[URL scheme]] は、 [[IANA]] 登録簿に登録されているものでなければ[['''なりません''']]
[SRC@en[[[RSS 2.0]], [[RSS Best Practices Profile]]]]。
[9] [CODE(XMLe)@en[[[url]]]] ''[[要素]]''と
[CODE(XMLe)@en[[[link]]]] [[要素]]の [[URL]]
は[[相対URL]] であっては[['''なりません''']] [SRC@en[[[RSS Best Practices Profile]]]]。
* 識別子としての利用
[11] [CITE@EN[The Self-Describing Web]] ([TIME[2009-01-16 04:14:18 +09:00]] 版) <http://www.w3.org/2001/tag/doc/selfDescribingDocuments.html>
* URL 設計
[49] [CITE[URL Design — Warpspire]]
( ([TIME[2011-01-05 03:41:37 +09:00]] 版))
<http://warpspire.com/posts/url-design/>
* 文脈
[12] [[URL]] はありとあらゆる場面で使われています。
** URL に含められる文字を区切り文字として使う文脈
[13] [[HTTPヘッダー]]である [CODE(HTTP)@en[[[OPES-System:]]]] や
[CODE(HTTP)@en[[[OPES-Via:]]]] では、区切り文字として [CODE(HTTP)[[[,]]]]
や [CODE(HTTP)[[[;]]]] を使っています。構文解析方法は決められていません。
[14] [[HTML]] の [CODE(HTMLa)@en[[[srcset]]]] [[属性]]では [CODE(HTTP)[[[,]]]]
が[[区切り文字]]として使われています。構文解析方法も明確に規定されています。
* 歴史
[64] [[URL]] ははじめ [[TimBL]] によって [[World Wide Web]] を構成する技術の一つとして提案されました。
この当時の仕様書は [[W3O]] の [[Webサイト]]や [[www-talk]] [[メーリングリスト]]などで配布されていました。
[65] その後は [[IETF]] によって標準化が行われました。
[66] [[URL]] 本体仕様として、次のものが発行されています。
[FIG[
- [[RFC 1630]]
- [[RFC 1738]]
- [[RFC 1808]]
- [[RFC 2396]]
- [[RFC 2732]]
- [[RFC 3986]]
- [[RFC 3987]]
- [[RFC 6874]]
]FIG]
;; [67] この期間の歴史は、 [[URI]]、[[URN]]、[[IRI]] の項を参照してください。
[68] 00年代に [[WHATWG]] で改めて [[URL]] を定義する動きがあり、紆余曲折を経て2012年、
[[Anne van Kesteren]] により [[URL Standard]] が作られました。
;; [69] この期間の歴史は、 [[URL Standard]] の歴史の項を参照してください。
** 歴史的定義
- [1] [CODE(ABNF)[[DFN[URL]] = ( absoluteURL | relativeURL ) [ "#" fragment ] ]]
;; [[RFC 1808]]
[2]
>
:s) URL (Uniform Resource Locator):[[インターネット]]上の[[アドレス]]。
[SRC[[[JIS X 4081]]:2002]]
[3]
>>2 なにこの定義、ふざけてるの?
* メモ
[50] [CITE[Document Structure – SVG 1.1 (Second Edition)]]
( ([TIME[2011-08-10 12:35:27 +09:00]] 版))
<http://www.w3.org/TR/2011/REC-SVG11-20110816/struct.html#__svg__SVGDocument__URL>
[51] [CITE[How many ways can you slice a URL and name the pieces? - Tantek]]
( ([TIME[2011-11-07 00:05:48 +09:00]] 版))
<http://tantek.com/2011/238/b1/many-ways-slice-url-name-pieces>
[52] [CITE@EN[The use of Metadata in URIs]]
( ([TIME[2007-07-25 03:37:05 +09:00]] 版))
<http://www.w3.org/2001/tag/doc/metaDataInURI-31.html>
[53] [CITE@en[URL formats · Microformats Wiki]]
([TIME[2012-05-07 14:15:33 +09:00]] 版)
<http://microformats.org/wiki/url-formats>
[54] [CITE[cweb/iri-tests]]
( ([TIME[2012-06-30 17:53:36 +09:00]] 版))
<https://github.com/cweb/iri-tests>
[55] [CITE[JSON-LD API 1.0]]
( ([TIME[2012-06-27 10:09:09 +09:00]] 版))
<http://json-ld.org/spec/FCGS/json-ld-api/20120626/#idl-def-URL>
[56] [CITE[WWW-Talk Apr-Jun 1993: URL plain text version's URL]]
( ([TIME[2013-03-05 12:47:59 +09:00]] 版))
<http://1997.webhistory.org/www.lists/www-talk.1993q2/0140.html>
[57] [CITE[IRC logs: freenode / #whatwg / 20131220]]
( ([TIME[2013-12-24 15:23:05 +09:00]] 版))
<http://krijnhoetmer.nl/irc-logs/whatwg/20131220>
[58] [CITE@en[Bug 23968 – Reference the URL spec]]
( ([TIME[2013-12-25 10:48:00 +09:00]] 版))
<https://www.w3.org/Bugs/Public/show_bug.cgi?id=23968>
[59] [CITE@en[draft-ietf-appsawg-uri-get-off-my-lawn-01 - Standardising Structure in URIs]]
( ([TIME[2014-01-30 14:08:55 +09:00]] 版))
<https://tools.ietf.org/html/draft-ietf-appsawg-uri-get-off-my-lawn-01>
[72] [CITE[Linkification of URLs - Google ドキュメント]]
( ([TIME[2014-05-24 03:35:02 +09:00]] 版))
<https://docs.google.com/document/d/1h9yPmUScIGt9gEquLjgf739GfEy8QJ6WG_hsc-OTkBU/edit?pli=1>
[73] [CITE[Clarify URL use in APIs · eece8eb · whatwg/url]]
( ([TIME[2014-05-28 15:31:43 +09:00]] 版))
<https://github.com/whatwg/url/commit/eece8ebf1391c538cdbaab6e4b957ea769d06b56>
[74] [CITE@en-US[July 2014 snapshot of the URL Standard for the purposes of patent lawyers and government officials]]
( ([TIME[2014-07-30 19:15:47 +09:00]] 版))
<http://www.whatwg.org/specs/url/2014-07-30/>
[4] [CITE[How URL started as UDI — a brief conversation with @timberners_lee @W3C #TPAC - Tantek]] ([TIME[2014-11-01 03:29:01 +09:00]] 版) <http://tantek.com/2014/304/b1/url-started-as-udi-conversation-w3c-tpac>