-
Notifications
You must be signed in to change notification settings - Fork 4
/
179.txt
247 lines (180 loc) · 12.4 KB
/
179.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
[12] [[URL]] の決め方には、色々な流儀や主張があります。
[31] [[宗教性]]の強い主張が多いので、深入りしないように注意しましょう。
* Cool URI
[14] [DFN[Cool URIs don't change]] は、[[Web]] の発明者である [[TimBL]]
による記事とその主張です。 [[Webサイト]]の[[著者]]の気まぐれにより [CODE[404]]
エラーが多発していた当時の状況を踏まえ、良い [[URL]] を設計する必要性と方法を説いています。
[15] 当時の[[意識の高い]] [[Web開発者]]に大きな影響を与え、
[[拡張子]]のない [[URL path]] の普及のきっかけともなりました。
[21] しかし世の中の大勢に影響を与えるまでには至りませんでした。
現実的には [[URL]] はどんどん意味のないものとなり、
[[ドメイン]]は気づいたらなくなっています。 [[URL]]
が変わらず機能し続けるなどというのは幻想です。
[28] とはいえ必然的な理由なく [[URL]] をころころ変えることは、
Tim の主張を繰り返すまでもなく、たしかに慎むべきでしょう。
[REFS[
- [4] [CITE[Hypertext Style: Cool URIs don't change.]] ([TIME[2014-02-25 08:09:53 +09:00]] 版) <http://www.w3.org/Provider/Style/URI.html>
-- [38] <http://www.kanzaki.com/docs/Style/URI.html>
--- [39] 移転確認 [TIME[2023-04-04T07:24:09.000Z]]
--- [40] [CITE@ja[クールなURIは変わらない -- Style Guide for Online Hypertext]], [TIME[2012-09-19T16:27:47.000Z]], [TIME[2023-04-04T07:24:01.969Z]] <https://www.kanzaki.com/docs/Style/URI.html>
- [56]
[CITE[GoodURIs - ESW Wiki]] <http://esw.w3.org/topic/GoodURIs>
]REFS]
** 内容折衝
@@
[REFS[
- [67]
[CITE@en[h3h.net - Designing URLs for Multilingual Web Sites]] ([CODE[2007-10-07 21:44:44 +09:00]] 版) <http://h3h.net/2007/01/designing-urls-for-multilingual-web-sites/>
]REFS]
** Semantic Web
[10] [[Semantic Web]] の世界では、[[計算機]]上の表現でない[[資源]] (実在する物など)
を表す時、次の何れかの方法を採るのが良いとされています。
[FIG(list)[
- [[ハッシュURL]]を使う ([[RDF]] でその[[資源]]について説明する)
- [[素片識別子]]のない [CODE(URI)@en[http:]] [[URL]] を使い、
[[HTTPサーバー]]は [CODE(HTTP)[303]] [[応答]]を返してその[[資源]]について説明した [[RDF]]
に[[リダイレクト]]する
]FIG]
[66]
[CITE[URI Declaration Versus Use]] ([TIME[2007-08-02 13:08:18 +09:00]] 版) <http://dbooth.org/2007/uri-decl/>
>A URI declaration permits assertions about a URI's associated resource to be classified into two groups: core assertions, whch are provided by the URI declaration, and ancillary assertions, which are all others. This distinction enables different parties to share a common understanding of the associated resource (by accepting the core assertions) while making different choices about which ancillary assertions to accept. Resource identity is established by a two-step mapping from a URI to a set of core assertions, and hence through an interpretation to the resource that is denoted by that URI. This paper defines these concepts and proposes some related best practices and a Web architectural rule specifying how URIs for non-information resources can be conveniently declared using existing hash or hashless (303-redirect) URI mechanisms.
[3] [CITE[Cool URIs for the Semantic Web]] ([TIME[2008-12-03 00:30:18 +09:00]] 版) <http://www.w3.org/TR/cooluris/>
[69]
[CITE[Cool URIs for the Semantic Web]] ([TIME[2007-12-14 19:15:28 +09:00]] 版) <http://www.w3.org/TR/2007/WD-cooluris-20071217/>
[1] [CITE[Cool URIs for the Semantic Web]] ([TIME[2008-12-03 00:30:18 +09:00]] 版) <http://www.w3.org/TR/2008/NOTE-cooluris-20081203/>
[11] [CITE@en[URI-patterns-core/URI Patterns.md at master · UKGovLD/URI-patterns-core]]
([TIME[2016-06-30 12:46:21 +09:00]])
<https://github.com/UKGovLD/URI-patterns-core/blob/master/URI%20Patterns.md>
** 日付の入ったURL
[20] [[00年代]]には、 [[URL]] に[[年]]や[[月]]を含めることで
「その[[年]]、その[[月]]にある名前で呼ばれていた概念」
を表すことができ、
[[URL]] の永続性のために有用である、
といった考えが現れました。
[27] [CODE(URI)@en[http:]] [[URL]] の[[パス][URL path]]を
[CODE[/2001/04/concept]] のような形とする[DFN[W3C式日付入りURL]]
が [[W3C]] の [[Webサイト]]で使われました。
いわゆる[[W3C信者]]を中心に、[[W3C]] 外でもごく一部で追従されました。
[26] [CODE(URI)@en[tag:]] [[URL]] も[[ドメイン名]]の所有者変更などまで考慮して、
[[日付]]を [[URL]] 構文に組み込んでいます。
[22] 元から[[ブログ]]や[[ニュース]]のように[[日付]]を [[URL]]
に含めることは一部の用途で行われており、それ自体は不自然なことではありませんでした。
[23] しかし[[名前空間URL]]に[[日付]]を含めて永続性を担保することを目指した結果、
[[著者]]が[[名前空間URL]]の[[日付]]を一々覚えないといけなくなったり
(例えば [[HTML名前空間]]は 1999、[[SVG名前空間]]は 2000、
[[MathML名前空間]]は 1998)、
「下部組織の設立日が入った階層下にある記事出版日の入った記事の URL」
のような複数の日付が入った複雑な URL が出現したりして、
実用性を無視した奇怪な [[URL]] 割当ポリシーには疑問が持たれるようになりました。
;; [30] [[名前空間URL]]などはきっとソフトウェアが自動生成するから人間が書くことはそれほど多くないとでも思っていたのでしょうが、
現実的にはいろいろな人が書く羽目になっていました (いわゆる [[tools save us]] 神話)。意味もわからず誤記したまま[[コピペ]]しているような例も少なくありませんでした。
[32]
[[HTML5]] の父、
[[Ian Hickson]]
は、
意味不明な日付 [[URL]]
を皮肉って、
自身の編集する[[仕様書]]内で
[[XML名前空間]]の[[名前空間URL]]を
[CODE[data:,520e273a-62ad-4528-bb1e-9652bda76d62]]
と [[UUID]] によって定め、
物議を醸しました。
固有性を重視して[[人間]]が覚えきれない[[日付]]を入れるポリシーが正当化されるなら、
固有性が高すぎて[[人間]]がまず覚えられない [[UUID]]
であっても非難されるいわれはないというものです。
[25] 結果[TIME[2006年9月][2006-09]]に[[名前空間URL]]
の [[W3C]] の割当ポリシーが変更されて日付を入れる必要はなくなり [SRC[>>24]]、
[[W3C]] [[Webサイト]]のそれ以外のページについても日付を入れないものが使われるように緩和されていったようです。
[29] 理論的潔癖性を追求し過ぎて実用性を蔑ろにしても破綻するという例なのでしょう。
[REFS[
- [57]
[CITE[www-tag@w3.org from June 2006: by thread]] <http://lists.w3.org/Archives/Public/www-tag/2006Jun/thread.html#msg132>
[[W3C]] の [[URI]] 割り当て方針 (割り当ての年月が入るやつ)
がいけてないという話。[[Ian Hickson]] の
<data:,520e273a-62ad-4528-bb1e-9652bda76d62>
は <http://www.w3.org/1999/xhtml> の [Q[1999]]
のような訳の分からない数字を皮肉ったものらしいww
([[名無しさん]] [WEAK[2006-07-08 04:48:18 +00:00]])
[58]
確かに最近[[名前空間URI]]の年号を覚える or コピペするのがめんどくてうんざりしてるんだよ。。。
([[名無しさん]] [WEAK[2006-07-08 04:49:35 +00:00]])
- [5] [CITE[URIs for W3C Namespaces]] ([TIME[2007-07-20 05:24:56 +09:00]] 版) <http://www.w3.org/2005/07/13-nsuri>
- [24] [CITE@en[Short namespace URIs for W3C TRs available]] ([[Ian B. Jacobs]] 著, [TIME[2006-09-07 11:52:42 +09:00]] 版) <https://lists.w3.org/Archives/Public/www-tag/2006Sep/0039.html>
- [6] [CITE@en[W3C URI Persistence Policy]] ([TIME[2015-08-29 01:19:06 +09:00]] 版) <http://www.w3.org/Consortium/Persistence>
]REFS]
[36] [CITE[最速インターフェース研究会 :: Amazonのカートが仕様変更してるっぽい]],
2005-10-29 17:53,
[TIME[2022-06-13T09:13:33.000Z]] <http://la.ma.la/blog/diary_200510291748.htm>
>
外部と連携するようなサービスで、フォーマットを変更する可能性がある場合には互換性を保ちつつ仕様変更できるようにURLにバージョン番号や日付なんかの識別子を含めるようにするのが良いと思う。AmazonのECSなんかはすでにそうなっているし、円滑にバージョンアップするためにはとても重要なことだと思う。
[37]
[[Web API]] の [[URL]] に基づく [[versioning]] を提唱した早い例かな?
* REST
[8] [[Cool URI]] が良い、という話は [[REST]] 推進者からも出てきます。
しかし [[REST]] な設計と言われるものには [[Cool URI]] とは矛盾しそうなものもあります。
[[REST]] といっても色々あるので、一枚岩では無さそうです。
;; 詳しくは [[REST]] 参照。
* Web アプリケーション
[13] [[悪いWeb API設計]]も参照。
[16] [[OpenURL]] など、特定の [[API]] を規定して色々な[[サーバー]]で実装されることを期待しているものもあります。
[18] [[Webページ]]の [[URL]] は、 [[Webブラウザー]]の[[ブックマーク]]や[[ソーシャルブックマークサービス]]、
[[SNS]] の[[共有]]機能など、当該 [[Webサイト]]外でも色々な場面で使われます。
[[Webページ]]の [[URL]] は、できるだけ揺れのない固有のものとするべきです。
[EG[
[19] 例えば同じ内容の[[Webページ]]の [[URL]] が2種類あると、
[[Webブラウザー]]の[[既読判定]]や、
[[ソーシャルブックマークサービス]]の [[URL]] ごとの[[ブックマーク]]数の計算で、
異なるものと判断され、[[利用者]]の利便性を損ないます。
]EG]
* ネイティブアプリケーション
[17] [[スマートフォンアプリ]]用の [[URL]] の共通仕様として
[[x-callback-url]] があります。
* 名前空間 URL との関係
;; [7] [[名前空間の管理]]も参照。
* 汚いURL
[33]
[DFN[汚いURL]]
は、
[[宗教的]]な問題だけでなく、
実際上の問題も引き起こすことがあります。
[34]
[[セッションID]]を
[[URL]]
に含める方法は、
[[平成時代]]中期頃まで多様されていましたが、
[[URL]]
の漏洩が[[セッション]]の漏洩につながり大変危険といわれていました。
最近はあまり見かけなくなりました。
[SEE[ [[URLのセキュリティー]] ]]
[35]
[[セッションID]]
など一時的な情報が含まれ、
恒久性に乏しい
[[URL]]
は、
他の人に渡して
[[Webページ]]を紹介できないので不便です。
[[パーマリンク]]や[[ソーシャルブックマーク]]が広まった
[[Web 2.0]]
時代に問題が認識されるようになり、
[[SNS]]
時代になって通用しない技法となりました。
* セキュリティーとプライバシー
[9] [[URLのセキュリティー]]の項を参照。
* メモ
[2] [CITE[Hatena::agenda - ウェブサイト運営方針を考える(長文注意)]] ([TIME[2007-08-31 17:39:11 +09:00]] 版) <http://d.hatena.ne.jp/jintrick/20070822>
[46]
[CITE[yohei-y:weblog: 良い URI の設計]] <http://yohei-y.blogspot.com/2005/08/uri.html>
[59]
[CITE[hxxk.jp - 各種 weblog の URI 設計を比較してみる]] <http://hxxk.jp/2005/11/15/1850>
([[名無しさん]] [WEAK[2006-07-08 12:06:10 +00:00]])
[64]
[CITE[Why you should be using disambiguated URLs]] ([CODE[2007-02-10 01:07:29 +09:00]] 版) <http://simonwillison.net/2007/Feb/4/urls/>
([[名無しさん]] [WEAK[2007-02-09 16:15:26 +00:00]])
>Good URLs are important. The best URLs are readable, reliable and hackable.
[65]
[CITE@ja[第20回 “使いやすいURI(URL)”の設計を考える:ITpro]] ([CODE[2007-04-28 12:10:18 +09:00]] 版) <http://itpro.nikkeibp.co.jp/article/COLUMN/20070424/269291/>
([[名無しさん]] [WEAK[2007-04-28 03:12:39 +00:00]])
[49] [CITE[URL Design — Warpspire]]
( ([TIME[2011-01-05 03:41:37 +09:00]] 版))
<http://warpspire.com/posts/url-design/>