首页 > SEO优化 >常见HTTP状态码,详解服务器返回HTTP状态码

常见HTTP状态码,详解服务器返回HTTP状态码

    147℃       李雨宸      发布时间:2020-10-29 14:45
  

什么是HTTP状态码


要了解HTTP状态码,我们先来了解下HTTP(HyperText Transfer Protocol),它是为Web浏览器与Web服务器之间进行通信,基于TCP/IP协议设计的一个传输超文本文档(例如 HTML,CSS,JS,PNG,MP4等)的应用层协议。http状态码就是针对HTTP协议而专门用来表示其请求状态的一个规范。平时我们在搜索或浏览网页时,有时会遇到“404 Not Found”或者“资源无法访问”,这就是一种HTTP状态码。本文就来详细阐述各HTTP状态码的含义和作用。


常见的HTTP状态码


200 - 请求成功(如网页,视频,图片,css样式文件,js文件,flash动画等)。

301 - 永久重定向(被请求的资源已永久转移到新地址)。

404 - 请求的资源不存在。

500 - 内部服务器错误(服务器遇到了不知道如何处理的情况)。

502 - 网关错误(服务器作为网关需要得到处理该请求的响应,但是得到了错误的响应)。

503 - 服务不可用(服务器没有准备好处理请求。常见原因是服务器因维护或重启而停机)。


HTTP状态码的详解:


1xx - 信息提示


服务器返回的提示或协商信息,用于之后的通信。

100 - 继续请求(表明目前为止的所有内容服务器都可以理解并处理,客户端应继续请求。如果请求已完成,则忽略它)。

101 - 切换协议(服务器根据客户端请求中Upgrade的标头切换自身的协议)。


2xx - 成功响应


服务器能理解客户端的请求的语法和语义并成功处理。 

200 - 确定(请求成功,默认情况下状态码为200的响应可以被缓存)。

201 - 已创建(请求已经被成功处理,并创建了新的资源)。

202 - 已接受(服务器端已收到请求但尚未处理)。

203 - 非权威性信息(请求已经成功被响应,但是经过了代理服务器的修改和转发)。

204 - 无内容(请求已经成功,但是客户端客户不需要离开当前页面。默认情况下204响应是可缓存的)。

205 - 重置内容(用来通知客户端重置页面-文档对象模型,比如刷新当前页面,清空表单数据、重置canvas状态等)。

206 - 部分内容(客户端只请求获取资源的部分内容,使用请求头的Range来指定)。


3xx - 重定向


客户端浏览器必须采取更多操作来实现请求。例如,浏览器可能不得不请求服务器上的不同的页面,或通过代理服务器重复该请求,请求的方法包括GET、HEAD、POST、PUT、DELETE等。


301 - 永久重定向(请求的资源已经被永久移动到了由Location头部指定的url上)。

302 - 临时重定向(请求的资源已经被暂时移动到了由Location头部指定的url上,需要注意设置http头时不要将301返回成302,会影影响网页收录)。

303 - 重定向(重定向链接指向的不是新资源,而是消息确认页面或上传进度页面。使用该状态码重定向的请求总是使用GET)。

304 - 未修改(无需再次传输请求的内容,也就是说可以使用缓存的内容)。

307 -  临时重定向(请求的资源已经被暂时移动到了由Location头部指定的url上)。

308 - 永久重定向(请求的资源已经被移动到了由Location头部指定的url上)。


301和308都表示永久重定向,302和307都表示临时重定向。301和308的异同点是什么呢?在客户端使用GET请求时,二者是没有区别的;在客户端使用除GET,HEAD以外的请求方法,且服务器返回了301状态码时,一些旧客户端在处理重定向后的请求时会错误地把请求方法转换为GET,而308状态码可以确保重定向前后的请求方法和消息主体不会发生变化。


同问,302和307的异同点又是什么呢?客户端使用GET请求时,二者仍是没有区别的;在客户端使用除GET、HEAD以外的请求方法,且服务器返回了302状态码时,一些旧客户端在处理重定向后的请求时会错误地把请求方法转换为GET,而307状态码可以确保重定向前后的请求方法和消息主体不会发生变化。


另外,301和308永久重定向后,搜索引擎会根据该响应修正索引的URL地址,而302和307临时性重定向搜索引擎不会进行修改。


4xx - 客户端错误


客户端语法、语义错误,地址错误,权限错误等。


400 - 错误的请求(由于语法错误,服务器不能解析该请求)。

401 - 访问被拒绝(由于缺乏目标资源要求的身份验证凭证,发送的请求未被服务器处理)。

402 - 资源要求付费(是一个被保留使用的非标准客户端错误状态响应码。有时,这个状态码表明直到客户端付费之后请求才会被处理。                402状态码被创建最初目的是用于数字现金或微型支付系统, 表明客户端请求的内容只有付费之后才能获取。目前还不存在标准的使用约定,不同的实体可以在不同的环境下使用)。

403 - 禁止访问。在windows+iis服务器中,设置错误多会返回403状态。

404 - 未找到(服务器端无法找到所请求的资源。404状态码并不能表明请求的资源是临时还是永久丢失,永久丢失应返回410)。

405 - 请求方法被禁止(如服务器不允许提交GET请求,只允许用POST)。

406 - 请求不被接受(服务器端无法提供与Accept-Charset以及Accept-Language消息头指定的值相匹配的响应)。

