/
399.txt
38 lines (26 loc) · 1.97 KB
/
399.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
[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>