HTTP 知识量:10 - 42 - 186
301 Moved Permanently(永久性重定向) 表示请求的资源已被分配了新的URI,以后应使用资源现在所指的URI。例如:如果已经把资源对应的URI保存为书签,这时应该按Location首部字段提示的URI重新保存。
当给出的请求URI指定的资源路径最后忘记添加斜杠“/”,就会产生301状态码:
http://pnotes.cn/box
302 Found(临时性重定向) 表示请求的资源已被分配了新的URI,希望用户本次能使用新的URI访问。
302状态码与301状态码相似,但302状态码代表的资源不是被永久移动,只是临时性质的。也就是说,已经移动的资源对应的URI将来还有可能发生改变。
303 See Other 表示由于请求对应的资源存在着另一个URI,应使用GET方法定向获取请求的资源。
303状态码和302状态码有着相同的功能,在303状态码明确表示客户端应当采用GET方法获取资源。
当使用POST方法访问CGI程序,其执行后的处理结果是希望客户端能以GET方法重定向到另一个URI上去,因此要返回303状态码。虽然302状态码也可以实现相同的功能,但这里使用303状态码是最合适的。
当301、302、303状态码返回时,几乎所有的浏览器都会把POST改成GET,并删除请求报文内的主体,之后请求会自动再次发送。
304 Not Modified 表示客户端发送附带条件的请求时,服务器端允许请求访问资源,但发生了未满足请求条件的情况,因此返回304。
304状态码返回时不包含任何响应的主体部分。
304虽然被划分在3XX类别中,但是和重定向没有关系。
307 Temporary Redirect 表示临时重定向,307状态码与302状态码有着相同的含义。
尽管302标准禁止请求方法由POST变成GET,但实际使用时大家并不遵守。307会遵照浏览器标准,不会从POST变成GET,但是对于处理响应时的行为,每种浏览器有可能出现不同的情况。
Copyright © 2017-Now pnotes.cn. All Rights Reserved.
编程学习笔记 保留所有权利
MARK:3.0.0.20240214.P35
From 2017.2.6