* 仕様書

[REFS[
- [1] '''[CITE@en[RFC 7540 - Hypertext Transfer Protocol Version 2 (HTTP/2)]] ([TIME[2015-05-15 10:14:54 +09:00]] 版) <https://tools.ietf.org/html/rfc7540#section-8.1.2.3>'''
- [8] [CITE@en[RFC 7540 - Hypertext Transfer Protocol Version 2 (HTTP/2)]] ([TIME[2015-05-15 10:14:54 +09:00]] 版) <https://tools.ietf.org/html/rfc7540#section-8.3>
]REFS]

* 意味

[2] [CODE(HTTP)@en[[[:scheme]]]] [[疑似ヘッダー]]は、
[[対象URL]]の [[scheme]] 部分を表します [SRC[>>1]]。

* 構文

[4] [[URL scheme]] です。 [CODE[[[:]]]] は含みません。

[5] 大文字と小文字について規定はないようです。

;; [3] [CODE(URI)@en[[[:scheme]]]] は、 [CODE(URI)@en[[[http]]]] や
[CODE(URI)@en[[[https]]]] 以外でも構いません。[[プロキシ]]や[[関門]]が非
[[HTTP]] の[[要求]]を変換する場合があります。 [SRC[>>1]]

* 文脈

[6] [[HTTP/2]] [[要求]]にはちょうど1つだけ [CODE(HTTP)@en[[[:scheme]]]]
[[疑似ヘッダー]]がなければ[['''なりません''']] [SRC[>>1]]。

[9] [CODE(HTTP)@en[[[CONNECT]]]] [[要求]]に指定しては[['''なりません''']] [SRC[>>8]]。

[10] [[応答]]や[[トレーラー部]]に指定しては[['''なりません''']]。

* 処理

[7] 通常の[[要求]]は [CODE(HTTP)@en[[[:scheme]]]] [[疑似ヘッダー]]がなければ、
[[奇形]]です [SRC[>>1]]。

[11] [CODE(HTTP)@en[[[CONNECT]]]] [[要求]]で [CODE(HTTP)@en[[[:scheme]]]]
[[疑似ヘッダー]]があれば[[奇形]]です [SRC[>>8]]。

[12] [[応答]]や[[トレーラー部]]にあると[[奇形]]です。

[13] [CODE[[[:scheme]]]] が複数あると [[Chrome]] は[[奇形]]としますが。
[[Firefox]] は[[奇形]]とはしないようです。 [TIME[2015-10-12T15:17:20.100Z]]

* 関連

[15] [CODE[psgi.url_scheme]],
[CODE[wsgi.url_scheme]] も参照。

* メモ

[14] [[Opportunistic Security for HTTP/2]] を使う場合、
[[HTTPS]] ([[HTTP]] over [[TLS]]) でも [CODE(URI)@en[http][http:]]
が値に指定されることになります。