ALPN
RFC 7301 Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension (ALPN)
RFC 7639 The ALPN HTTP Header Field
RFC 8833 Application-Layer Protocol Negotiation (ALPN) for WebRTC
RFC 9765 RADIUS/1.1: Leveraging Application-Layer Protocol Negotiation (ALPN) to Remove MD5
TLSでアプリケーション層のネゴシエーションなど
Port 443 を共有する場合などに利用する
SPDY, HTTP/2以降?
クライアントがプロトコル候補を並べ サーバが選択
NPN https://datatracker.ietf.org/doc/html/draft-agl-tls-nextprotoneg-04 からの置き換え
サーバがプロトコルを提案、クライアント側が選択だった
UTF-8を使用する
over TCPのものはTLSをOffにする?
TLS Application-Layer Protocol Negotiation (ALPN) Protocol IDs
https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml
Connect Header に書く場合は%エスケープを利用する。プロトコル小文字、%HEXは大文字で分けているっぽい
HTTP/0.9 "http/0.9" RFC 1945
HTTP/1.0 "http/1.0" RFC 1945
HTTP/1.1 "http/1.1" RFC 9112
SPDY/1 "spdy/1" http://dev.chromium.org/spdy/spdy-protocol/spdy-protocol-draft1
SPDY/2 "spdy/2" http://dev.chromium.org/spdy/spdy-protocol/spdy-protocol-draft2
SPDY/3 "spdy/3" http://dev.chromium.org/spdy/spdy-protocol/spdy-protocol-draft3
HTTP/2 over TLS "h2" RFC 9113
HTTP/2 over TCP "h2c" RFC 9113
FTP "ftp" RFC 959, 4217
IMAP "imap" RFC 2595
POP3 "pop3" RFC 2595
HTTP/3 "h3" RFC 9114
DNS over TLS "dot" RFC 7858
WebRTC "webrtc" RFC 8833
似たもの
HTTP RFC 9110 Section 16.7 Upgrade Token Registry
https://www.rfc-editor.org/rfc/rfc9110.html#name-upgrade-token-registry
https://www.iana.org/assignments/http-upgrade-tokens/http-upgrade-tokens.xhtml