百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

解惑:哪些错误是用HTTP状态码表示的

zhezhongyun 2025-03-12 22:15 47 浏览

感谢IT之家网友 yinyue200的原创投稿

简单来说,当我们访问一个网站时,例如,https://www.ithome.com/ 时。浏览器会执行下面几个步骤:

1、查找 https://www.ithome.com/ 这个域名所对应的 IP 地址。我们常说的 DNS 就是用来干这件事的。

2、请求与上一步中查找到的 IP 地址建立 TCP 连接。

3、在TCP连接中发送 HTTP 请求 /zh-cn/ 这个资源。

4、浏览器收到服务器对 HTTP 请求回应的内容,根据内容做出不同的显示。

里面有这么一句话

400错误请求:400代表语义有误,服务器无法理解用户的请求,除非进行修改,不然没必要一边按F5一边喷服务器垃圾。比如说别把www.baidu.com.打成com.baidu.www.,否则服务器是不知道你在说什么鸟语。在减少这类错误的道路上,伟大的人类发明了搜索引擎,容错率随之提高。

还配了这样一张图

这个根本不是文章中说的 HTTP 400 错误,详细信息都已经说了是 DNS 名称不存在。明摆着是在查找 com.baidu.www 这个域名对应的 IP 地址时就出错了,怎么可能会相应的是 HTTP 400 错误。

其中对于 HTTP 408 的配图也有同样的问题,配图的错误是直接在 TCP 连接阶段就超时的,响应码并不是 HTTP 错误。如果是 HTTP 错误,那么显示的一定是网站自己写的错误页面,而不是浏览器标准的错误页面(不过这点也有一些例外,IE和某些浏览器会将某些内容较短的 HTTP 错误页面替换成浏览器标准错误页面)

所以说,在 DNS 查询阶段,TCP 传输阶段时的出错内容是不能用 HTTP 错误码显示的。

大多数的阻止你访问指定网站的机制(比如公司网络不能访问某些网站的情况)都是在 DNS 和 TCP 连接上下手,返回错误的 IP 地址或是强行中断与指定IP的连接。有一种特殊的情况就是返回的错误IP地址正好对应着一个其它网站的 IP 地址,因为每个网站的 URL 结构都是不同的,所以这种情况下你一般看到错误IP地址所对网站的 HTTP 404 错误。否则一般情况下阻止你访问指定网站的机制所造成的错误一般是错误 IP 地址导致的服务器无响应,而不是 HTTP 错误,因为 HTTP 错误必须是在服务器响应你的 TCP 连接请求的之后才能出现的。

某些网关或是网络中间设备可能造成更加复杂的情况,不在本文讨论范围。

还有一点,HTTP 401 301 302 305 其实都不应该在内容被封禁的时候使用,根据 IETF 的标准,HTTP 451(Unavailable For Legal Reasons)才是专门为这种情况制定的 HTTP 状态码

具体可以查看 IETF 的 RFC 7725。

【原标题:解惑:哪些错误是用HTTP状态码表示的】

相关推荐

VSCode中值得推荐的常用的23个高效前端插件(工具篇)(一)

VSCode是我们前端开发的一个强大的IDE,所以选择趁手好用的插件是提高开发效率,然后剩下的时间用来摸鱼是很有必要滴。工具篇(23)Chinese(Simplified)vscode我们都知道是...

高级前端进阶,用gulp提升你的开发效率

前言:这两天动手配置了一下gulp,发现gulp配置简单,构建速度快,在某些使用场景下还是个不错的选择,本文从零开始构建,到最后打包发布到生成环境。通过本文可以快速上手gulp,文末附送github源...

Chrome 110 3大新特性!CSS支持画中画!

大家好,很高兴又见面了,我是"前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发!今天带着大家一起看看最新发布的Chrome1...

用html中If语句——判断ie浏览器的版本

if语句的代码的语法非常简单,,就是一个if判断语句来判断浏览器的类型和版本,应用类似<!--[iflteIE6]>和<![endif]-->语法结构包孕起来...

谷歌浏览器怎么开启无痕浏览_谷歌浏览器怎么开启无痕浏览模式

很多用户在使用谷歌浏览器时,不希望留下任何上痕迹,开启无痕浏览器是最好的选择。这个模式下可以更好的保护个人隐私记录,给你带来更加安全的冲浪体验,接下来就给大家详细介绍下谷歌浏览器的无痕浏览模式,希望对...

Linux命令那么多,其实只需要记住这些就足够了!

你好,这里是网络技术联盟站,我是瑞哥。Linux命令行是一个强大且灵活的工具,可以极大地提高用户的工作效率和系统管理能力。我们都知道,Linux命令非常多,但是在实际的工作中,日常使用到的命令并不多,...

Linux如何查看文件_linux如何查看文件大小

Linux如何查看目录下的所有文件?用ls(list)查看当前目录下的所有文件和子目录。Ls查看目录下的文件,怎么区分是目录还是文件呢?第一种方式,我们可以通过颜色来区分目录和文件。默认情况下,目录显...

Linux系统man命令使用详解_linux man命令详解

man命令是在Linux和Unix系统上用于查看系统手册页(manualpages)的工具。手册页提供了关于系统命令、函数和文件的详细文档。命令语法:man[选项][命令或主题]参数:[选项]...

linux ps命令详解_linux中ps

linux中ps只显示进程的静态快照,及瞬间的进程状态,它拥有众多的风格,可分为3组:UNIX风格,BSD风格,GNU风格,本文介绍UNIX风格的ps指令。参数ps[-aefFly][-ppid...

如何在 Linux 上查找系统硬件信息?hwinfo命令很强大!

hwinfo是一个功能强大的硬件信息查询工具,专为Linux系统设计。它能够提供系统中几乎所有硬件组件的详细信息,包括但不限于CPU、内存、硬盘、网络设备、USB设备、显卡、声卡等。与其他常...

Linux Shell 入门教程(二):常用命令大全与使用技巧

在上一节《理解Linux与Shell》中,我们了解了Linux是什么、Shell是什么以及常见的Shell类型。这一篇,我们将正式动手操作,掌握使用频率最高、最实用的Linux命令...

SpringBoot应用部署神器:可视化服务管理脚本让运维更轻松

在SpringBoot应用的生产环境部署中,传统的手动启停服务方式不仅效率低下,还容易出错。今天分享一个功能强大的可视化服务管理脚本,让SpringBoot应用的部署和运维变得简单高效。痛点分析:传统...

一次虚拟机性能问题导致的应用故障

最近我负责维护的一套语音平台出了问题。故障现象据客户反馈是转入IVR以后没有正常响应,客户无奈挂机了。老实说,刚开始接到用户反馈的时候,我是不太相信的。我们的系统平时运行运行很稳定,客户的并发数不大,...

linux中的常用命令_linux常用命令及含义

linux中的常用命令linux中的命令统称shell命令shell是一个命令行解释器,将用户命令解析为操作系统所能理解的指令,实现用户与操作系统的交互shell终端:我们平时输入命令,执行程序的那个...

linux学习笔记——常用命令-文件处理命令

ls目录处理命令:ls全名:list命令路径:/bin/ls执行权限:所有用户ls–ala--alll–long-i查看i节点ls–i查看i节点命令名称:mkdir命令英文原意:m...