-
Notifications
You must be signed in to change notification settings - Fork 4
/
460.txt
74 lines (55 loc) · 3.23 KB
/
460.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
[7] [DFN[[[ALPN]]]] は、[[アプリケーション層プロトコル]]の[[折衝]]を行う
[[TLS拡張]]です。 [[TLS]] 上で利用する[[アプリケーション層プロトコル]]を選択するために使うことができます。
[9] [[鯖]]が同じ [[TCP]] [[ポート]]上で [[TLS]] を介して複数の[[アプリケーション層プロトコル]]の通信を受け付けている場合に、
そのいずれを用いるかを決定するために使います。
* 仕様書
[REFS[
- [4] '''[CITE@en[RFC 7301 - Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension]] ( ([TIME[2014-07-12 02:05:37 +09:00]] 版)) <http://tools.ietf.org/html/rfc7301>'''
- [5] [CITE[Transport Layer Security (TLS) Extensions]] ([TIME[2014-12-12 17:25:31 +09:00]] 版) <http://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids>
]REFS]
* プロトコル名
[10] [[プロトコル名]]としては、通常は名前を [[UTF-8]] で[[符号化]]した[[バイト列]]を使うこととなっています。
[11] [[IANA登録簿]] (>>5) があります。
[12] 次の値が使われています。
[FIG(short list)[
- [CODE@en[[[http/1.1]]]]
- [CODE@en[[[spdy/1]]]]
- [CODE@en[[[spdy/2]]]]
- [CODE@en[[[spdy/3]]]]
- [CODE@en[[[spdy/3.1]]]]
- [CODE@en[[[stun.turn]]]]
- [CODE@en[[[stun.nat-discovery]]]]
- [CODE@en[[[h2]]]]
- [CODE@en[[[h2c]]]]
- [CODE@en[[[h2-11]]]]
- [CODE@en[[[h2-12]]]]
- [CODE@en[[[h2-13]]]]
- [CODE@en[[[h2-14]]]]
- [CODE@en[[[h2-15]]]]
]FIG]
* 歴史
** NPN
[1] [CITE@en[draft-agl-tls-nextprotoneg-00 - Transport Layer Security (TLS) Next Protocol Negotiation Extension]]
([TIME[2010-07-24 08:19:18 +09:00]] 版)
<http://tools.ietf.org/html/draft-agl-tls-nextprotoneg>
[2] [CITE@en[HTML5 Revision Tracker]]
([TIME[2010-08-13 22:20:59 +09:00]] 版)
<http://html5.org/tools/web-apps-tracker?from=5287&to=5288>
[3] [CITE@en[HTML5 Revision Tracker]]
([TIME[2010-08-14 10:48:51 +09:00]] 版)
<http://html5.org/tools/web-apps-tracker?from=5288&to=5289>
[6] >>2, >>3 この [[Web Socket]] の [[NPN]] 対応、[[IETF]] に移管された後いつの間にか消えてなくなったようですね。。。
[[Web Socket]] は [[HTTP]] から移行するモードで独立したプロトコルではない、
というのが [[IETF]] の主張だからなのでしょうか。
** ALPN
[8] [[ALPN]] は [[HTTP/2]] のために [[IETF]] [[HTTPbis WG]] からの要求で開発されました [SRC[>>4]]。
[13] [CITE[SPDY - OpenSSL の ALPN/NPN API の使い方 - Qiita]]
( ([TIME[2014-12-13 20:30:42 +09:00]] 版))
<http://qiita.com/tatsuhiro-t/items/dea3fb279ad265681049>
[14] [CITE@en[1047698 – ALPN advertisment order may be wrong]] ([TIME[2014-12-13 20:32:49 +09:00]] 版) <https://bugzilla.mozilla.org/show_bug.cgi?id=1047698>
[15] [CITE@en[Chromium Blog: Hello HTTP/2, Goodbye SPDY]]
( ([TIME[2015-02-10 03:03:41 +09:00]] 版))
<http://blog.chromium.org/2015/02/hello-http2-goodbye-spdy-http-is_9.html>
[16] [CITE@en[RFC 7443 - Application-Layer Protocol Negotiation (ALPN) Labels for Session Traversal Utilities for NAT (STUN) Usages]]
([TIME[2015-01-23 14:56:59 +09:00]] 版)
<https://tools.ietf.org/html/rfc7443>