407 - 要求进行代理身份验证(由于缺乏代理服务器要求的身份验证凭证,发送的请求未被处理,代理服务器位于浏览器与请求资源所在的服务器之间)。

408 - 请求超时(服务器想要将没有在使用的连接关闭。一些服务器会在空闲连接上发送此信息,这类响应出现的比较频繁,源于一些浏览器——例如Chrome,Firefox 27+, 或IE9等使用 HTTP协议中的预连接机制来加速上网体验。同时应该注意,某些服务器会直接关闭连接,而不发送此类消息)。

409 - 资源冲突(如上传的文件版本比服务端低)。

410 - 资源永久丢失(表明请求的目标资源在原服务器上不存在了,并且是永久性的丢失。如果不清楚是否为永久或临时的丢失,应该使用404。410响应默认会被缓存)。

411 - 内容长度(表示由于请求缺少确定的Content-Length首部字段,服务器拒绝客户端的请求)。

412 - 前提条件失败(对于目标资源的访问请求被拒绝。通常是上传或修改文件无法执行,从而返回该错误状态码)。

413 - 请求主体太大(请求主体的大小超出了服务器设置的最大值)。

414 - 请求URI太长(所请求的URI超过了服务器允许的范围)。

415 – 不支持的媒体类型(服务器由于不支持其有效载荷的格式,从而拒绝接受客户端的请求)。

416 – 所请求的数据范围无法满足(所请求的数据范围超出了文件的长度范围)。

417 - 期望条件验证失败(服务器无法满足客户端Expect请求头中的期望条件,规范中只规定了一个期望条件,即Expect:100-continue,当服务器验证可满足客户端期望时,就返回100状态码,客户端的请求可继续发送;否则可以返回417,明确指明客户端期望条件验证失败,也可以是其他表示客户端错误的4xx状态码)。

418 - 服务器拒绝冲泡咖啡(服务器拒绝冲泡咖啡,因为它是个茶壶。这个状态码并不期望会被实际应用的HTTP服务器实现。它是来自1998年的一个愚人节玩笑)。

422 - 无法响应(服务器理解请求实体的内容类型和语法,但因语义含有错误而无法响应)。

423 – 当前资源被锁定。

425 - 请求过早(该请求可能会被“重放攻击,服务器不愿冒风险处理该请求)。

426 - 协议升级(服务器拒绝使用客户端指明的协议,但是可以接受客户端使用服务器指定的升级后的协议发送的请求)。

428 - 前置条件验证(服务器端要求发送条件请求)。

429 - 请求过于频繁(在一定的时间内用户发送了太多的请求,即超出了“频次限制”,服务器可以在响应中指明间隔时间)。

431 - 请求首部过大(服务器因请求头字段的值过大拒绝接受客户端的请求)。

451 - 法律禁止(服务器由于法律原因,无法提供客户端请求的资源,例如可能会导致法律诉讼的页面)。


5xx - 服务器错误


服务器错误,请求无法响应。

500 - 内部服务器错误(服务器遇到意外情况无法继续处理请求)。

501 - 请求方法未实现(请求的方法不被服务器支持,因此无法被处理。服务器必须支持的方法只有GET和HEAD)。

502 - 网关错误(上游服务器中返回给网关或代理服务器的响应是无效的)。

503 - 服务不可用(服务器未启动或超出了服务能力,该错误服务器并发数过多,无法响应)。

504 - 网关超时(作为网关或者代理的服务器无法在规定的时间内获得想要的响应)。

505 - HTTP版本不受支持。

511 - 服务器验证(客户端需要通过验证才能使用该网络)。


如何查询HTTP状态码


(1)使用“站长工具”,步骤如下:

① 百度搜索“站长工具”(参见:http://mtool.chinaz.com/Tool/PageStatus/)。

② 然后点击导航里的【其他工具】,选择【HTTP状态查询】。

③ 输入页面地址,点击【查询】即可。

(2)使用浏览器开发者功能,步骤如下:

① 打开浏览器,按键盘【F12】功能键,打开“开发者工具”,选择Network,如图1-1所示。

  1. 2020-10-29 14:23


图1-1:开发者工具



② 在地址栏输入所访问页面的网址,在下方可看到所有的HTTP请求。如图1-2所示。


图1-2:HTTP状态码图示


③ 点开某个请求,可以查看到更详细的信息

HTTP请求/响应总览

(3)使用cURL工具包,步骤如下:

① 安装cURL(参见:https://curl.haxx.se/windows/)。

② 按键盘【Win+R】打开cmd窗口。

③ 输入命令curl -I URL,即可查看到服务器返回的请求头,如图1-4所示。

图1-4:cURL查看状态码

从上图可以看出,该网址将使用http协议的域名利用301状态码永久重定向到了https协议的域名。


本文作者:(张娇,李雨宸

版权声明:本站原创,转载必究。
阅读原文:https://www.seotop.com/article/20.html

Top推荐
投稿须知

#付费约稿# 诚邀优秀编辑,作者投稿到本站,采用后付稿费。 我要约稿

相关推荐
核心产品
百度营销
SEO优化
新浪微博
媒体资源
软文发布
直播带货
新闻评论
知识营销
百度知道
知乎问答
悟空问答
营销资讯
百度营销
SEO优化
品牌策划
扫码咨询