首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

C/S架构中HTTP错误状态码原因分析及解决办法

  • 23-11-09 13:46
  • 4148
  • 12934
blog.csdn.net

文章目录

  • HTTP的错误状态码同样适用于HTTPS网页
  • 客户端HTTP报错代码
  • 服务端原因HTTP错误状态码
    • 访问成功状态码
    • 访问错误状态码
  • 客户端和服务器端都共同有的报错代码
  • 推荐阅读

HTTP(Hypertext Transfer Protocol)是用于在客户端和服务器之间传输数据的协议。当在浏览器或其他HTTP客户端中访问网页时,可能会发生各种访问报错。我们需要根据网页提供的错误状态码分析错误原因,以找到相对应的解决办法。

HTTP的错误状态码同样适用于HTTPS网页

HTTP错误状态码是HTTP协议的一部分,而HTTPS是HTTP的安全版本,二者的基础都是传输协议,因此HTTP的错误状态码同样适用于HTTPS网页。

例如,当HTTPS网页遇到错误状态码404时,也会返回"Not Found"的错误信息。

我们从客户端和服务端来分别整理汇总网页错误状态码,代表的含义进行一个比较全面的分析,帮助大家解决运维过程中用户报修或者开发过程中debug:

客户端HTTP报错代码

  1. 404 Not Found:标准理解是 “页面未找到” 或 “网页不存在” 的消息显示,表示用户请求的页面或资源在服务器上未找到。这种情况其实有两种原因,一种是客户端输入的页面或者地址错误,一种是服务器端该资源已经不存在了。

  2. 400 Bad Request:显示为 “无效的请求” 或 “错误的请求”,这可能是因为您发送了格式不正确的请求,或者请求中的参数不正确。导致请求无效,服务器或客户端无法理解或处理请求。

  3. 401 Unauthorized:通常以 “未经授权” 的消息显示,表示用户没有提供有效的身份认证信息去访问受保护的资源。常见的就是账号密码输入错误或者其他身份识别失败。

  4. 403 Forbidden:显示为 “无权限” 或 “禁止访问”,表示用户没有权限访问请求的资源。

  5. 408 Request Timeout:显示为 “请求超时”,通常表示用户的请求在服务器响应之前超时了。

    以下是一些408错误可能会发生的情况:

    • 网络延迟
      网络延迟可能导致请求响应不及时,从而导致超时错误。例如,请求在数秒钟内到达服务器,而服务器需要几分钟来处理该请求。
    • 服务器负载过高
      当服务器过载时,比如CPU、内存、磁盘IO超过负载达到100%,可能无法及时响应请求,导致超时错误。
    • 代理服务器设置不正确
      如果你的网络流量路由经过代理服务器,可能会发生408 Request Timeout错误。这可能是因为代理服务器设置不正确导致的。
  6. 502 Bad Gateway:通常以 “网关错误” 或 "坏的网关"的消息显示,表示用户的请求无法到达目标服务器,通常是由代理服务器问题引起的。 502错误是网站服务器通信出错的表现,502无法指示网站到底哪里出了问题。当服务器遇到问题后,客户浏览网页时,网页就会显示502 Bad Gateway。
    一般来说,502错误有如下几种情况:

    • 访问拥堵
      即多个用户同时访问服务器,导致服务器过载无法及时反馈用户的请求,出现的连接超时的情况。
    • 缓存过多
      用户本地的访问记录过多,导致网页加载缓慢。当网页加载的数据不足以展示内容时,就会出现502报错。
    • 网络拥堵
      就是当前用户所使用的网络存在多人访问,无法正常处理所有用户的请求。
  7. 503 Service Unavailable:显示为"服务不可用",通常表示服务器暂时无法处理请求,可能是由于服务器过载或维护等原因。具体的原因可能是如下:

    • 服务器过载或维护
      503错误通常是由于服务器过载或维护而引起的。
    • 网站程序没有启动
      首先需要检查一下网站的程序是否启动,包括排程设定等等。
    • IIS假死
      可以通过重启IIS服务来解决。
    • 应用程序池内存资源达到CPU的上限
      如果使用的是虚拟主机,一般CPU是有限制上限的,如果达到了主机限制的CPU的上限,就可能会出现503错误。解决方法是修改CPU内存上限,可以通过升级主机套餐来解决。
    • 网站访问量超限
      如果网站被攻击,突然网站流量增加得很高,也有可能造成网站应用程序池假死现象,出现503错误。解决方法是先停用网站,将网站的访问流量降下来,之后再重复启用。
    • 网站应用程序池重复出现启用暂停现象
      有可能是创建了一个网站管理员,但是却使用了多个应用程序池,导致每次启用应用程序池后,两个相同的应用程序池冲突,导致应用程序池又一次停掉,所以访问网站503错误又会再次出现。
  8. 504 Gateway Timeout:通常以 “网关超时” 的消息显示,表示代理服务器或网关在等待上游服务器响应时超时。更多讯息,参考:HTTP状态码504(Gateway Timeout)报错原因分析和解决办法

  9. Connection Timed Out:通常以 “连接超时” 的消息显示,表示用户的请求无法建立到服务器的连接。

  10. DNS Resolution Failed:通常以 “DNS解析失败” 的消息显示,表示用户的设备无法解析域名以获取服务器的IP地址。
    DNS Resolution Failed 报错的原因可能如下:

    • DNS服务器故障
      可能是DNS服务器硬件故障、软件故障或网络连接问题等不可预知的因素导致其无法正常工作,从而使DNS解析失败。
    • DNS配置错误
      可能是本地DNS缓存配置错误,或者DNS服务器地址配置错误。
    • DNS劫持
      攻击者通过篡改DNS解析结果,将用户重定向到错误的网站,从而导致DNS解析失败。
    • 域名过期
      如果域名已经过期,那么该域名就无法正常访问,导致DNS解析失败。
    • 其他网络问题
      如网络拥堵、防火墙设置、路由器配置等问题也可能导致DNS解析失败。
  11. Server Not Found:显示为 “服务器未找到”,通常表示用户的浏览器无法找到目标服务器。

