理论_HTTP 协议分析_用户回车会发生什么呢?

本文详细探讨了HTTP协议分析过程,包括URL解析、DNS查询、TCP连接及响应处理,重点讲解了浏览器的工作原理和缓存机制。通过实例,了解浏览器如何构造HTTP报文并解析响应,以及相关工具如HSTS和浏览器缓存的作用。
摘要由CSDN通过智能技术生成

LD is tigger forever,CG are not brothers forever, throw the pot and shine.
Modesty is not false, solid is not naive, treacherous but not deceitful, stay with good people, and stay away from poor people.
talk is cheap, show others the code,Keep progress,make a better result.

目录

在这里插入图片描述

概述

大学里面我们知道计算机网络,但是我们会分析到应用分析,HTTP分析也是
基于三次握手的。很多深入到细节都是太不需要的,因为状态码就帮我指明了原因,也很难用到HTTPwatcher 和wireshakr专业工具等。

需求:

设计思路

URL 解析

DNS 查询

TCP 连接

处理请求

接受响应

渲染页面

实现思路分析

1.URL 解析

一、
地址解析:

首先判断你输入的是一个合法的 URL 还是一个待搜索的关键词,并且根据你输入的内容进行自动完成、字符编码等操作。

HSTS

由于安全隐患,会使用 HSTS 强制客户端使用 HTTPS 访问页面

其他操作

浏览器还会进行一些额外的操作,比如安全检查、访问限制(之前国产浏览器限制 996.icu)。

  1. 浏览器缓存

浏览器会先检查是否在缓存中,没有则调用系统库函数进行查询。

  1. 操作系统缓存

操作系统也有自己的 DNS缓存,但在这之前,会向检查域名是否存在本地的 Hosts 文件里,没有则向 DNS 服务器发送查询请求。

  1. 路由器缓存

路由器也有自己的缓存。

  1. ISP DNS 缓存

ISP DNS 就是在客户端电脑上设置的首选 DNS 服务器,它们在大多数情况下都会有缓存。

根域名服务器查询

在前面所有步骤没有缓存的情况下,本地 DNS 服务器会将请求转发到互联网上的根域.
TCP/IP 分为四层,在发送数据时,每层都要对数据进行封装:
在前面的步骤我们已经得到服务器的 IP 地址,浏览器会开始构造一个 HTTP 报文,其中包括:

请求报头(Request Header):请求方法、目标地址、遵循的协议等等

请求主体(其他参数)

其中需要注意的点:

浏览器只能发送 GET、POST 方法,而打开网页使用的是 GET 方法
五、浏览器接受响应
浏览器接收到来自服务器的响应资源后,会对资源进行分析。

首先查看 Response header,根据不同状态码做不同的事(比如上面提到的重定向)。

如果响应资源进行了压缩(比如 gzip),还需要进行解压。

然后,对响应资源做缓存。

接下来,根据响应资源里的 MIME[3] 类型去解析响应内容(比如 HTML、Image各有不同的解析方式)。

拓展实现

无,

相关工具如下:

实验效果:(解决思路)

分析:

小结:

主要讲述了关于HTTP自己的一些体会,里面有许多不足,请大家指正~

参考资料和推荐阅读

1.深入理解HTTP协议、HTTP协议原理分析.
2.HTTP协议详解(真的很经典).
3.面试官问:浏览器输入 URL 回车之后发生了什么?.

欢迎阅读,各位老铁,如果对你有帮助,点个赞加个关注呗!~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

执于代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值