【需要记住的事情】HTTP状态码错误的简单解释,以供温习和温习。
介绍
很高兴认识大家!
我是系统解决方案系24年的毕业生Mikoto,这是我第一次写博客。
我想不出昵称,所以妈妈给我取了这个昵称。
主要解释一下4XX和5XX,它们在状态码中被称为错误码,我觉得在我的工作中很重要
↑上图中错误代码为401!
为了解释它,我将从服务器中记录的访问日志样本中查看状态码,但是对于那些不熟悉它的人来说,您可以通过查看它来理解这就是您通常分析访问的方式,所以请快速看一下我很高兴。
顺便说一句,如果您对访问日志感兴趣,请参阅此页面!
[Apache] 简单解释如何读取访问日志! * 2024年更新
[nginx] 访问日志的查看、设置、位置等说明
状态码到底是什么?
状态码是Web服务器响应HTTP请求返回的一个3位数字,您可以从这个数字检查您发送的请求的状态!
您可以通过开发者工具(Chrome中的验证工具)查看,喜欢的请看一下。
↑红框部分就是状态码!
状态码分为五类:信息性(1XX)、成功(2XX)、重定向(3XX)、客户端错误(4XX)和服务器错误(5XX) 这将使您清楚地了解访问是否成功,如果不成功,问题出在哪里。
两种类型的错误代码
4XX - 客户端错误
以4开头的状态码主要表示客户端(用户)出现问题。当服务器由于请求内容错误、访问不允许等原因而无法处理请求时,就会发生这种情况。
例如,我们经常会看到这样的事情:
▼400 错误请求:
127.0.0.1 - - [25/Dec/2023:14:25:00 +0900] “GET /api/data?date=2023-12-33 HTTP/1.1” 400 172 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36(KHTML,如 Gecko)Chrome/58.0.3029.110 Safari/537.36"
这是 400 错误,因为客户端发送了格式不正确的请求。
例如,在上面的示例中,您可以看到客户端为“/api/data”输入了无效日期(2023 年 12 月 23 日),从而导致 400 错误。
▼401 未授权:
127.0.0.1 - - [25/12/2023:13:15:00 +0900]“POST /登录 HTTP/1.1” 401 187“-”“Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36( KHTML,如 Gecko)Chrome/58.0.3029.110 Safari/537.36"
此错误表示客户端未提供正确的身份验证凭据的情况。
在上面的示例中,我们向 /login 发出了 POST 请求,并收到了 401 错误,这表明我们可能没有发送正确的用户名、密码等。
▼403 禁止:
127.0.0.1 - - [25/12/2023:13:20:00 +0900]“GET /admin/settings HTTP/1.1” 403 249“-”“Mozilla/5.0(Macintosh;Intel Mac OS X 10_12_6)AppleWebKit/ 603.1.30(KHTML,如 Gecko)版本/10.1 Safari/603.1.30"
Forbidden 是一个英文单词,意思是“禁止”,顾名思义,它是当请求发送到只有有限数量的用户可以访问的路径时可能会显示的错误代码。
示例错误显示非特权客户端向 /admin/settings 发送了 GET 请求,但返回了 403 错误。
▼404未找到:
127.0.0.1 - - [25/Dec/2023:13:25:00 +0900]“GET /about-us HTTP/1.1” 404 210“-”“Mozilla/5.0(iPhone;CPU iPhone OS 10_3,如 Mac OS X ) AppleWebKit/602.1.50(KHTML,如 Gecko) CriiOS/56.0.2924.75 Mobile/14E5239e Safari/602.1"
当服务器找不到所请求的资源时,可能会返回此 404 错误。造成这种情况的可能原因有多种。
- 用户输入的网址不正确
- 指定的页面已旧并且不再存在
- 由于服务器配置错误,未设置正确的 URL。
- 资源被暂时移动或删除
5XX - 服务器错误
以 5 开头的状态代码表示服务器端出现问题当客户端的请求成功,但由于某种原因服务器无法处理时,就会发生这种情况。
例如:
▼500 内部服务器错误:
127.0.0.1 - - [25/12/2023:14:00:00 +0900]“GET /dashboard HTTP/1.1” 500 215“-”“Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36( KHTML,如 Gecko)Chrome/58.0.3029.110 Safari/537.36"
这是当服务器内部发生错误并且无法处理请求时返回的错误代码。
如果您遇到此错误,您可以通过查看服务器中最近编辑的设置来找到原因!
另外,如果在进行某些配置更改后出现错误,您可以通过切换回之前所做的备份来解决问题!
▼503服务不可用:
127.0.0.1 - - [25/Dec/2023:14:15:00 +0900]“GET /reports HTTP/1.1” 503 212“-”“Mozilla/5.0(iPad;CPU OS 13_6,如 Mac OS X)AppleWebKit/ 605.1.15(KHTML,如 Gecko)版本/13.1.2 Mobile/15E148 Safari/604.1"
表示服务器暂时无法处理请求。这可能是由于维护或过载造成的。
例如,如果访问量突然增加,服务器可能无法处理并返回503错误!
▼504 网关超时:
127.0.0.1 - - [25/Dec/2023:14:20:00 +0900]“GET /video/stream HTTP/1.1” 504 160“-”“Mozilla/5.0(Windows NT 6.1;Win64;x64)AppleWebKit/ 537.36(KHTML,如 Gecko)Chrome/58.0.3029.81 Safari/537.36"
当服务器上的负载由于某种原因增加,并且网关/代理服务器在等待上游服务器的响应时超过指定时间(超时值)时,就会发生这种情况。
在时限内响应用户的请求变得越来越困难。
此外,重新启动中间件并暂时重置连接可能会解决该问题,但为了防止再次发生该问题,您需要调查该过程花费如此长时间的原因。
(一种解决方案是延长超时值,但我从未见过在工作期间解决此问题的示例......)
原因的示例包括:
- 我被困在做一些沉重的事情。
- 执行消耗大量资源的大型数据库操作
- 网络有问题
- 上游服务器出现问题
小故事
▼418 我是茶壶:
你熟悉这个418错误吗?
此状态代码是在大约 20 年前的愚人节定义的,
当您尝试将咖啡倒入茶壶时,会收到一条错误消息,指出咖啡被拒绝。
实际上,它是作为 HTCPCP(超文本咖啡壶控制协议)通信的状态码而存在,而不是 HTTP 通信,验证工具显示状态为 418。
如果您有兴趣,在这里查看
另外,与 418 一样,HTCPCP 也是一个愚人节玩笑,所以请检查一下!
概括
这是对称为错误代码的状态代码的介绍!
除此之外,还有特定中间件输出的错误码,比如499,有兴趣的话可以看一下!
现在我是作为基础设施工程师工作的第一年,状态代码经常出现,所以如果您有兴趣,我建议您研究一下它们。 (我什么都不知道就进去了)
感谢您的观看!
参考:
【列表中常见项目说明】什么是HTTP状态码?按代码编号详细解释
HTTP 状态代码列表和详细指南
HTTP 响应状态代码
什么是 http 状态代码 418?