HTTP 常见的状态码有哪些,适用场景?

Vue中文社区 2021-07-31

以下文章来源于JS每日一题 ,作者灰灰

一、是什么

HTTP状态码(英语:HTTP Status Code),用以表示网页服务器超文本传输协议响应状态的3位数字代码

它由 RFC 2616规范定义的,并得到 RFC 2518RFC 2817RFC 2295RFC 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:网关超时

参考文献

  • https://zh.wikipedia.org/wiki/HTTP状态码
  • https://kebingzao.com/2018/10/05/http-status-code/
  • https://vue3js.cn/interview
(0)

相关推荐

  • 如何使用Selenium WebDriver查找错误的链接?

    今日互动话题 今年的圣诞节你想怎么过?                     当您在网站上遇到404 /页面未找到/无效超链接时,会想到什么想法?啊!当您遇到损坏的超链接时,您会感到烦恼,这是为什么 ...

  • 说说Python中HTTP常见响应状态码?

    公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助! 小猿会从最基础的面试题开始, ...

  • 记录一下 http status code

    HTTP Method 较为简单,我们常用的习惯如下: 一般查询我们都会使用 GET 方法, 创建新的记录使用 POST 方法 更新已有数据使用 PUT 方法 更新已有数据部分属性使用 PATCH 方 ...

  • 错误代码

    4xx(请求错误) 这些状态代码表示请求可能出错,妨碍了服务器的处理. 代码 说明 400 (错误请求) 服务器不理解请求的语法. 401 (未授权) 请求要求身份验证. 对于需要登录的网页,服务器可 ...

  • HTTP状态码 | 菜鸟教程

    HTTP状态码当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求.当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏 ...

  • 网络安全知识点:网站常用的状态码有什么?

    HTTP状态码有哪些?在Linux运维和网络安全的学习中,都会遇到网站安全和HTTP状态码的知识点.当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求.当浏览器接收并显示网页前,此网页所 ...

  • (干货)HTTP响应状态码参考

    HTTP响应状态码参考 1xx:信息 100 Continue 服务器仅接收到部分请求,但是一旦服务器并没有拒绝该请求,客户端应该继续发送其余的请求. 101 Switching Protocols ...

  • 网络状态码302和303的区别究竟是啥?面试官最满意这种回答

    - 这是老杨写的第121篇文章 | 预计阅读8min - 周五了,老杨写完这篇文章就准备去海底捞吃顿夜宵去. 文末附上了本周老杨推荐小白入门的书籍,以及网络状态码最全合集,有用必须收藏转发啊 01 面 ...

  • http状态码汇总及问题经验总结

    我们经常会遇到404.500.302等提示,它们究竟是什么意思呢?除了这几个常见的状态码外,还有哪些我们没有遇到过的但有可能出现的状态码呢?这里本人做了一个汇总,与大家分享一下. 常见的HTTP错误可 ...

  • 404状态码和404页面有什么区别?对SEO有什么影响

    今天有个小伙伴问我,为什么我设置了404页面了,状态码还是不对,如图,为什么显示的还是200的状态? 实际上他搞错了一个东西,那就是404状态码和404页面并不是一个东西, 404状态码是给搜索引擎看 ...

  • 死链返回301状态码,对SEO有影响吗?

    在做SEO的过程中,特别是电商网站,我们经常会遇一个问题:每隔一段时间,就会产生大量过期页面,甚至有的已经变成死链. 面对这个问题,曾经遭遇一度热议,有的建议返回301状态码,有的则建议返回404状态 ...

  • forward和redirect的区别?http状态码301,302分别代表什么?

    一.forward和redirect的区别 从地址栏显示来说:forward是服务器内部重定向,客户端浏览器的网址不会发生变化:redirect发生一个状态码,告诉服务器去重新请求那个网址,显示的的新 ...