HTTP状态码是什么?
HTTP状态码,用以表示网页服务器超文本传输协议响应状态的3位数字代码
简单来讲,http状态码的作用是服务器告诉客户端当前请求响应的状态,通过状态码就可以判断和分析服务器的状态
HTTP状态码的第一位数字就决定了不同的相应状态,如下:
1 表示信息,说明web浏览器已发送请求
2 表示成功,说明请求信息已成功被接收
3 表示重定向,说明请求没有成功
4 表示客户端错误,说明客户提交的信息有误
5 表示服务器错误,说明服务器无法处理你发送的请求
1xx
常见的一般有:
100 (客户端继续发送请求,这是临时响应) :
这个临时响应是用来通知客户端发送的请求已经有一部分已经被接收,并且没有被拒绝
客户端应当继续发送请求剩余的部分,如果请求已经完成,可以忽略这个响应,服务器必须在请求完成后发送给客户端一个最终响应
101:
服务器根据客户端的请求切换协议,主要用于websocket或HTTP2升级
2xx:
200(成功) : 请求已成功,请求所希望的响应头或数据体将随此响应返回
201(已创建):请求成功并且服务器创建了新的资源
202(已创建):服务器已接收请求但尚未处理
203(非授权信息):服务器已成功处理请求,但返回的信息可能来自另一来源
204(无内容):服务器已成功处理请求,但没有返回任何内容
205(重置内容):服务器已成功处理请求,但没有返回任何内容
206(部分内容):服务器成功处理了部分请求
以上是2xx比较常见的状态码
3xx:
300(多种选择):针对请求 服务器可执行多种操作,服务器可根据请求者选择一项操作,或提供操作列表供请求者选择
301(永久移动):请求的网页已经永久移动到新的位置,服务器返回此响应时会自动将请求者移动到新的网页
2(临时移动30):服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求
303(查看其它位置):请求者应当对不同的位置使⽤单独的 GET 请求来检索响应时,服务器返回此代码
305(使用代理):请求者只能使用代理访问请求的网页,如果返回此响应,还表示请求者应使用代理
307(临时重定向):服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求
以上为3xx常见的HTTP状态码
4xx:
400(错误请求):服务器不理解请求的语法
401(未授权):请求要求身份验证,对于需要登陆的网页,服务器可能返回此响应
403(禁止):服务器拒绝请求
404(未找到):服务器找不到要请求的网页
405(方法禁用):禁用请求中指定的方法
406(不接受):无法使用请求的内容特性响应请求的网页
407(需要代理授权):这个状态码与401相似,但指定请求者应当授权使用代理
408(请求超时):服务器等候请求超时
以上为4xx常见的HTTP状态码
5xx:
500(服务器内部错误):服务器遇到错误,无法完成请求
501(尚未实施):服务器不具备完成请求的功能,服务器无法识别请求方法时可能会返回此代码
502(错误网关):服务器作为网关或代理,从上游服务器收到无效响应
503(服务不可用):服务器目前无法使用(由于超载或停机维护)
504(网关超时):服务器作为网关或代理,但是没有及时从上游收到请求
505(HTTP版本不支持):服务器不支持请求中所用的HTTP协议版本
以上为5xx常见的HTTP状态码
使用场景:
100:客户端在发送POST数据给服务器前,征询服务器情况,看服务器能否处理POST的数据,如果不处理,客户端则不上传POST数据,如果处理,则POST上传数据,常用于POST大数据传输
206:一般用来做断点续传,或者是拍视频文件等大文件的加载
301:永久重定向会缓存,新域名替换旧域名,旧的域名不在使用时,用户访问旧域名是用301就重定向到新的域名
302:临时重定向不会缓存,常用于未登录的用户访问用户中心重定向到登陆页面
304:协商缓存,告诉客户端有缓存,常用于未登录用户访问用户中心重定向到登陆页面
400:参数有误,请求无法被服务器识别
403:告诉客户端禁止访问该站点或资源,如在外网环境下,然后访问只有内网IP才能访问的时候则返回
404:服务器找不到资源时,或者服务器拒绝请求又不想说明理由时
503:服务器停机维护时,主动用503响应请求或nginx设置限速,超过限速会返回503
504:网关超时