-
Notifications
You must be signed in to change notification settings - Fork 4
/
651.txt
136 lines (97 loc) · 5.9 KB
/
651.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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
[9]
[DFN[[CODE(HTTP)[451]]]]
([DFN[Unavailable For Legal Reasons]])
は、[[法的]]な理由によって[[要求]]が拒否されたことを表す[[状態符号]]です。
* 仕様書
[REFS[
- [7] [CITE@en[RFC 7725 - An HTTP Status Code to Report Legal Obstacles]] ([TIME[2016-03-08 22:33:18 +09:00]] 版) <https://tools.ietf.org/html/rfc7725>
]REFS]
* 意味
[10] [CODE(HTTP)[451]] は、
[[資源]](群)に対するアクセスを拒否するよう、
[[サーバー]]運用者が[RUBYB[法的要求]@en[legal demand]]を受け取っており、
よって[[サーバー]]がアクセスを拒否することを表す[[状態符号]]です [SRC[>>7]]。
[8] [CODE(HTTP)[451]] は、
サーバー運用に[RUBYB[[[法令]]]@en[law]]や[RUBYB[[[公共政策]]]@en[public policy]]の問題が影響する状況で、
[[透過性]]を確保するために使うことができます [SRC[>>7]]。
[11] ここでいう[[サーバー]]は、[[起源サーバー]]に限りません [SRC[>>7]]。
[14] [CODE(HTTP)[451]] は、[[要求]]された[[資源]]が存在することも、
存在しないことも[[暗示]]しません [SRC[>>7]]。
[17] なお、当該[[法権力]]がアクセス拒否を明らかにしたくないなどの理由で、
[CODE(HTTP)[451]] を使わないこともあります。[[クライアント]]は法的な理由で拒絶されたとしても、
必ず [CODE(HTTP)[451]] [[応答]]が返されると期待することはできません。
* 構文
[16] [CODE(HTTP)[451]] を使う者は、
自身を識別する [CODE(HTTP)@en[[[Link:]] ...; [[rel=blocked-by]]]]
[[ヘッダー]]を含める[SHOULD[べきです]] [SRC[>>7]]。
[12] [CODE(HTTP)[451]] を使う場合、
[RUBYB[法的要求]@en[legal demand]]の詳細
(要求した者、適用される[RUBYB[[[法令]]]@en[legislation]]や[RUBYB[[[規則]]]@en[regulation]]、
適用される人物や[[資源]]の[RUBYB[種別]@en[class]])
の説明を[[応答本体]]に含める[SHOULD[べきです]]。
;; [13] その具体的な方法は規定されておらず、 [[RFC]] には
[[HTML]] と[[英語]]で記述する例が示されています [SRC[>>7]]。
* 処理
[15] [CODE(HTTP)[451]] [[応答]]は、原則として[[キャッシュ可能]]です [SRC[>>7]]。
* 関連
[18] [[RFC]] は[[資源]]の側に法的問題がある場合に [CODE(HTTP)[451]]
を使うとしており、[[資源]]に問題がなく[[要求]]に問題がある場合に使うとはしていません。
そのような場合には [CODE(HTTP)[400]] が適切かもしれません。
[EG[
[19] 例えば[[政治的に正しくない][政治的に正しい]]発言が含まれる[[投稿]]を[[検閲]]により非表示とする場合には
[CODE(HTTP)[451]] [[応答]]を返すことができますが、新たに[[検閲]]対象となる[[投稿]]を受け付けることを拒絶する場合には、
[CODE(HTTP)[451]] は適切では無さそうです。
]EG]
* 歴史
** RTSP
[1] 451 引数理解不能
[FIG(quote)[
[FIGCAPTION[
[6] [[RFC 2326]] ([[RTSP]]) 11.3.2 451 Parameter Not Understood
]FIGCAPTION]
>The recipient of the request does not support one or more parameters
contained in the request.
要求の受信者が要求中に含まれる1つ以上の[[引数]]に対応していません。
]FIG]
** HTTP (Microsoft)
[FIG(quote)[
[FIGCAPTION[
[4] [CITE@en[List of HTTP status codes - Wikipedia, the free encyclopedia]]
([TIME[2015-12-18 20:29:30 +09:00]] 版)
<https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#451-MS>
]FIGCAPTION]
> 451 Redirect (Microsoft)
> Used in Exchange ActiveSync if there either is a more efficient server to use or the server cannot access the users' mailbox.'''['''68''']'''
> The client is supposed to re-run the HTTP Autodiscovery protocol to find a better suited server.'''['''69''']'''
]FIG]
** HTTP (IETF)
[REFS[
- [2] [CITE@en[draft-tbray-http-legally-restricted-status-00 - A New HTTP Status Code for Legally-restricted Resources]]
([TIME[2012-06-12 19:56:12 +09:00]] 版)
<http://tools.ietf.org/html/draft-tbray-http-legally-restricted-status-00>
]REFS]
[3] [CITE@en[draft-tbray-http-legally-restricted-status-02 - A New HTTP Status Code to Report Legal Obstacles]]
( ([TIME[2013-01-24 04:19:34 +09:00]] 版))
<http://tools.ietf.org/html/draft-tbray-http-legally-restricted-status-02>
[5] [CITE@ja[本の虫: HTTPステータスコード451(政治的な検閲)が正式に承認される]]
([TIME[2015-12-20 13:48:47 +09:00]] 版)
<http://cpplover.blogspot.jp/2015/12/http451.html>
* メモ
[20] [CODE(HTTP)[451]] が必要な場面として[[中華人民共和国]]のような厳しい[[検閲]]を行う[[国家]]で運営される[[サーバー]]が真っ先に思い浮かびますが、
そうした政治的、思想的な統制の厳しくない地域でも、提供するサービスによっては日常的に必要なことがあるかもしれません。
[21] 例えば、 [[UGC]] サービスでは、
[[著作権法]]違反の疑いがあると[[著作権者]]から申し立てを受けた場合、
[[児童ポルノ]]であると[[政府機関]]等から削除要請を受けた場合、
投稿ガイドラインに掲げる禁止行為に該当するとサービス提供者が判断した場合などに、
[CODE(HTTP)[451]] を使うことができます。
[22] [CITE@en[1190136 – Firefox should decide whether reuse connection separately for IPv4 and IPv6]]
( ([TIME[2016-05-08 22:26:16 +09:00]]))
<https://bugzilla.mozilla.org/show_bug.cgi?id=1190136>
[FIG(quote)[
[FIGCAPTION[
[23] [CITE@en[The 451 status code is now supported | GitHub Developer Guide]]
([TIME[2016-07-30 05:30:39 +09:00]])
<https://developer.github.com/changes/2016-03-17-the-451-status-code-is-now-supported/>
]FIGCAPTION]
> The GitHub API will now respond with a 451 status code for resources it has been asked to take down due to a DMCA notice.
]FIG]