服务器状态码详解面试必会

来源:程序思维浏览:2922次

当我们从客户端向服务器发送请求时,服务器向我们返回状态码,状态码就是告诉我们服务器响应的状态,通过它,我们就可以知道当前请求是成功了还是出现了什么问题,这个状态码也是前端面试必问问题。

服务器状态码详解面试必会

状态码 响应类别 原因短语
1XX信息性状态码(Informational)服务器正在处理请求
2XX成功状态码(Success)请求已正常处理完毕
3XX重定向状态码(Redirection)需要进行额外操作以完成请求
4XX客户端错误状态码(Client Error)客户端原因导致服务器无法处理请求
5XX服务器错误状态码(Server Error)服务器原因导致处理请求出错

状态码响应类别的的定义是必须遵守的,后面的两个数字服务器自己DIY也没什么问题 ,RFC2616(用来指定HTTP协议标准的文档)标准定义的就有四十多种,加上扩展能达到六十种不过常见的大概只有十四种,下面我来谈谈这些有代表性的14种HTTP状态码:

2XX 成功

200 OK

表示请求被服务器正常处理
最常见的就是这个了
随着这个状态码返回的信息跟你的请求方法有关
比如GET请求,请求的资源会作为响应实体返回
而HEAD请求,信息只存在于响应报文首部,因为它不会返回报文实体,只返回报文首部


204 No Content

表示请求已成功处理,但是没有内容返回(就应该没有内容返回的状况)
也就是返回的响应报文中没有报文实体(其实是没有报文实体的主体部分)
浏览器向服务器发送请求后收到了204,那么浏览器页面不会发生更新
一般用在只是客户端向服务器发送信息,而服务器不用向客户端返回什么信息的情况


206 Partial Content

表示服务器已经完成了部分GET请求(客户端进行了范围请求)
响应报文中包含Content-Range指定范围的实体内容


3XX 重定向

301 Moved Permanently

永久重定向,表示请求的资源已经永久的搬到了其他位置
就是说资源已经被分配了新的URI
新的URI应该提示在响应报文的Location首部字段
只要不是HEAD请求,响应实体应该包含新URI的超链接和简短的说明


302 Found

临时重定向,表示请求的资源临时搬到了其他位置
请求的资源暂时被配到到了新的URI
和301很像,只不过资源是临时移动,资源在将来可能还会改变
同样地,新的临时URI应该提示在响应报文的Location首部字段
只要不是HEAD请求,响应实体应该包含新URI的超链接和简短的说明

303 See Other

表示请求资源存在另一个URI,应使用GET定向获取请求资源
303功能与302一样,区别只是303明确客户端应该使用GET访问
(很多HTTP/1.1之前的浏览器不能理解303,但是大家都把302当303对待,使用GET请求新URI)


304 Not Modified

表示客户端发送附带条件的请求(GET方法请求报文中的IF…)时,条件不满足
返回304时,不包含任何响应主体
虽然304被划分在3XX,但和重定向一毛钱关系都没有

307 Temporary Redirect

临时重定向,和302有着相同含义
尽管302标准禁止POST变为GET,但没人听他的
而307就会遵照标准,不会从POST变为GET
但处理响应行为,各个浏览器可能不同

4XX 客户端错误

400 Bad Request

表示请求报文存在语法错误或参数错误,服务器不理解
服务器不应该重复提交这个请求
需要修改请求内容后再次发送

401 Unauthorized

表示发送的请求需要有HTTP认证信息或者是认证失败了
返回401的响应必须包含一个适用于被请求资源的WWW-Authenticate首部以质询用户信息
浏览器初次接受401时,会弹出认证窗口

403 Forbidden

表示对请求资源的访问被服务器拒绝了
服务器可以对此作出解释,也可以不解释
想说明的话可以在响应实体的主体部分描述原因
比如说你可能没有访问权限

404 Not Found

