HTTP 常见的状态码以及其适用场景

news/2024/5/16 9:56:58

是什么

HTTP状态码(英语:HTTP Status Code),用以表示网页服务器超文本传输协议响应状态的3位数字代码
它由 RFC 2616规范定义的,并得到 RFC 2518、RFC 2817、RFC 2295、RFC 2774与 RFC 4918等规范扩展
简单来讲,http状态码的作用是服务器告诉客户端当前请求响应的状态,通过状态码就能判断和分析服务器的运行状态

分类

状态码第一位数字决定了不同的响应状态,有如下:

1 表示消息
2 表示成功
3 表示重定向
4 表示请求错误
5 表示服务器错误

1xx

代表请求已被接受,需要继续处理。这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束

常见的有:

100(客户端继续发送请求,这是临时响应):这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝。客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应。服务器必须在请求完成后向客户端发送一个最终响应
101:服务器根据客户端的请求切换协议,主要用于websocket或http2升级

2xx

代表请求已成功被服务器接收、理解、并接受

常见的有:

200(成功):请求已成功,请求所希望的响应头或数据体将随此响应返回

201(已创建):请求成功并且服务器创建了新的资源

202(已创建):服务器已经接收请求,但尚未处理

203(非授权信息):服务器已成功处理请求,但返回的信息可能来自另一来源

204(无内容):服务器成功处理请求,但没有返回任何内容

205(重置内容):服务器成功处理请求,但没有返回任何内容

206(部分内容):服务器成功处理了部分请求

3xx

表示要完成请求,需要进一步操作。 通常,这些状态代码用来重定向

常见的有:

300(多种选择):针对请求,服务器可执行多种操作。 服务器可根据请求者 (user agent) 选择一项操作,或提供操作列表供请求者选择

301(永久移动):请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置

302(临时移动): 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求

303(查看其他位置):请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码

305 (使用代理): 请求者只能使用代理访问请求的网页。 如果服务器返回此响应,还表示请求者应使用代理

307 (临时重定向): 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求

4xx

代表了客户端看起来可能发生了错误,妨碍了服务器的处理

常见的有:

400(错误请求): 服务器不理解请求的语法
401(未授权): 请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。
403(禁止): 服务器拒绝请求
404(未找到): 服务器找不到请求的网页
405(方法禁用): 禁用请求中指定的方法
406(不接受): 无法使用请求的内容特性响应请求的网页
407(需要代理授权): 此状态代码与 401(未授权)类似,但指定请求者应当授权使用代理
408(请求超时): 服务器等候请求时发生超时
#5xx
表示服务器无法完成明显有效的请求。这类状态码代表了服务器在处理请求的过程中有错误或者异常状态发生

常见的有:

500(服务器内部错误):服务器遇到错误,无法完成请求
501(尚未实施):服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码
502(错误网关): 服务器作为网关或代理,从上游服务器收到无效响应
503(服务不可用): 服务器目前无法使用(由于超载或停机维护)
504(网关超时): 服务器作为网关或代理,但是没有及时从上游服务器收到请求
505(HTTP 版本不受支持): 服务器不支持请求中所用的 HTTP 协议版本

适用场景

下面给出一些状态码的适用场景:

100:客户端在发送POST数据给服务器前,征询服务器情况,看服务器是否处理POST的数据,如果不处理,客户端则不上传POST数据,如果处理,则POST上传数据。常用于POST大数据传输

206:一般用来做断点续传,或者是视频文件等大文件的加载

301:永久重定向会缓存。新域名替换旧域名,旧的域名不再使用时,用户访问旧域名时用301就重定向到新的域名

302:临时重定向不会缓存,常用 于未登陆的用户访问用户中心重定向到登录页面

304:协商缓存,告诉客户端有缓存,直接使用缓存中的数据,返回页面的只有头部信息,是没有内容部分

400:参数有误,请求无法被服务器识别

403:告诉客户端进制访问该站点或者资源,如在外网环境下,然后访问只有内网IP才能访问的时候则返回

404:服务器找不到资源时,或者服务器拒绝请求又不想说明理由时

503:服务器停机维护时,主动用503响应请求或 nginx 设置限速,超过限速,会返回503

504:网关超时

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.tangninghui.cn.cn/item-12742.htm

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

在局域网内进行ARP欺骗攻击(Kali)_kali局域网攻击,从入门到真香

fping –asg 192.168.6.0/24 下图看到,同网段有四个活动IP 3、实施断网攻击 命令:arpspoof –i 网卡 –t 靶机IP地址 网关 -i 指定网卡 -t 持续不断攻击 我的命令:arpspoof –i eth0 –t 192.168.6.137 192.168.6.1 Kali中持续不断地发送arp应…

FlutterFlame游戏实践#09 | 打砖块 - 道具设计

theme: cyanosis 本文为稀土掘金技术社区首发签约文章,30天内禁止转载,30天后未获授权禁止转载,侵权必究! Flutter\&Flame 游戏开发系列前言: 该系列是 [张风捷特烈] 的 Flame 游戏开发教程。Flutter 作为 全平台 的 原生级 渲…

Spring Boot 学习(1)——环境搭建

一只老辣鸟的自我救赎 不科普,简单记录学习过程。 开发环境约束: jdk1.8 Spring Boot 1.5.9 Spring 4.3.13 Maven 3.3.3 Intellij IDEA 2017 【脑瓜灵光的开发环境随意,不灵光尽量按上述约束设置。看了好些教程总…

Redis教程——数据类型(字符串、列表)

上篇文章我们学习了Redis教程——Redis入门,这篇文章我们学习Redis教程——数据类型(字符串、列表)。 Redis数据类型有:字符串、列表、哈希表、集合、有序集合、地理空间、基数统计、位图、位域和流。 字符串String 字符串类型…

redis集合Set

set是一种无序集合。它和列表的区别在于列表中的元素都是可以重复的,而set中的元素是不能重复的。而且set中的元素,并不像列表那样是具有顺序的。 SADD是添加一个元素。course是集合。 SMEMBERS SISMEMBER判断Redis在不在集合course里 SREM是用来删除Re…

《PDVC》论文笔记

PS:模型代码解释清明后出 原文链接: [2108.07781v1] End-to-End Dense Video Captioning with Parallel Decoding (arxiv.org) 原文笔记: What: End-to-End Dense Video Captioning with Parallel Decoding 并行解码的端到端…