喵星人教你 HTTP 状态码
在我们日常 Web 开发中,或多或少的都接触过 HTTP 状态码,那这些状态码代表什么意思呢?熟悉这些状态码又有什么好处呢?下面我就为大家一一道来,可以把本片文章‘收藏’以备不时之需。
HTTP 状态代码表示什么意思?
HTTP 状态码(英语:HTTP Status Code)是用以表示 HTTP 响应状态的 3 位数字代码。比如:
- 1xx:消息
- 2xx:成功
- 3xx:重定向
- 4xx:客户端错误
- 5xx:服务器错误
熟记这些状态码可以让我们在快速定位 Web 开发中遇到的问题、编写符合规范的接口服务,那么下面就让我们看看这些死板的 3 位数字都是什么意思。撸猫爱好者,请注意:前方高能,屏住呼吸,一大波喵星人即将来袭!
一、1xx 消息
这一类型的状态码,代表请求已被接受,需要继续处理。这类响应是临时响应,表示客户应该采取的其它行动。
100 Continue(继续)
服务器已经接收到请求头,请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。
101 Switching Protocols(切换协议)
服务器已经理解了客户端的请求,并将通过 Upgrade 消息头通知客户端采用不同的协议来完成这个请求。在发送完这个响应后,服务器将会切换到在 Upgrade 消息头中定义的那些协议。
只有在切换新的协议更好的进行通信。例如:切换到新的 HTTP 版本(如 HTTP/2)比旧版本更有优势、或切换到一个实时且同步的协议(如 WebSocket)等
二、2xx 成功
这一类型的状态码,代表请求已成功被服务器接收、理解、并接受。
200 OK(成功)
已成功处理了请求。出现此状态码是表示正常状态。
201 Created(已创建)
请求成功并且服务器创建了新的资源。
202 Accepted(已接受)
服务器已接受请求,但尚未处理。
204 No Content(无内容)
服务器成功处理了请求,但没有返回任何内容。
206 Partial Content(部分内容)
服务器成功处理了部分 GET 请求。
三、3xx 重定向
这类状态码代表需要客户端采取进一步的操作才能完成请求。通常,这些状态码用来重定向,后续的请求地址(重定向目标)在本次响应的 Location 域中指明。
当且仅当后续的请求所使用的方法是 GET 或者 HEAD 时,用户浏览器才可以在没有用户介入的情况下自动提交所需要的后续请求。
客户端应当自动监测无限循环重定向(例如:A->A,或者A->B->C->A),因为这会导致服务器和客户端大量不必要的资源消耗。按照 HTTP/1.0 版规范的建议,浏览器不应自动访问超过5次的重定向。
300 Multiple Choices(多种选择)
针对请求,服务器可执行多种操作。服务器可根据请求者选择一项操作,或提供操作列表供请求者选择。
301 Moved Permanently(永久移动)
请求的资源已永久移动到新位置。服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。
302 Move Temporarily(临时移动)
请求的资源临时从不同的 URI 响应请求。由于这样的重定向是临时的,客户端应当继续向原有地址发送以后的请求。只有在 Cache-Control 或 Expires 中进行了指定的情况下,这个响应才是可缓存的。
303 See Other(查看其他位置)
对应当前请求的响应可以在另一个 URL 上被找到,而且客户端应当采用 GET 的方式访问那个资源。这个方法的存在主要是为了允许由脚本激活的 POST 请求输出重定向到一个新的资源。这个新的 URI 不是原始资源的替代引用。同时,303响应禁止被缓存。当然,第二个请求(重定向)可能被缓存。
304 Not Modified(未修改)
自从上次请求后,请求的资源未修改过。服务器返回此响应时,不会返回资源的内容,因此可节省带宽和开销。
305 Use Proxy(使用代理)
请求者只能使用代理访问请求的网页。如果服务器返回此响应,还表示请求者应使用代理。
307 Temporary Redirect(临时重定向)
服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来响应以后的请求。 此代码与响应 GET 和 HEAD 请求的 301 代码类似,会自动将请求者转到不同的位置,但您不应使用此代码来告诉搜索引擎爬虫某个页面或网站已经移动,因为搜索引擎爬虫会继续抓取原有位置并编制索引。
四、4xx 客户端错误
这类的状态码代表了客户端看起来可能发生了错误,妨碍了服务器的处理。
400 Bad Request(错误请求)
服务器不理解请求的语法。
401 Unauthorized(未授权)
请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。
403 Forbidden(禁止)
服务器拒绝请求。
404 Not Found(未找到)
服务器找不到请求的资源。 例如,对于服务器上不存在的资源经常会返回此代码。
405 Method Not Allowed(方法不被允许)
请求中的方法不被允许(HTTP METHOD)。
406 Not Acceptable(不接受)
请求的资源的内容特性无法满足请求头中的条件,因而无法生成响应实体,该请求不可接受。
408 Request Timeout(请求超时)
服务器等候请求时发生超时。
409 Conflict(冲突)
由于和被请求的资源的当前状态之间存在冲突,请求无法完成。
410 Gone(已删除)
如果请求的资源已永久删除,服务器就会返回此响应。
411 Length Required(需要有效长度)
服务器不接受不含有效内容长度标头字段的请求。
412 Precondition Failed(未满足前提条件)
服务器未满足请求者在请求中设置的其中一个前提条件。
413 Request Entity Too Large(请求实体过大)
服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。
414 Request-URI Too Long(请求的 URI 过长)
请求的 URI(通常为网址)过长,服务器无法处理。
415 Unsupported Media Type(不支持的媒体类型)
请求的格式不受请求页面的支持。
416 Requested Range Not Satisfiable(请求范围不符合要求)
如果页面无法提供请求的范围,则服务器会返回此状态代码。
417 Expectation Failed(未满足期望值)
服务器未满足"Expect"请求头字段的要求。
429 Too Many Requests(请求太频繁)
用户在给定的时间内发送了太多的请求。旨在用于网络限速。
431 Request Header Fields Too Large(请求头字段过大)
服务器不愿处理请求,因为一个或多个头字段过大。
五、5xx 服务器错误
这类状态码代表了服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。
500 Internal Server Error(服务器内部错误)
服务器遇到错误,无法完成请求。
502 Bad Gateway(错误网关)
服务器作为网关或代理,从上游服务器收到无效响应。
503 Service Unavailable(服务不可用)
服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。
504 Gateway Timeout(网关超时)
服务器作为网关或代理,但是没有及时从上游服务器收到请求。
文中的图片整理自 https://http.cat/,内容整理自“维基百科 HTTP 状态码”
最后
欢迎留言写出你家喵星人的品种和你对他的“爱称”,我很好奇有没有给自己家猫起名叫 “404” 的小伙伴
喵星人教你 HTTP 状态码的更多相关文章
- 喵星人教你记 HTTP 状态码
记忆HTTP状态码是有一些困难的,因为状态码很多且很难记忆.GirlieMac,也就是Tomomi Imura利用她巧妙的构思,PS了一系列的HTTP状态信息.在你看过这些图片之后,你绝对可以记住一些 ...
- 一篇学习HTTP状态码的神文:我与依依的橙色岁月
好的,事情是这样的,数年前,我曾有过一段美好的夏日恋情,在此与大家分享. 依依 这个女孩叫做依依 ,她是 80 后的,生日是 1989 年 3 月吧,忘了哪一天了,分手太久了,记不起来了. 转学生 我 ...
- Http状态码之:301、302重定向
概念 301 Moved Permanently 被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个URI之一.如果可能,拥有链接编辑功能的客户端应当自动把请求的地 ...
- HTTP常用状态码分析
不管是面试还是工作中,经常会碰到需要通过HTTP状态码去判断问题的情况,比如对于后台RD,给到前端FE的一个接口,出现502或者504 error错误,FE就会说接口存在问题,如果没有知识储备,那就只 ...
- Java发送Http请求并获取状态码
通过Java发送url请求,查看该url是否有效,这时我们可以通过获取状态码来判断. try { URL u = new URL("http://10.1.2.8:8080/fqz/page ...
- HTTP各状态码解释
状态码 含义 100 客户端应当继续发送请求.这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝.客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应.服务器必 ...
- 关于Http状态码
Http状态码表示Http协议所返回的响应的状态.比如客户端向服务器发送请求,如果成功的获得请求的资源,则返回的状态码为200,表示相应成功.如果请求的资源不存在,则通常返回404错误. Http状态 ...
- 生产环境常见的HTTP状态码列表
生产环境常见的HTTP状态码列表(List of HTTP status codes)为: 200 - OK,服务器成功返回网页 - Standard response for success ...
- 常用的14种HTTP状态码速查手册
分类 1xx \> Information(信息) // 接收的请求正在处理 2xx \> Success(成功) // 请求正常处理完毕 3xx \> Redirection(重定 ...
随机推荐
- HDU 1867 A + B for you again KMP解决问题的方法
这是一个典型问题KMP申请书. 结果求增加两个字符串.该法的总和是相同的前缀和后缀也是字符串的字符串,您将可以合并本节. 但是,这个问题是不是问题非常明确的含义,因为不是太清楚,外观这两个字符串的顺序 ...
- c#调用ffmpeg嵌入srt/ass字幕提示Unable to open xxx.srt......
最近接触到c#调用ffmpeg嵌入srt/ass字幕,碰到一个错误困扰了很久 Unable to open xxx.srt Error initializing filter 'subtitles' ...
- 如何诊断rac环境sysdate 返回的时间错误
最近处理了若干rac环境访问sysdate错误的时间返回.而这个问题通常是一个数据库链接是由现在Listener创建的情况下.并且.大部分情况下都是和时区设置相关的.在这篇文章中我们会针对怎样诊断这样 ...
- NS2网络模拟(6)-homework02.tcl
1: #NS2_有线部分\homework02.tcl 2: 3: #Create a simulator object 4: set ns [new Simulator] 5: 6: #Define ...
- C#WPF 如何绘制几何图形 图示教程 绘制sin曲线 正弦 绘制2D坐标系 有图有代码
原文:C#WPF 如何绘制几何图形 图示教程 绘制sin曲线 正弦 绘制2D坐标系 有图有代码 C#WPF 如何绘制几何图形? 怎么绘制坐标系?绘制sin曲线(正弦曲线)? 这离不开Path(Syst ...
- WPF用Blend写的交通信号灯
原文:WPF用Blend写的交通信号灯 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/yangyisen0713/article/details/1 ...
- eXtremeDB -- the shared memory 80error
The customers got the shared memory 80error on AIX environment; utility truss is used to track the d ...
- 常用的shell(备份数据库、备份网站、切割访问日志)
备份网站程序 #!/bin/bash /bin/tar czf /mnt/backup_website/web_$(date +%Y%m%d_%H%M%S).gz.tar /mnt/wwwroot/w ...
- 手把手教你学会 基于JWT的单点登录
最近我们组要给负责的一个管理系统 A 集成另外一个系统 B,为了让用户使用更加便捷,避免多个系统重复登录,希望能够达到这样的效果--用户只需登录一次就能够在这两个系统中进行操作.很明显这就是单点登 ...
- Win8Metro(C#)数字图像处理--2.27图像加法运算
原文:Win8Metro(C#)数字图像处理--2.27图像加法运算 [函数名称] 图像加法函数AddProcess(WriteableBitmap src, WriteableBitmap a ...