余晖落尽暮晚霞,黄昏迟暮远山寻
本站
当前位置:网站首页 > 编程知识 > 正文

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

xiyangw 2022-11-24 16:53 18 浏览 0 评论

感谢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状态码表示的】

相关推荐

Vue的框架(了解)

前端MVC设计模式MVC设计模式,其实就是将前端实现某个业务的所有代码划分为三部分Model:模型,指数据模型,这个数据一般来自于服务器View:视图,指页面标签内容Controller:控制...

Vue.js实战 第五章练习一

练习要求:在原有表格基础上,新增一项是否选中该商品的功能,总价变为只计算选中商品的总价,同时提供一个全选的按钮。实现思路:按照vue数据和dom元素双向绑定的特性,定义allCheckStatus变量...

Vue基础到进阶教程之class和style绑定

关于class和style我们并不陌生,这个在学习css的时候就是家常便饭了,操作元素的class列表和内联样式是数据绑定的一个常见需求。因为它们都是属性,所以我们可以用v-bind处理它们,...

深入Vue 必学高阶组件 HOC「进阶篇」

作者:ssh转发连接:https://mp.weixin.qq.com/s/seKoLSIMtTd1sU4uDrgZCA前言高阶组件这个概念在React中一度非常流行,但是在Vue的社区里讨论...

周末大礼包,23道高质量中级前端面试题。金九银十,建议收藏

这套面试题考察的内容比较常见,涉及到JavaScript、ES6、CSS、Vue、简单算法,浏览器相关知识等。题目列表1.JavaScript的数据类型有哪些2.什么是同源策略3.跨域的方法...

vue3.0-摒弃Object.defineProperty,基于 Proxy 的观察者机制

写在前面:11月16日早上,Vue.js的作者尤大大在VueToronto的主题演讲中预演了Vue.js3.0的一些新特性,其中一个很重要的改变就是Vue3将使用ES6的Proxy作...

程序员都必掌握的前端教程之VUE基础教程(七)

阅读本文约需要10分钟,您可以先关注我们,避免下次无法找到。本篇文章成哥继续带大家来学习前端VUE教程,今天主要讲解VUE的表单处理等知识点。下面我们就一起来学习该块内容吧!01简介在日常开发中,我...

web前端开之网站搭建框架之vue详解

网站搭建框架之vueVue是web前端快速搭建网站的框架之一。它与jQuery有所不同,是以数据驱动web界面(以操作数据改变页面,而jQuery是以操作节点来改变页面),同时,vue还实现了数据的双...

vue3.0尝鲜-基于 Proxy 的观察者机制探索

Vue.js的作者尤大大在VueToronto的主题演讲中预演了Vue.js3.0的一些新特性,其中一个很重要的改变就是Vue3将使用ES6的Proxy作为其观察者机制,取代之前使用...

TypeScript 设计模式之观察者模式

一、模式介绍1.背景介绍在软件系统中经常碰到这类需求:当一个对象的状态发生改变,某些与它相关的对象也要随之做出相应的变化。这是建立一种「对象与对象之间的依赖关系」,一个对象发生改变时将「自动通知其他...

vue面试3

1.单页面应用与多页面应用的去别2.简述一下Sass、Less,且说明区别?他们是动态的样式语言,是CSS预处理器,CSS上的一种抽象层。他们是一种特殊的语法/语言而编译成CSS。变量符不一样,les...

VUE v-bind 数据绑定

动态的绑定一个或多个attribute,也可以是组件的prop。缩写::或者.(当使用.prop修饰符)期望:any(带参数)|Object(不带参数)参数:attrOrP...

vue初学习之自定义选择框实现

v-model简单介绍在使用vue的过程中会经常用到input和textarea这类表单元素,vue对于这些元素的数据绑定和我们以前经常用的jQuery有些区别。vue使用v-model实现这些标签...

Vue实现拖拽穿梭框功能四种方式

一、使用原生js实现拖拽打开视频讲解更加详细Vue实现拖拽穿梭框功能的四种方式_哔哩哔哩_bilibili<html><head><meta...

Vue3.x setup 语法糖实现props双向绑定

1.背景为了封装一下Element-Plus的分页插件,需要实现父子组件之间的传值。2.父组件<scriptsetuplang="ts">letqueryPa...

取消回复欢迎 发表评论: