HTTP响应状态码---小白指南

HTTP(Hypertext Transfer Protocol)是用于在客户端和服务器之间传输信息的协议。在使用HTTP进行通信时,服务器通过HTTP响应状态码向客户端提供关于请求处理结果的信息。状态码是三位数字,用于表示不同的处理结果和行为。本文将介绍常见的HTTP响应状态码,并按照类别进行分类。

1xx系列:信息性响应

状态码 英文描述 状态描述
100 Continue 服务器仅接收到部分请求,但是一旦服务器并没有拒绝该请求,客户端应该继续发送其余的请求。
101 Switching Protocols 服务器转换协议:服务器将遵从客户的请求转换到另外一种协议。
103 Checkpoint 用于 PUT 或者 POST 请求恢复失败时的恢复请求建议。

2xx系列:成功响应

状态码 英文描述 状态描述
200 OK 请求成功(这是对HTTP请求成功的标准应答。)
201 Created 请求被创建完成,同时新的资源被创建。
202 Accepted 供处理的请求已被接受,但是处理未完成。
203 Non-Authoritative Information 非授权信息。请求成功。但是一些应答头可能不正确,因为使用的是其他文档的拷贝。
204 No Content 无内容。服务器成功处理,但未返回内容。在未更新网页的情况下,可确保浏览器继续显示当前文档。如果用户定期地刷新页面,而Servlet可以确定用户文档足够新,这个状态代码是很有用的。
205 Reset Content 重置内容。请求已经被成功处理,但是没有返回新文档。但浏览器应该重置它所显示的内容。用来强制浏览器清除表单输入内容。
206 Partial Content 部分内容。服务器成功处理了部分GET请求

3xx系列:重定向

状态码 英文描述 状态描述
300 Multiple Choices 多重选择。链接列表。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择。用户可以选择某链接到达目的地。最多允许五个地址。
301 Moved Permanently 永久移动。请求的资源已被永久的移动到新URL,返回信息会包括新的URI,浏览器会自动定向到新URL。今后任何新的请求都应使用新的URL代替
302 Found 临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URL
303 See Other 查看其它地址。与301类似。使用GET和POST请求查看
304 Not Modified 未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档)。服务器告诉客户,原来缓冲的文档还可以继续使用。
305 Use Proxy 使用代理。所请求的资源必须通过代理访问
306 Unused 已经被废弃的HTTP状态码.目前已不再使用,但是代码依然被保留。
307 Temporary Redirect 临时重定向。与302类似。使用GET请求重定向,被请求的页面已经临时移至新的 URL 。

4xx系列:客户端错误

状态码 英文描述 状态描述
400 Bad Request 因为语法错误,服务器未能理解请求。
401 Unauthorized 合法请求,但对被请求页面的访问被禁止。因为被请求的页面需要身份验证,客户端没有提供或者身份验证失败。
402 Payment Required 保留,将来使用
403 Forbidden 禁止访问.服务器理解请求客户端的请求,但是拒绝执行此请求
404 Not Found 资源不存在。服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置"您所请求的资源无法找到"的个性页面
405 Method Not Allowed 方法不允许。客户端请求中的方法被禁止
406 Not Acceptable 不可接受的请求。服务器无法根据客户端请求的内容特性完成请求
407 Proxy Authentication Required 代理身份验证要求。请求要求代理的身份认证,与401类似,但请求者应当使用代理进行授权
408 Request Timeout 请求超时。服务器等待客户端发送的请求时间过长,超时
409 Conflict 由于冲突,请求无法被完成。
410 Gone 被请求的页面不可用。
411 Length Required “Content-Length” 未被定义。如果无此内容,服务器不会接受请求。
412 Precondition Failed 请求中的前提条件被服务器评估为失败。
413 Request Entity Too Large 由于所请求的实体太大,服务器不会接受请求。
414 Request-URI Too Long 请求的URL过长。由于 URL 太长,服务器不会接受请求。当 POST 请求被转换为带有很长的查询信息的 GET 请求时,就会发生这种情况。

5xx系列:服务器错误

状态码 英文描述 状态描述
500 Internal Server Error 服务器内部错误。请求未完成。服务器遇到不可预知的情况。
501 Not Implemented 功能未实现。服务器不支持所请求的功能,或者服务器无法完成请求。
502 Bad Gateway 错误网关。请求未完成。服务器充当网关或者代理的角色时,从上游服务器收到一个无效的响应。
503 Service Unavailable 服务不可用(过载或者当机)。
504 Gateway Timeout 网关超时。服务器充当网关或者代理的角色时,未能从上游服务器收到一个及时的响应。
505 HTTP Version Not Supported 服务器不支持请求中指明的HTTP协议版本。
511 Network Authentication Required 用户需要提供身份验证来获取网络访问入口。

学过了状态码的相关知识,我们知道这是服务器给我的相关反馈

我们在学习的时候就被教育说应该将真实情况反馈给客户端,但是在爬虫中,可能该站点的开发人员或者运维人员为了阻止数据被爬虫轻易获取,可能在状态码上做手脚,也就是说返回的状态码并不一定就是真实情况,比如:服务器已经识别出你是爬虫,但是为了让你疏忽大意,所以照样返回状态码200,但是响应体重并没有数据。

所有的状态码都不可信,一切以是否从抓包得到的响应中获取到数据为准

network中抓包得到的源码才是判断依据,elements中的源码是渲染之后的源码,不能作为判断标准

猜你喜欢

转载自blog.csdn.net/m0_67268191/article/details/131712206