服务端原因HTTP错误状态码

服务器侧在处理客户端请求时,也会生成各种HTTP状态码以表示请求的处理结果。其中有提示访问成功的状态,也有反馈错误的状态码。

访问成功状态码

  1. 200 OK:表示服务器成功处理了客户端的请求,并返回了请求的内容。

  2. 201 Created:表示服务器已成功处理请求并创建了一个新的资源,通常在POST请求后使用。

  3. 204 No Content:表示服务器成功处理了请求,但没有返回任何内容,通常用于DELETE请求。

访问错误状态码

  1. 400 Bad Request:表示服务器无法理解或处理客户端发送的请求,通常是因为请求语法错误或缺少必要参数。

  2. 401 Unauthorized:表示请求需要身份验证,但未提供有效的身份验证凭证。

  3. 403 Forbidden:表示服务器理解请求,但拒绝执行请求,通常是因为权限不足。
    在这里插入图片描述

  4. 404 Not Found:表示请求的资源不存在于服务器上。在这里插入图片描述

  5. 405 Method Not Allowed:表示请求中使用了服务器不支持的HTTP方法。

  6. 500 Internal Server Error:500错误是服务器内部错误,即服务器无法根据客户端的请求提供服务。具体来说,以下是可能导致500错误发生的情况:

    • 服务器配置问题
      如错误的文件权限设置、缺少必要的软件或插件等。
    • 脚本语言错误
      网站使用的脚本语言(如PHP、Python等)存在错误或异常,导致服务器无法正常解析和执行脚本。
    • 数据库问题
      如数据库连接失败、数据库表结构错误、数据库查询语句有误等问题。
    • 服务器资源不足
      如服务器硬件性能不足或过载、内存不足等,导致服务器无法正常处理请求。服务器硬件性能不足,亦有可能是程式不合理占用。分析处理时要特别注意。
    • 服务器无法响应
      一般出现在网站流量高并发(攻击或流量高峰期),如果服务器配置不足以应对攻击或者高峰期流量,则会出现响应慢或无法响应的情况。
  7. 502 Bad Gateway:表示代理服务器或网关从上游服务器接收到无效的响应。

  8. 503 Service Unavailable:表示服务器当前无法处理请求,通常是由于过载或维护导致的。具体的原因可能是如下:

    • 服务器过载或维护
      503错误通常是由于服务器过载或维护而引起的。
    • 网站程序没有启动
      首先需要检查一下网站的程序是否启动,包括排程设定等等。
    • IIS假死
      可以通过重启IIS服务来解决。
    • 应用程序池内存资源达到CPU的上限
      如果使用的是虚拟主机,一般CPU是有限制上限的,如果达到了主机限制的CPU的上限,就可能会出现503错误。解决方法是修改CPU内存上限,可以通过升级主机套餐来解决。
    • 网站访问量超限
      如果网站被攻击,突然网站流量增加得很高,也有可能造成网站应用程序池假死现象,出现503错误。解决方法是先停用网站,将网站的访问流量降下来,之后再重复启用。
    • 网站应用程序池重复出现启用暂停现象
      有可能是创建了一个网站管理员,但是却使用了多个应用程序池,导致每次启用应用程序池后,两个相同的应用程序池冲突,导致应用程序池又一次停掉,所以访问网站503错误又会再次出现。
  9. 504 Gateway Timeout:表示代理服务器或网关在等待上游服务器的响应时超时。更多讯息,参考:HTTP状态码504(Gateway Timeout)报错原因分析和解决办法