表示服务器找不到你请求的资源
也有可能服务器就是不想给你然后骗你找不到(⊙ˍ⊙)
而且大多服务器都是这么玩这个状态码的

5XX 服务器错误

500 Internal Server Error

表示服务器执行请求的时候出错了
可能是Web应用有bug或临时故障
更有可能是服务器源代码有bug…

503 Service Unavailable

表示服务器超负载或正停机维护,无法处理请求
如果服务器知道还需要多长时间,就写入Retry-After首部字段返回

总结

返回的状态码和状态不一致的情况是有可能发生得

比如Web应用程序内部错误,但仍然返回 200 OK

200 OK
请求正常处理完毕

204 No Content
请求成功处理,没有实体的主体返回

206 Partial Content
GET范围请求已成功处理

301 Moved Permanently
永久重定向,资源已永久分配新URI

302 Found
临时重定向,资源已临时分配新URI

303 See Other
临时重定向,期望使用GET定向获取

304 Not Modified
发送的附带条件请求未满足

307 Temporary Redirect
临时重定向,POST不会变成GET

400 Bad Request
请求报文语法错误或参数错误

401 Unauthorized
需要通过HTTP认证,或认证失败

403 Forbidden
请求资源被拒绝

404 Not Found
无法找到请求资源(服务器无理由拒绝)

500 Internal Server Error
服务器故障或Web应用故障

503 Service Unavailable
服务器超负载或停机维护

精品好课
最新完整React视频教程从入门到精通纯干货纯实战
React是目前最火的前端框架,就业薪资很高,本课程教您如何快速学会React并应用到实战,教你如何解决内存泄漏,常用UI库的使用,自己封装组件,正式上线白屏问题,性能优化等。对正在工作当中或打算学习React高薪就...
React实战视频教程仿京东移动端电商
React是前端最火的框架之一,就业薪资很高,本课程教您如何快速学会React并应用到实战,对正在工作当中或打算学习React高薪就业的你来说,那么这门课程便是你手中的葵花宝典。
VUE2+VUE3视频教程从入门到精通(全网最全的Vue课程)
VUE是目前最火的前端框架之一,就业薪资很高,本课程教您如何快速学会VUE+ES6并应用到实战,教你如何解决内存泄漏,常用UI库的使用,自己封装组件,正式上线白屏问题,性能优化等。对正在工作当中或打算学习VUE高薪就...
Vue2+Vue3+ES6+TS+Uni-app开发微信小程序从入门到实战视频教程
2021年最新Vue2+Vue3+ES6+TypeScript和uni-app开发微信小程序从入门到实战视频教程,本课程教你如何快速学会VUE和uni-app并应用到实战,教你如何解决内存泄漏,常用UI库的使用,自己...
jQuery视频教程从入门到精通
jquery视频教程从入门到精通,课程主要包含:jquery选择器、jquery事件、jquery文档操作、动画、Ajax、jquery插件的制作、jquery下拉无限加载插件的制作等等......
HTML5基础入门视频教程易学必会
HTML5基础入门视频教程,教学思路清晰,简单易学必会。适合人群:创业者,只要会打字,对互联网编程感兴趣都可以学。课程概述:该课程主要讲解HTML(学习HTML5的必备基础语言)、CSS3、Javascript(学习...
HTML5视频播放器video开发教程
适用人群1、有html基础2、有css基础3、有javascript基础课程概述手把手教你如何开发属于自己的HTML5视频播放器,利用mp4转成m3u8格式的视频,并在移动端和PC端进行播放支持m3u8直播格式,兼容...
最新完整React+VUE视频教程从入门到精,企业级实战项目
React和VUE是目前最火的前端框架,就业薪资很高,本课程教您如何快速学会React和VUE并应用到实战,教你如何解决内存泄漏,常用库的使用,自己封装组件,正式上线白屏问题,性能优化等。对正在工作当中或打算学习Re...
收藏
扫一扫关注我们