HTTP状态码详解
详细分解
1xx(临时响应)
表示临时响应并需要请求者继续执行操作的状态代码。
100
(继续) 请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。
101
(切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。
102
(Processing)由WebDAV(RFC 2518)扩展的状态码,代表处理将被继续执行。
2xx (成功)
表示成功处理了请求的状态代码。
注:200代表请求成,但是这并不意味着,返回的数据也是正确的
200
(成功) 服务器已成功处理了请求。
201
(已创建) 请求成功并且服务器创建了新的资源。
202
(已接受) 服务器已接受请求,但尚未处理。
203
(非授权信息) 服务器已成功处理了请求,但返回的信息可能来自另一来源。
204
(无内容) 服务器成功处理了请求,但没有返回任何内容。
205
(重置内容) 服务器成功处理了请求,但没有返回任何内容。
206
(部分内容) 服务器成功处理了部分 GET 请求。
3xx (重定向)
接口重定向
300
(多种选择) 针对请求,服务器可执行多种操作。服务器可根据请求者 (user agent) 选择一项操作,或提供操作列表供请求者选择。
301
(永久移动) 请求的网页已永久移动到新位置。服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。
302
(临时移动) 意味着接口将重定向到另一个URL中去
303
(查看其他位置) 请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。
304
(未修改) 自从上次请求后,请求的网页未修改过。服务器返回此响应时,不会返回网页内容。
305
(使用代理) 请求者只能使用代理访问请求的网页。如果服务器返回此响应,还表示请求者应使用代理。
307
(临时重定向) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。
4xx(请求错误)
这些状态代码表示请求可能出错,妨碍了服务器的处理。
400
(错误请求)Bad Request请求包含语法错误
原因:(1)输入的参数多了或者少了(2)输入的参数错误(3)有时候服务器请求超时也会造成400错误
401
(未授权)401 Unauthorized当前请求需要用户验证
简介
HTTP401状态码代表的意思是 需要身份认证验证,即 HTTP 401 Unauthorized 响应状态。
HTTP 401 (Http Status Code 401) 状态是HTTP协议的一种响应码,是我们请求访问网站时,服务器端返回的4xx 客户端错误系列响应码之一。
状态详细说明
HTTP 401 表示当前请求需要用户验证。该响应必须包含一个适用于被请求资源的WWW-Authenticate信息头用以询问用户信息。客户端可以重复提交一个包含恰当的Authorization头信息的请求。如果当前请求已经包含了Authorization证书,那么401响应代表着服务器验证已经拒绝了那些证书。如果401响应包含了与前一个响应相同的身份验证询问,且浏览器已经至少尝试了一次验证,那么浏览器应当向用户展示响应中包含的实体信息,因为这个实体信息中可能包含了相关诊断信息。
解决思路
- 优先考虑是否是需要验证,也就是是否需要授权账号和密码信息;
- 如果是开放的服务器资源, 需要考虑的是是否有防御性的安全策略;
403
(禁止) Forbidden服务器已理解请求,但拒绝执行它
简介
403 Forbidden是 HTTP协议中的一个状态码(Status Code),可以简单理解为没有权限访问此站。该状态表示服务器理解了本次请求但是拒绝执行该任务,该请求不该重发给服务器。在HTTP请求的方法不是“HEAD”,并且服务器想让客户端知道为什么没有权限的情况下,服务器应该在返回的信息中描述拒绝的理由。在服务器不想提供任何反馈信息的情况下,服务器可以用404 Not Found代替403 Forbidden。
原因
出现这类情况一般是访问这个接口需要一定的权限,但是访问者没有相应的访问权限
1、你的IP被列入黑名单。
2、你在一定时间内过多地访问此网站(一般是用采集程序),被防火墙拒绝访问了。
3、网站域名解析到了空间,但空间未绑定此域名。
4、你的网页脚本文件在当前目录下没有执行权限。
5、在不允许写/创建文件的目录中执行了创建/写文件操作。
6、以http方式访问需要ssl连接的网址。
7、浏览器不支持SSL 128时访问SSL 128的连接。
8、在身份验证的过程中输入了错误的密码。
9、DNS解析错误,手动更改DNS服务器地址。
10、连接的用户过多,可以过后再试。
11、服务器繁忙,同一IP地址发送请求过多,遭到服务器智能屏蔽。
禁止访问细分
错误码 | 含义 |
---|---|
HTTP 403 | 对Internet服务管理器(HTML)的访问仅限于Localhost |
HTTP 403.1 | 禁止访问:禁止可执行访问 |
HTTP 403.2 | 禁止访问:禁止读访问 |
HTTP 403.3 | 禁止访问:禁止写访问 |
HTTP 403.4 | 禁止访问:要求SSL |
HTTP 403.5 | 禁止访问:要求SSL 128 |
HTTP 403.6 | 禁止访问:IP地址被拒绝 |
HTTP 403.7 | 禁止访问:要求客户证书 |
HTTP 403.8 | 禁止访问:禁止站点访问 |
HTTP 403.9 | 禁止访问:连接的用户过多 |
HTTP 403.10 | 禁止访问:无效配置 |
HTTP 403.11 | 禁止访问:密码已更改 |
HTTP 403.12 | 禁止访问:映射器拒绝访问 |
HTTP 403.13 | 禁止访问:使用的客户证书已被吊销 |
HTTP 403.15 | 禁止访问:客户访问许可过多 |
HTTP 403.16 | 禁止访问:客户证书不可信或者无效 |
HTTP 403.17 | 禁止访问:客户证书已经到期或者尚未生效 |
解决办法
1、重建dns缓存
2、修改文件夹安全属性
3、关于apache导致的403 forbidden错误,需设置Apache的配置文件。
4、关于HawkHost空间出现403 Forbidden错误需设置htaccess文件。
404
(未找到) 服务器找不到请求的网页。
简介
HTTP 404或Not Found错误消息是HTTP的其中一种“标准回应消息”(HTTP状态码),此消息代表客户端在浏览网页时,服务器无法正常提供消息,或是服务器无法回应且不知原因。通常是因为用户所访问的对应网页已被删除被移动或从未存在。404也是互联网上最常见的错误之一。404错误消息可能与“server not found”(无法找到服务器)或其他类似消息产生混淆。
简单来说就是访问的文件不存在。
405
(方法禁用)请求行中指定的方法不能用于请求相应的资源。
406
(不接受) 无法使用请求的内容特性响应请求的网页。
407
(需要代理授权) 此状态代码与 401(未授权)类似,但指定请求者应当授权使用代理。
408
(请求超时) 服务器等候请求时发生超时。
409
(冲突) 服务器在完成请求时发生冲突。服务器必须在响应中包含有关冲突的信息。
410
(已删除) 如果请求的资源已永久删除,服务器就会返回此响应。
411
(需要有效长度) 服务器不接受不含有效内容长度标头字段的请求。
412
(未满足前提条件) 服务器未满足请求者在请求中设置的其中一个前提条件。
413
(请求实体过大) 服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。
414
(请求的 URI 过长) 请求的 URI(通常为网址)过长,服务器无法处理。
简介
414–Request-URLTooLong(Web服务器拒绝为请求提供服务时,响应此错误,因为Request-URL的长度超出了服务器的处理能力。)
原因
1、当客户端不正确地将“POST”请求转换为“GET”请求时,这种罕见情况更有可能发生,一旦客户端下降到URL重定向“黑洞”(意味着重定向的URL前缀是指向它自己的后缀)。
2、当服务器受到客户端试图利用某些服务器中存在的任何安全漏洞的攻击时,也可能会收到该错误代码,还使用固定长度的缓冲区来读取和操作请求URL。
415
(不支持的媒体类型) Unsupported Media Type对于当前请求的方法和所请求的资源,请求中提交的实体并不是服务器中所支持的格式,因此请求被拒绝
解决方法
a.查看是否加了请求头部,一般来说必须要加的header是Content-Type:application/json;charset=utf-8;
b.在上传文件的时候要特别注意,请求的头部 Content-Type不是application/json格式,是multipart/form-data格式。
416
(请求范围不符合要求) 如果页面无法提供请求的范围,则服务器会返回此状态代码。
417
(未满足期望值) 服务器未满足"期望"请求标头字段的要求。
418
I'm a teapot
421
Misdirected Request
请求被指向到无法生成响应的服务器(比如由于连接重复使用)
422
Unprocessable Entity
请求格式正确,但是由于含有语义错误,无法响应。(RFC 4918 WebDAV)
423
Locked
当前资源被锁定。(RFC 4918 WebDAV)
424
Failed Dependency
由于之前的某个请求发生的错误,导致当前请求失败,例如 PROPPATCH。(RFC 4918 WebDAV)
425
Too Early
状态码 425 Too Early 代表服务器不愿意冒风险来处理该请求,原因是处理该请求可能会被“重放”,从而造成潜在的重放攻击。(RFC 8470) [1]
426
Upgrade Required
客户端应当切换到TLS/1.0。(RFC 2817)
449
Retry With
由微软扩展,代表请求应当在执行完适当的操作后进行重试。
451
Unavailable For Legal Reasons
该请求因法律原因不可用。(RFC 7725)
5xx(服务器错误)
这些状态代码表示服务器在尝试处理请求时发生内部错误。这些错误可能是服务器本身的错误,而不是请求出错。
500
(服务器内部错误) 服务器遇到错误,无法完成请求。
简介
服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。一般来说,这个问题都会在服务器端的源代码出现错误时出现。
原因
该网站的服务器出了问题,,但服务器不能确定是什么具体错误
解决办法
从客户端解决 清除缓存,并删除Cookie后,重新启动浏览器。
从服务器端排查
1)外部资源超时
2)通过的问题错了文件和目录权限触发
3)在.htaccess文件错误配置
501
(尚未实施) 服务器不具备完成请求的功能。例如,服务器无法识别请求方法时可能会返回此代码。
502
(错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。Bad Gateway作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应
简介
502 Bad Gateway是指错误网关,无效网关;在互联网中表示一种网络错误。表现在WEB浏览器中给出的页面反馈。这通常并不意味着上游服务器已关闭(无响应网关/代理) ,而是上游服务器和网关/代理使用不一致的协议交换数据。鉴于互联网协议是相当清楚的,它往往意味着一个或两个机器已不正确或不完全编程
原因
对用户访问请求的响应超时造成的, 服务端代码异常,代码语法错误,连接不上数据库等
解决办法
1.检查服务器连接
2.检查是否更改了DNS
3.检查服务器日志
4.修复防火墙故障
5.梳理网站代码查找漏洞
503
服务不可用) Service Unavailable由于临时的服务器维护或者过载,服务器当前无法处理请求。
简介
503是一种HTTP状态码。英文名503 Service Unavailable与404(404 Not Found)是同属一种网页状态出错码。前者是服务器不可访问时给客户端的一种状态,后者是访问了服务器不存在的资源
原因
1、网络管理员可能关闭应用程序池以执行维护。
2、当请求到达时应用程序池队列已满。
3、应用程序池标识没有使用预定义账户:网络服务,而自己配置了标识,但是配置的这个用户不属于IIS_WPG组
4、应用程序池启用了CPU监视,并且设置了CPU利用率超过一定百分比关闭应用程序池,而开发人员写的服务端页面(.asp,.aspx)执行效率不高,会引起CPU的长时间占用,最终达到设置的百分比,从而引起应用程序池关闭
5、应用程序池的性能选项卡的请求队列限制所填的数值太小,默认为1000。
6、web.config的system.web/httpRuntime节点的appRequestQueueLimit属性设置的值太低。
解决方法
1.重启服务器
2.检查服务器连接问题
3.检查防火墙配置
4.检查日志
5.检查应用程序代码或脚本
如果未使用limit模块的话,一般不会出现503的错误代码
504
Gateway Timeout作为网关或者代理工作的服务器尝试执行请求时,未能及时从上游服务器(URI标识出的服务器,例如HTTP、FTP、LDAP)或者辅助服务器(例如DNS)收到响应。
简介
504错误代表网关超时 (Gateway timeout),是指服务器作为网关或代理,但是没有及时从上游服务器收到请求。正常情况下,是由于被请求服务器发送超时引起。
原因
大多数情况下,504网关超时错误意味着任何其他服务器花费的时间太长以至于“超时”,可能是宕机或不能正常工作。
解决办法
1.刷新网页
2.重启网络设备
3.检查浏览器或应用程序中的代理服务器设置
4.检查DNS服务器
505
(HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本
506
Variant Also Negotiates
由《透明内容协商协议》(RFC 2295)扩展,代表服务器存在内部配置错误:被请求的协商变元资源被配置为在透明内容协商中使用自己,因此在一个协商处理中不是一个合适的重点。
507
Insufficient Storage
服务器无法存储完成请求所必须的内容。这个状况被认为是临时的。WebDAV (RFC 4918)
509
Bandwidth Limit Exceeded
服务器达到带宽限制。这不是一个官方的状态码,但是仍被广泛使用。
510
Not Extended
获取资源所需要的策略并没有被满足。(RFC 2774)
600
Unparseable Response Headers
源站没有返回响应头部,只返回实体内容。 [2]
总结
信息响应(100–199),
成功响应(200–299),
重定向(300–399),
客户端错误(400–499)
服务器错误 (500–599)
状态码 | 功能描述 |
---|---|
401 | 用户名或密码错误 |
403 | 禁止访问(客户端IP地址被拒绝) |
404 | 文件不存在 |
414 | 请求URI头部过长 |
500 | 服务器内部错误 |
502 | 无效网关 |
503 | 当前服务不可用 |
504 | 网关请求超时 |
版权声明
版权声明:本文为CSDN博主「Steve lu」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_42327944/article/details/124701493