http状态码

2017-08-13  本文已影响0人  取一个帅气的名字呀

最近在找工作,遇到一些面试的问题,觉得有必要记录一下笔记,平时坐车的时候可以翻阅巩固一下!

http状态码是两次面试都有遇到过,答得也不是很全面,所以淘了一下,也跟大家分享一下。

什么是状态码

当发送一个请求时,服务器响应会包含一个状态码,这个状态码代表请求的结果,由3位数字组成。

状态码有哪些

状态码总共被分为5大类

1开头 100-101 信息提示(表示临时响应并需要请求者继续执行操作的状态代码)
2开头 200-206 成功(表示成功处理了请求的状态代码)
3开头 300-305 重定向 
4开头 400-415 客户端错误(这些状态代码表示客户端请求可能出错,服务器无法处理)
5开头 500-505 服务器错误(服务器在尝试处理请求时发生内部错误。 这些错误可能是服务器本身要做响应时出错,而不是请求出错)

常见状态码

200 OK 服务器成功处理了请求

201 Created 请求成功且服务器已创建了新的资源(上传文件的时候会返回这个状态)

301 Moved Permanently/302 Found(重定向)请求的URL已移走。Response中应该包含一个Location URL, 说明资源现在所处的位置,301是永久重定向,如果不清除浏览器缓存,之后如果不重定向一样会重定向,302是暂时重定向,以后不取消重定向,浏览器就不会自动跳转。

304 Not Modified(未修改)客户的缓存资源是最新的, 要客户端使用缓存,上段说到3开头是重定向,应该是告诉浏览器重定向到本地缓存,你可以试一下,改变下服务器的响应输入并且返回304,然后在浏览器查看一下response的内容,其实是旧的内容。我了解的判断是否是最新的一般是通过请求头上的If-None-Match跟服务器的ETag是否匹配,或者是通过请求头If-Modified-Since跟服务器Last-Modified进行匹配,不一致就是服务器有更新,需要返回200,一致就返回304。

401 Unauthorized 未授权 (请求要求身份验证,对于需要登录的网页,服务器可能返回此响应) 

403 Forbiden 拒绝(服务器拒绝请求)

404 Not Found 未找到资源(客户端输入请求url是不存在)

500 Internal Server Error 服务器内部错误(服务器遇到错误,无法完成请求,可能是程序发生错误,执行到一半发生异常没有处理)

501 Not Implemented 尚未实施(如果请求的方法错误时,可能会出现状态)

502 Bad Gateway 错误网关 (服务器作为网关或代理,从上游服务器收到无效响应,例如nginx代理到php,php没有开启的时候,会出现502错误)

503 Service Unavailable 服务不可用服务器目前无法使用(由于超载并发数超出范围、停机维护,一般只是暂时的)

504 Gateway Timeout 网关超时 (服务器作为网关或代理,但是没有及时从上游服务器收到请求,参考502)

最后

还有一些状态码现在没有遇到,1开头的看了资料也不太理解怎么产生的,如果你看到这篇文章,可以一起交流。也希望整理到这部分http状态码对你以后的工作有所帮助,一起学习交流。

上一篇 下一篇

猜你喜欢

热点阅读