浏览器工作原理:浅析HTTP请求流程

一个 TCP 连接过程包括了建立连接、传输数据和断开连接三个阶段。

  而 HTTP 协议,正是建立在 TCP 连接基础之上的。HTTP 是一种允许浏览器向服务器获取资源的协议,是 Web 的基础,通常由浏览器发起请求,用来获取不同类型的文件,例如 HTML 文件、CSS 文件、JavaScript 文件、图片、视频等。此外,HTTP 也是浏览器使用最广的协议,所以要想学好浏览器,就要先深入了解 HTTP

  不知道你是否有过下面这些疑问:

1、为什么通常在第一次访问一个站点时,打开速度很慢,当再次访问这个站点时,速度就很快了?

2、当登录过一个网站之后,下次再访问该站点,就已经处于登录状态了,这是怎么做到的呢?

  这一切的秘密都隐藏在 HTTP 的请求过程中。所以,在今天这篇文章中,我将通过分析一个 HTTP 请求过程中每一步的状态来带你了解完整的 HTTP 请求过程,希望你看完这篇文章后,能够对 HTTP 协议有个全新的认识。

一、浏览器端发起 HTTP 请求流程

1、 构建请求

  首先,浏览器构建请求行信息(如下所示),构建好后,浏览器准备发起网络请求。

GET /index.html HTTP1.1

2、查找缓存

  在真正发起网络请求之前,浏览器会先在浏览器缓存中查询是否有要请求的文件。其中,浏览器缓存是一种在本地保存资源副本,以供下次请求时直接使用的技术。当浏览器发现请求的资源已经在浏览器缓存中存有副本,它会拦截请求,返回该资源的副本,并直接结束请求,而不会再去源服务器重新下载。

  这样做的好处有:

  缓解服务器端压力,提升性能(获取资源的耗时更短了);

  对于网站来说,缓存是实现快速资源加载的重要组成部分。

  当然,如果缓存查找失败,就会进入网络请求过程了。

3、准备 IP 地址和端口

  不过,先不急,在了解网络请求之前,我们需要先看看 HTTP 和 TCP 的关系。因为浏览器使用 HTTP 协议作为应用层协议,用来封装请求的文本信息;并使用 TCP/IP 作传输层协议将它发到网络上,所以在 HTTP 工作开始之前,浏览器需要通过 TCP 与服务器建立连接。也就是说 HTTP 的内容是通过 TCP 的传输数据阶段来实现的,你可以结合下图更好地理解这二者的关系。

  那接下来你可以思考这么“一连串”问题:

(1)HTTP 网络请求的第一步是做什么呢?结合上图看,是和服务器建立 TCP 连接。

(2)那建立连接的信息都有了吗?建立 TCP 连接的第一步就是需要准备 IP 地址和端口号。

(3)那怎么获取 IP 地址和端口号呢?这得看看我们现在有什么,我们有一个 URL 地址࿰

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

火兰

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

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

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

打赏作者

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

抵扣说明:

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

余额充值