HTTP 协议状态码-3XX
1. 300 Multiple Choices
有多个重定向的值,需要客户端自己选择, Location
的值是服务端建议的值。
HTTP/1.1 300 Multiple Choices
Access-Control-Allow-Headers: Content-Type,User-Agent
Access-Control-Allow-Origin: *
Link: </foo> rel="alternate"
Link: </bar> rel="alternate"
Content-Type: text/html
Location: /foo
2. 301 Moved Permanently
请求的资源已经永久性的转移了,新资源 URI 在头部 Location
指明,这时候如果浏览器有书签,或者请求地址的缓存,最好都能替换成 Location
对应的值。
HTTP/1.1 301 Moved Permanently
Location: https://www.imocc.com/http/301-moved-permanently
3. 302 Found
跟 301
相似,只是 302
代表的资源转移地址是临时的。
4. 303 See Other
如果是以 POST 访问某个请求,返回 303
,此时应该换成 GET 方法去请求新地址。
5. 304 Not Modified
一般是在有缓存的情况下,客户端发起资源获取请求,服务端判断之前的资源未修改过,可以继续使用缓存的资源。经常客户端请求的头部会带上 if-none-match
If-Modified-Since
If-Match
等带有条件的头部字段。
客户端
GET /foo HTTP/1.1
Accept: text/html
if-none-match: "some-string"
服务端
HTTP/1.1 304 Not Modified
ETag: "some-string"
6. 305 Use Proxy
被请求的资源必须通过指定的代理才能被访问。Location 域中将给出指定的代理所在的 URI 信息,接收者需要重复发送一个单独的请求,通过这个代理才能访问相应资源。只有原始服务器才能建立305响应。
HTTP/1.1 305 Use Proxy
Location: https://proxy.example.org:8080/
7. 306 Switch Proxy
HTTP/1.1 306 Switch Proxy
Set-Proxy: SET; proxyURI="https://proxy.imooc.com:8080/" scope="http://", seconds=100