/
231.txt
60 lines (43 loc) · 3.14 KB
/
231.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
[14] [DFN[[CODE(HTTP)[[[308]]]]]] ([DFN[[[Permanent Redirect]]]])
は、永続的な[[リダイレクト]]を表す[[状態符号]]です。
[[リダイレクト]]の前後で同じ[[要求メソッド]]を使わなければならないことも表しています。
;; [15] [CODE(HTTP)@en[[[POST]]]] を[[リダイレクト]]された時
[CODE(HTTP)@en[[[GET]]]] にしても良い [CODE(HTTP)[[[301]]]] とは異なります。
* 仕様書
[REFS[
- [5] [CITE@en[RFC 7238 - The Hypertext Transfer Protocol Status Code 308 (Permanent Redirect)]] ([TIME[2014-06-07 01:57:48 +09:00]] 版) <https://tools.ietf.org/html/rfc7238>
]REFS]
* 意味
[7] [CODE(HTTP)[[[308]]]] は、[[対象資源]]に新しい永続的 [[URL]]
が割り当てられ、以後この[[資源]]を参照する時に指定された [[URL]]
のいずれかを使う[RUBYB[べき]@en[ought to]]であることを示します [SRC[>>5]]。
* 構文
[9] [[鯖]]は、新しい永続的 [[URL]] を含んだ [CODE(HTTP)@en[[[Location:]]]]
[[ヘッダー]]を[[生成]]する[['''べきです''']] [SRC[>>5]]。
;; [16] なぜか必須にはなっていません。
[11] [[応答]]の [[payload]] は普通新しい [[URL]] (群)
への[[ハイパーリンク]]つきの短い[[ハイパーテキスト]]のメモを含みます [SRC[>>5]]。
* 処理モデル
[10] [[利用者エージェント]]は [CODE(HTTP)@en[[[Location:]]]]
[[ヘッダー]]の値を自動的に[[リダイレクト]]に使って構いません [SRC[>>5]]。
[13] [CODE(HTTP)[[[301]]]] [[応答]]とは違って、[[要求メソッド]]は[[リダイレクト]]前後で同じでなければいけません。
[8] [[リンク]]を編集する能力のある[[クライアント]]は、
できるだけ[[実効要求URL]]への[[リンク]]を指定された新しい参照のうちの1つ以上に自動的に修正するべきです
[SRC[>>5]]。
[12] [CODE(HTTP)[[[308]]]] [[応答]]は、[[キャッシュ可能]]です [SRC[>>5]]。
* 歴史
[6] [CODE(HTTP)[[[308]]]] は [[RFC 7238]] で定義されました。
[REFS[
- [1] [CITE@en[draft-reschke-http-status-308-01 - The Hypertext Transfer Protocol (HTTP) Status Code 308 (Permanent Redirect)]]
( ([TIME[2012-01-05 09:15:23 +09:00]] 版))
<http://tools.ietf.org/html/draft-reschke-http-status-308-01>
- [2] [CITE[ResumableHttpRequestsProposal - gears - A proposal for supporting resumable POST/PUT HTTP requests in HTTP/1.0. - Improving Your Web Browser - Google Project Hosting]]
( ([TIME[2012-02-19 13:11:48 +09:00]] 版))
<http://code.google.com/p/gears/wiki/ResumableHttpRequestsProposal>
- [3] [CITE@en[draft-reschke-http-status-308-07 - The Hypertext Transfer Protocol (HTTP) Status Code 308 (Permanent Redirect)]]
( ([TIME[2012-03-27 02:32:30 +09:00]] 版))
<http://tools.ietf.org/html/draft-reschke-http-status-308-07>
- [4] [CITE@en[Pushing the Web Forward with HTTP/308 - EricLaw's IEInternals - Site Home - MSDN Blogs]]
( ([TIME[2012-04-23 08:17:40 +09:00]] 版))
<http://blogs.msdn.com/b/ieinternals/archive/2012/03/29/http-308-permanent-redirect-pushing-the-web-forward-by-breaking-unwanted-forward-compatibility.aspx>
]REFS]