/
220.txt
519 lines (456 loc) · 17.6 KB
/
220.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
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
[1] [DFN[Web プラットフォーム]] ([DFN[the Web platform]]) は、[[Webブラウザー]]によって提供される、
[[HTML]]、[[CSS]]、[[JavaScript]]、[[DOM]]、[[HTTP]] などの
[[Web標準]]技術によって構築された[[ハイパーテキスト・アプリケーション]]のための[[プラットフォーム]]です。
* 技術
[15] [[Webプラットフォーム]]は数多くの技術により構成されています。
具体的にどれとどれが [[Web]] の技術であると明確に範囲を定めることは難しいですが、
おおよそ次のようなものが含まれると考えられます。
[57] [[文書]]:
[FIG(short list)[
- [[HTML]]
- [[XML]]
- [[CSS]]
- [[SVG]]
- [[MathML]]
- [[JSON]]
- [[Atom]]
- [[RSS]]
- [[GIF]]
- [[PNG]]
- [[WebM]]
- [[WebVTT]]
- [[OpenSearch]]
- [[robots.txt]]
- [[Sitemaps]]
- [[schema.org]]
- [[Source Map]]
- [[ARIA]]
- [[WOFF]]
- [[MHT]]
- [[HTMLメール]]
- [[AMP]]
]FIG]
[65] [[文書]] [[API]]:
[FIG(short list)[
- [[JavaScript]]
- [[Web IDL]]
- [[DOM]]
- [[CSSOM]]
- [[Geolocation API]]
- [[Clipboard API]]
- [[File API]]
- [[Web Storage]]
- [[IndexedDB]]
- [[XMLHttpRequest]]
- [CODE(DOMi)@en[[[Window]]]]
- [[XSLT 1.0]]
- [[navigate]]
- [[event loop]]
]FIG]
[56] [[転送プロトコル]]:
[FIG(short list)[
- [[HTTP]]
- [[HTTPS]]
- [[Web Socket]]
- [[PAC]]
- [[WPAD]]
- [[Fetch]]
- [[MIME Sniffing]]
- [[Encoding Standard]]
- [[AppCache]]
- [CODE(MIME)@en[[[application/x-www-form-urlencoded]]]]
- [CODE(MIME)@en[[[multipart/form-data]]]]
- [CODE(MIME)@en[[[multipart/x-mixed-replace]]]]
- [[OAuth]]
- [[証明書ダウンロード]]
- [[FTP over HTTP]]
- [[SSE]]
- [[captive portal検出]]
- [[bfcache]]
- [[PuSH]]
- [[RTMP]]
- [[HPACK]]
- [[Brotli]]
]FIG]
[58] [[識別子]]:
[FIG(short list)[
- [[URL]]
- [[Selectors]]
- [[Media Queries]]
- [[XPath 1.0]]
- [[起源]]
- [[Public Suffix List]]
- [[Webの日時形式]]
- [[リンク型]]
]FIG]
[60] [[Webブラウザー]] [[API]]:
[FIG(short list)[
- [[PPAPI]]
- [[Native Messaging]]
]FIG]
[59] [[鯖]]側 [[API]]:
[FIG(short list)[
- [[CGI]]
- [[WSGI]]
- [[PSGI]]
- [CODE[[[.htaccess]]]]
]FIG]
[67] 廃れたものの限定的にまだ使われているもの:
[FIG(short list)[
- [[XML]]
- [[XHTML]]
- [[RSS]]
- [[Atom]]
- [[XPath 1.0]]
- [[DOM XPath]]
- [[XSLT]]
]FIG]
[61] [[Web]] 以外で広く用いられているもので、 [[Web]] でも組み込まれているもの:
[FIG(short list)[
- [[Unicode]]
- [[言語タグ]]
- [[PDF]]
- [[JPEG JFIF]]
- [[ICO]]
- [[CUR]]
- [[BMP]]
- [[MP3]]
- [[MP4]]
- [[H.264]]
- [[AAC]]
- [[FTP]]
- [[TLS]]
- [[OCSP]]
- [[TCP/IP]]
- [[DNS]]
- [[ドメイン名]]
- [[Punycode]]
- [[UTS #46]]
- [[SOCKS]]
- [[MIME型]]
- [[TTF]]
- [[OFF]]
- [[gzip]]
- [[deflate]]
- [[ファイル名]]
]FIG]
;; [68] [[クライアント]]の構成技術については[[Webブラウザー]]、
[[サーバー]]の構成技術については[[HTTPサーバー]]も参照。
** 特定製品でのみ実装されている技術
[FIG(short list)[
- [[APNG]]
- [[XUL]]
- [[Firefox拡張]]
- [[Chrome拡張]]
- [[Chromeアプリ]]
- [[Flash]]
- [[OpenService]]
- [[TTML]]
- [[ANI]]
- [[WebP]]
- [[EOT]]
- [[XPCOM]]
- [[XPI]]
- [[zip]]
- [[NaCl]]
- [[asm.js]]
- [[QUIC]]
- [[Web Archive]]
- [[WebAssembly]]
]FIG]
** 失敗した技術
[40] [[Web]] ではほとんど利用されなかったもの:
[FIG(short list)[
- [[WebCGM]]
- [[JPEG2000]]
- [[JPEG XR]]
- [[SMIL]]
- [[XML 1.1]]
- [CODE(XMLa)@en[[[xml:id]]]]
- [[XPointer]]
- [[XHTML 2.0]]
- [[HLink]]
- [[XForms]]
- [[XML Events]]
- [[SVG Tiny 1.2]]
- [[Widgets]]
- [[RDFa]]
- [[Silverlight]]
- [[SGML]]
- [[HTML Layout]]
- [[POWDER]]
- [[SVGフォント]]
- [[DOM LS]]
- [[DOM Validation]]
- [[MathML DOM]]
- [[XDM]]
- [[Web SQL Database]]
- [CODE(MIME)@en[[[application/vnd.pwg-multiplexed]]]]
- [[Web Slice]]
- [[Java Web Start]]
]FIG]
[25] 一世を風靡した後廃れたもの:
[FIG(short list)[
- [[Gopher]]
- [[XBM]]
- [[VRML]]
- [[SSI]]
- [[Java applet]]
- [[PICS]]
- [[P3P]]
- [[LIRS]]
- [[Shockwave Director]]
- [[NPAPI]]
- [[ActiveX コントロール]]
- [[LiveConnect]]
- [[XML DTD]]
- [[HDML]]
- [[WML]]
- [[iアプリ]]
- [[TrackBack]]
- [[weblogUpdates]]
]FIG]
[41] 廃れて現在では使われていないもの:
[FIG(short list)[
- [[MNG]]
- [[XML-RPC]]
- [[E4X]]
- [[JavaScript Style Sheet]]
- [[VML]]
- [[HTML+TIME]]
- [[Web Intents]]
- [[WAIS]]
- [[TTML]]
- [[HTC]]
- [[XBL]]
- [[CDF]]
- [[VBScript]]
- [[ROR]]
- [[Pingback]]
- [[Account Auto-Discovery]]
- [[IME API]]
]FIG]
[42] 廃れて [[Web]] では使われなくなったもの:
[FIG(short list)[
- [[SOAP]] / [[WS-*]]
- [[XML Schema]]
- [[XLink]]
- [CODE(XMLa)@en[[[xml:base]]]]
- [[RELAX NG]]
- [[Dublin Core]]
- [[RDF]] / [[Semantic Web]]
- [[FOAF]]
- [[PFR]]
]FIG]
** まだ仕様化されていないもの
[54] 2004年の [[WHATWG]] 設立以来、新旧の [[Web]] 技術の多くが仕様書の形で文書化されてきており、
現在では[[Webブラウザー]]に実装されている技術の大部分がいずれかの仕様書で記述されています
(その品質と完成度は、まだそれぞれです)。しかし、今なおソースコードや簡単な紹介文書程度にしか記述されていないものもあります。
[FIG(list middle)[
- [45] [[第三者クッキー]]の取り扱い
- [46] [[アニメーションGIF]]
- [[Flash]]
- [47] [[フォーム制御子]]の[[レンダリング]]
- [[利用者]]の操作と[[イベント]]や[[活性化動作]]の関係
- [48] [[HTTP]] の[[エラー処理]]
- [70] [[HTTP]] や [[TLS]] による [[TCP]] の利用方法
- [71] [[HTTP/1]] で[[ネットワークエラー]]とするべき [[TLS]] の条件
- [49] [[FTP]] の [[fetch]] と [[MIME型]]の決定
- [50] [[ローカルファイル]]の [[fetch]] と[[起源]]と [[MIME型]]の決定
- [DEL[[[navigate]] におけるテキストファイル判定方法]]
- [51] [[XML文書]]の[[エラー処理]]
- [52] [DEL[[[XML文書]]の[[素片識別子]]]]
- [53] [[Atom]] と [[RSS]] の[[エラー処理]]
- [[proxy.pac]]
- [[XSLTProcessor]]
- [[XSLT]] [[結果木]]と [[DOM]] の関係
- [DEL[[[port blocking]]]]
- 対応するべき[[画像形式]]
- 対応するべき[[動画形式]]・[[音声形式]]
- システムに入っているべき[[フォント]]
- [[名前解決]]
- [[DNSキャッシュ]]の扱い
- [[IDN]] のレンダリング方法
- [CODE(URI)@en[[[view-source:]]]] [[URL]]
- [CODE(MIME)@en[[[multipart/x-mixed-replace]]]] [[MJPEG]]
]FIG]
** 技術の利用方法や組み合わせ
[27]
[FIG(short list)[
- [[3層アーキテクチャ]]
- [[マイクロサービス]]
- [[MVC]]
- [[SPA]]
- [[REST]]
- [[Web Hooks]]
[HISTORY[
- [[DHTML]]
- [[Ajax]]
]HISTORY]
]FIG]
* 技術と利用者との関わり
[26] [[Web platform]] の技術は、[[Webブラウザー]]の[[利用者インターフェイス]]を介して[[利用者]]に提示されます。
;; 個別の要素については、[[Webブラウザー]]を参照。
* 仕様書
[22] [[Webプラットフォーム]]はたくさんの技術で構成されているので、
たくさんの[[仕様書]]でその部分部分が規定されています。
;; 各技術の項を参照。
[23] [[仕様書]]の探し方は、[[Web技術の仕様書の探し方]]を参照してください。
* 団体
[16] [[Webプラットフォーム]]の技術を扱う[[標準化団体]]は色々あります。
[[Web]] を参照してください。
* イントラネットや walled garden と Web プラットフォーム
[17] [[Web]] の普及により、 [[Web]] 技術が [[Web]] 以外でも使われることが多くなりました。
[FIG(short list)[
- [[HTML Layout Control]]
- [[HTA]]
- [[Swing]]
- [[ウィジェット]]
- [[ブラウザー拡張]]
- [[Chromeアプリ]]
- [[Adobe AIR]]
- [[Cordova]]
- [[Titanium]]
- [[Windows ストア アプリ]]
]FIG]
@@
[18] 中途半端に標準的な [[Web]] 技術との互換性を持たせているために、
[[開発者]]に優しいと謳いながら一方で開発者を苦しめていることもあります。
独自の改変のため、 [[Web]] の進歩についていけずに破綻することもよくあります。
;; [[walled garden]] も参照。
@@
[19] [[スマートフォンアプリ]]など[[ネイティブアプリ]]の機能の一部を
[[Webサーバー]]の提供する [[Web API]] を利用する形で実装したり、
[[アプリ内ブラウザー]]で[[レンダリング]]したりすることがあります。
@@
[20] [[Webプラットフォーム]]という語の対象範囲はあまり明確ではありませんが、
こうした閉鎖的環境に [[Web]] 技術を応用していて [[Web]]
本体の発展と同期しないことを敢えて選択しているものは範囲外との認識が一般的だと考えられます。
;; [21] いわゆる[[イントラネット]]の [[Web]] 系アプリケーションの位置付けは微妙です。
例えば「[[IE6]] 専用」のような特定環境を要求した企業内システムは、
他の [[Webブラウザー]]の存在などの [[Web]] の[[エコシステム]]を無視したもので[[相互運用性]]がそもそも成立しないため、
[[HTML5]] 以降の新技術開発における[[Web互換性]]の判断では無視されてきました。
しかしだからといって一般に企業内のみの閉鎖的なシステムの互換性がすべて無視されているかというと、そうでもありません。
公開サイトであろうがアクセス制限があろうが、特定の [[Webブラウザー]]のみに限定されていなければ、
[[Webプラットフォーム]]上の[[アプリケーション]]であると主張することはできそうです。
([[インターネット]]と接続しない独自ネットワーク上の[[アプリケーション]]でもそのように言えるのかどうかはよくわかりません。
少なくても[[Web互換性]]の議論の対象には (統計的に) 入らなそうですが...)
* 関連
[6] 「[[Web 5.0]]」は、 [[Web platform]] を規定する [[HTML5]] 世代の仕様書群の総称として使われることがあります。
[7] Web プラットフォームと同じ意味で「[DFN[[[Open Web Platform]]]]」という語が使われることもあります。
[8] 最近は [[W3C]] が [[Open Web Platform]] の意味で [[Web Platform]] という語を使うことがあって意味が揺らぎつつあります。
* 歴史
[2] 従来、[[ソフトウェア]]としての「[[Webブラウザー]]」、技術の総称としての「[[DHTML]]」や
「[[Ajax]]」、用途としての「[[Webサービス]]」、「[[Webアプリケーション]]」といった言葉はありましたが、
[[プラットフォーム]]としての [[Web]] を指す用語はありませんでした。 (今も普及したものはありません。)
[3] [[Web platform]] はこの [[Web]] の環境を指す語として (2008年くらいから?) [[Ian Hickson]] や [[WHATWG]]
関係者がよく使っています。
[5] [TIME[2009年10月][2009-10]]に再登場した [[Web Applications 1.0]] では、 Abstract で
[FIG(quote)[
>
This specification defines a big part of the Web platform, in lots of detail.
]FIG]
... とその位置付けが説明されています。 [[HTML]] の[[仕様書]]における
「Web platform」の初出はこれだと思われます。加えて、その後の改訂で [[HTML Standard]]
の各章でちらほら使われるようになりました。
;; [11] [[バズワード]]としての [[HTML5]] は、本項の [[Webプラットフォーム]]と同義かもしれません。
@@ 古い
[FIG(list)[
- [[Web Applications 1.0]]
-- '''5''' <http://www.whatwg.org/specs/web-apps/current-work/complete.html>
-- '''5''' [[XBL 2.0]] <http://dev.w3.org/2006/xbl2/Overview.html>
-- [[Web Sockets]] protocol '''5''' <http://tools.ietf.org/html/draft-hixie-thewebsocketprotocol-76>
- [[HTTP]]
-- [[HTTP/1.0]] <http://tools.ietf.org/html/rfc1945>
-- [[HTTP/1.1]] <http://tools.ietf.org/html/rfc2616>
-- auth <http://tools.ietf.org/html/rfc2617>
-- httpbis <http://greenbytes.net/tech/webdav/#wg-httpbis>
-- parsing '''5''' '''未''' <http://stuff.gsnedders.com/http-parsing.html>
-- [[Cookie]] '''5''' <http://github.com/abarth/http-state/blob/master/drafts/cookie.xml>
-- [[Web Linking]] <http://tools.ietf.org/html/draft-nottingham-http-link-header>
-- [CODE(HTTP)@en[[[Origin]]]] '''5''' <http://tools.ietf.org/html/draft-abarth-origin>
-- Sniffing '''5''' <http://tools.ietf.org/html/draft-abarth-mime-sniff>
- [[URL]]
-- [[URI]] <http://tools.ietf.org/html/rfc3986>
-- [[IRI]] <http://tools.ietf.org/html/rfc3987>
-- '''5''' <http://html5.org/tools/web-apps-tracker?from=3244&to=3245>
-- '''5''' <http://github.com/abarth/url-spec/blob/master/drafts/url.txt>
-- [CODE(URI)@en[[[mailto:]]]] <http://tools.ietf.org/html/rfc2368>
-- [CODE(URI)@en[[[data:]]]] <http://tools.ietf.org/html/rfc2397>
- [[JavaScript]] / [[DOM]]
-- [[ES5]] <http://sideshowbarker.github.com/es5-spec/>
-- '''5''' '''未''' <http://wiki.whatwg.org/wiki/Web_ECMAScript>
-- [CODE(MIME)@en[[[text/javascript]]]] <http://tools.ietf.org/html/rfc4329>
-- Traversal, Range <http://www.w3.org/TR/DOM-Level-2-Traversal-Range/>
-- [[DOM事象]] <http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html>
-- [[DOM XPath]] <http://www.w3.org/TR/DOM-Level-3-XPath/>
-- [[File API]] <http://dev.w3.org/2006/webapi/FileAPI/>
-- [[WebGL]] <https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/WebGL-spec.html>
-- [[WebIDL]] '''5''' <http://dev.w3.org/2006/webapi/WebIDL/>
-- Core '''5''' <http://dvcs.w3.org/hg/domcore/raw-file/default/Overview.html>
-- [[XHR]] '''5''' <http://dev.w3.org/2006/webapi/XMLHttpRequest-2/>
-- [[CORS]] '''5''' <http://dev.w3.org/2006/waf/access-control/>
-- [[選択子API]] '''5''' <http://dev.w3.org/2006/webapi/selectors-api2/>
-- [[Geolocation API]] '''5''' <http://dev.w3.org/geo/api/spec-source.html>
-- Range '''5''' '''未''' <http://bitbucket.org/ms2ger/dom-range/src/default/dom-range>
-- [CODE(DOMi)@en[[[DOMParser]]]] '''5''' '''未''' <http://bitbucket.org/ms2ger/domparser/src/default/domparser>
- [[CSS]]
-- <http://www.w3.org/TR/CSS21/>
-- <http://dev.w3.org/csswg/>
-- [CODE(MIME)@en[[[text/css]]]] <http://tools.ietf.org/html/rfc2318>
-- [[選択子]] <http://dev.w3.org/csswg/selectors3/>
-- [[媒体照会]] <http://dev.w3.org/csswg/css3-mediaqueries/>
-- [[CSSOM]] '''5''' <http://dev.w3.org/csswg/cssom/>
-- [[CSSOM View]] '''5''' <http://dev.w3.org/csswg/cssom-view/>
- [[XML]]
-- <http://www.w3.org/TR/xml>
-- [[XML名前空間]] <http://www.w3.org/TR/xml-names>
-- [CODE(XMLa)@en[[[xml:base]]]] <http://www.w3.org/TR/xmlbase/>
-- [[文字参照]] <http://www.w3.org/TR/xml-entity-names/>
-- [[XML MIME型]] <http://tools.ietf.org/html/rfc3023>
-- [[XPath 1.0]] <http://www.w3.org/TR/xpath>
-- [[XSLT 1.0]] <http://www.w3.org/TR/xslt>
-- '''5''' <http://xml5.googlecode.com/svn/trunk/specification/Overview.html>
- [[SVG]]
-- <http://www.w3.org/TR/SVG/>
- [[MathML]]
-- <http://www.w3.org/TR/MathML3/>
-- [[MathML for CSS]] <http://www.w3.org/TR/mathml-for-css/>
- [[Atom]]
-- <http://tools.ietf.org/html/rfc4287>
- [[JSON]]
-- <http://tools.ietf.org/html/rfc4627>
- [[媒体]]
-- [[UNIVCHARDET]] <http://www.mozilla.org/projects/intl/UniversalCharsetDetection.html>
-- '''5''' '''未''' <http://wiki.whatwg.org/wiki/Web_Encodings>
-- <https://developer.mozilla.org/en/Gecko_Plugin_API_Reference>
-- [[PNG]] <http://www.w3.org/TR/PNG/>
-- [[GIF]]
-- [[JPEG]] / [[JFIF]]
-- [CODE(MIME)@en[[[image/vnd.microsoft.icon]]]]
-- [[WebM]]
]FIG]
[4]
[CITE[IRC logs: freenode / #whatwg / 20090827]] ([TIME[2009-10-16 22:44:30 +09:00]] 版) <http://krijnhoetmer.nl/irc-logs/whatwg/20090827>
[9] [CITE[Relevant spec links · mozilla/servo Wiki]]
( ([TIME[2014-02-27 13:22:01 +09:00]] 版))
<https://github.com/mozilla/servo/wiki/Relevant-spec-links>
[10] [[W3C]] は [[Web]] 関連技術の文書を集めたサイトを [[WebPlatform]]
と呼んでいます。ただし現状では [[Web platform]] のごく一部しかカバーできていません。
[12] [CITE[W3C WS Package PAS Explanatory Report]] ([[Daniel Dardailler]] 著, [TIME[2011-09-20 18:12:05 +09:00]] 版) <http://www.w3.org/2010/08/ws-pas.html>
[13] >>12 は「other foundational Web and Internet technologies (XML, http, URI)」
のことを「Web Platform」と呼んでいます。図中には更に [[SMTP]] や [[TCP]] も含まれています。
[FIG(quote)[
[FIGCAPTION[
[14] [CITE[IRC logs: freenode / #whatwg / 20150909]]
([TIME[2015-09-10 11:21:24 +09:00]] 版)
<http://krijnhoetmer.nl/irc-logs/whatwg/20150909>
]FIGCAPTION]
>
> # '''['''15:43''']''' <MikeSmith> so I am going to experiment with using the term "the Web runtime" in conversations instead of "the Web platform"
> # '''['''15:44''']''' <MikeSmith> the reason being that I am increasingly running into people who are using "the Web platform" to mean either just "the Web" or else basically whatever they want it to mean such that there pet technology is part of it
> # '''['''15:45''']''' <MikeSmith> e.g., claims that EPUB is part of the Web platform
> # '''['''15:45''']''' <MikeSmith> or that Linked Data is part of the Web platform
> # '''['''15:45''']''' <MikeSmith> etc.
]FIG]
[24] [CITE@en[Web updates]] ([TIME[2016-07-11 16:38:59 +09:00]]) <https://antenna.suikawiki.org/web/>