客户端和服务器端都共同有的报错代码

  • 400 Bad Request:表示请求无效,服务器或客户端无法理解或处理请求。HTTP 400 错误的原因有以下几种:

    • 错误的请求语法
      例如缺少必需的参数、格式错误的请求头或无效的请求方法等。
    • 无效的请求参数
      可能是由于参数类型不正确、超出范围或格式错误等导致。
    • 安全性限制
      服务器可能设置了安全性限制,拒绝了包含潜在恶意代码、威胁或违规内容的请求。
    • 请求大小超过限制
      服务器可能限制了请求的大小,如果请求超过了服务器允许的大小限制,服务器将返回400错误。
    • 使用的网址不正确
      在某些情况下,可能是网络或Web服务器在消息到达之前破坏了消息从而导致400请求错误,但它通常是由客户端(浏览器或本地设备)导致的。
  • 401 Unauthorized:表示需要身份验证,无论是客户端还是服务器,都可以要求提供有效的身份验证凭证。
    在这里插入图片描述

  • 403 Forbidden:表示拒绝访问,服务器或客户端都可以使用此状态码来表示访问被禁止。

  • 404 Not Found:表示请求的资源在服务器上未找到,客户端和服务器都可以返回这个状态码。
    在这里插入图片描述

  • 405 Method Not Allowed:表示请求中使用了服务器或客户端不支持的HTTP方法。

  • 500 Internal Server Error:表示服务器在处理请求时遇到了内部错误,客户端和服务器都可以返回这个状态码。具体来说,以下是可能导致500错误发生的情况:

    • 服务器配置问题
      如错误的文件权限设置、缺少必要的软件或插件等。
    • 脚本语言错误
      网站使用的脚本语言(如PHP、Python等)存在错误或异常,导致服务器无法正常解析和执行脚本。
    • 数据库问题
      如数据库连接失败、数据库表结构错误、数据库查询语句有误等问题。
    • 服务器资源不足
      如服务器硬件性能不足或过载、内存不足等,导致服务器无法正常处理请求。
    • 服务器无法响应
      一般出现在网站流量高并发(攻击或流量高峰期),如果服务器配置不足会出现响应慢或无法响应的情况。
  • 502 Bad Gateway:表示代理服务器或网关从上游服务器接收到无效的响应,客户端和服务器都可能遇到此错误。
    一般来说,502错误有如下几种情况:

    • 访问拥堵
      即多个用户同时访问服务器,导致服务器过载无法及时反馈用户的请求,出现的连接超时的情况。
    • 缓存过多
      用户本地的访问记录过多,导致网页加载缓慢。当网页加载的数据不足以展示内容时,就会出现502报错。
    • 网络拥堵
      就是当前用户所使用的网络存在多人访问,无法正常处理所有用户的请求。
  • 503 Service Unavailable:表示服务器当前无法处理请求,可能是由于服务器过载或维护等原因,客户端和服务器都可以返回这个状态码。具体的原因可能是如下:

    • 服务器过载或维护
      503错误通常是由于服务器过载或维护而引起的。
    • 网站程序没有启动
      首先需要检查一下网站的程序是否启动,包括排程设定等等。
    • IIS假死
      可以通过重启IIS服务来解决。
    • 应用程序池内存资源达到CPU的上限
      如果使用的是虚拟主机,一般CPU是有限制上限的,如果达到了主机限制的CPU的上限,就可能会出现503错误。解决方法是修改CPU内存上限,可以通过升级主机套餐来解决。
    • 网站访问量超限
      如果网站被攻击,突然网站流量增加得很高,也有可能造成网站应用程序池假死现象,出现503错误。解决方法是先停用网站,将网站的访问流量降下来,之后再重复启用。
    • 网站应用程序池重复出现启用暂停现象
      有可能是创建了一个网站管理员,但是却使用了多个应用程序池,导致每次启用应用程序池后,两个相同的应用程序池冲突,导致应用程序池又一次停掉,所以访问网站503错误又会再次出现。
  • 504 Gateway Timeout:表示代理服务器或网关在等待上游服务器的响应时超时,客户端和服务器都可能遇到此错误。更多讯息,参考:HTTP状态码504(Gateway Timeout)报错原因分析和解决办法

推荐阅读

  • HTTP状态码504(Gateway Timeout)报错原因分析和解决办法
  • 一文入门Web网站安全测试
注:本文转载自blog.csdn.net的Par@ish的文章"https://blog.csdn.net/weixin_37813152/article/details/132869986"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top