[84] [DFN[[CODE[[[REFUSED_STREAM]]]]]] ([CODE[[[0x7]]]]) は、
いかなる[[応用]]処理も実施する前に[[ストリーム]]を拒絶することを示します [SRC[>>82]]。

* 仕様書

[REFS[
- [82] '''[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-7>'''
- [86] [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.4>
- [34] [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.2>
]REFS]

* 意味

[87] [[誤り符号]] [CODE[[[REFUSED_STREAM]]]] の [CODE[[[RST_STREAM]]]]
[[フレーム]]を送信することで、[[サーバー]]は[[クライアント]]にその[[ストリーム]]の[[要求]]が処理されていないことを保証できます。
[[サーバー]]は、処理されてないことを保証できなければ、これを使ってはなりません。
既に[[アプリケーション層]]にわたっているなら、使っては[['''なりません''']]。 [SRC[>>86]]

* 文脈

[1] [CODE[[[PUSH_PROMISE]]]] を受信した後、その受け取りを拒否したい時に使うことができます
[SRC[>>34]]。

[2] [[Firefox]] も [[Chrome]] も、異なる[[起源]]の[[約束要求]]を受信した時、
[[ストリームエラー]] [CODE[[[REFUSED_STREAM]]]] とするようです。
[TIME[2015-10-12T10:01:05.800Z]]

* 処理

[88] [[クライアント]]は、それを受信したら、[[冪等]]か否かに関わらず[[要求]]を自動的に再試行できます [SRC[>>86]]。

;; [[HTTP接続]]も参照。

* 歴史

[143] [CITE@en[1049814 – h2: REFUSED_STREAMs should be retried on the same connection]]
([TIME[2015-10-12 00:13:42 +09:00]] 版)
<https://bugzilla.mozilla.org/show_bug.cgi?id=1049814>