http状态码

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

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状态码对你以后的工作有所帮助,一起学习交流。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • HTTP状态码的分类 HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的...
    薄凉_简书阅读 584评论 0 1
  • HTTP状态码(HTTP Status Code)表示http服务器对与请求HTTP响应状态的3位数字代码。它由 ...
    BeeNoisy阅读 1,869评论 0 8
  • 转载自:HTTP状态码——AndroidObject HTTP状态码(HTTP Status Code)是用以表网...
    TTTqiu阅读 226评论 0 0
  • 摘自 wiki HTTP状态码 1xx消息 这一类型的状态码,代表请求已被接受,需要继续处理。这类响应是临时响应,...
    SincereDu阅读 263评论 0 1
  • 1xx消息 这一类型的状态码,代表请求已被接受,需要继续处理。这类响应是临时响应,只包含状态行和某些可选的响应头信...
    帥陽阅读 419评论 0 0