浏览器对于常见HTTP状态码的反应

在我们向服务器发送一个HTTP请求时,会经历tcp连接(三次握手),发送HTTP请求,服务器返回HTTP响应,浏览器对响应中的状态码进行分析判断,来确定请求是否成功,是否成功得到我们需要的信息。

那么,对于服务器返回的常见状态码,浏览器会怎样应对呢?

1xx:是预留给协议的
2xx:是表示请求成功的
3xx:是表示重定向的
4xx:是客户端错误的
5xx:是服务器端错误的

常见状态码:

2xx

200:Success。请求成功。

3xx

301:永久重定向。当返回的状态码是301时,浏览器需要重新发送一个HTTP请求,到服务器返回的新地址。

重定向的原因:

        是为了保持并提高该网站在搜索引擎的排名。两个不同的url地址被服务器认为是两个不同的网站,当一个网站因为某些原因变更了他的url,为了保持住他原来的排名,他会在原先的url的服务器做一个设置,当有用户访问该网站时(使用旧的url),服务器会返回一个301和一个新的url地址,这样浏览器收到这个状态码,便会自动继续使用新的url发送HTTP请求。

302:临时重定向。只有在Cache-Control或Expires中进行了指定的情况下,这个响应才是可缓存的。

303:临时重定向。响应可以在另一个url上被找到,并且客户端应以GET的方式访问那个资源,同时,303禁止被缓存;当然,第二个请求(重定向)可能被缓存(如果没有设置禁止缓存)。

304:禁止包含消息体,文档内容(自上次访问以来或根据请求条件)并没有改变。或者:客户端有缓冲的文档并发出了一个条件性的请求。服务器告诉客户端,原来缓冲的文档还可以继续使用。

305:使用代理。

307:临时重定向。只有在Cache-Control或Expires中进行了指定的情况下,这个响应才是可缓存的。PS:部分浏览器不能识别307。

临时重定向和永久重定向的区别:

        临时重定向的旧url以后还会用,只是暂时用别的url代替;永久重定向是旧url不再使用,被新的url代替。

4xx

400:错误请求,语法或参数有误。
401:未授权。
403:禁止,拒绝请求。
404:Not Found。没有找到该页面。

5xx

500:服务器内部错误。
501:不支持当前请求所需要的某个功能。
502:错误网关。
503:服务器不可用(超载或停机维护),只是暂时不可用。
504:网关超时。
505:HTTP版本不受支持。

更多HTTP状态码的详细解释:传送门

本文链接:http://www.cnblogs.com/xsilence/p/6035917.html

posted @ 2016-11-06 18:51  silencetea  阅读(5949)  评论(0编辑  收藏  举报