浏览器工作原理(3):HTTP请求流程

在浏览器的地址栏中输入 http://blog.xyb.cool ,浏览器是如何进行 HTTP 请求拿到资源的呢?

  1. 首先需要构建 HTTP 请求

    浏览器会构建一个请求行信息

    GET http://blog.xyb.cool HTTP1.1
    
  2. 查找缓存

    发起请求前,浏览器会查看该资源是否命中强缓存,如果没命中则进行协商缓存的请求。

  3. 准备服务器端口和ip地址

    浏览器使用域名访问服务器,那浏览器是如何知道服务器的 IP 地址的呢?

    在网络中有一项服务叫 DNS域名系统 ,这个服务的作用就是把域名和IP地址一一映射,使得不用输入形如 http:// 10.152.66.4url,而使用域名替代繁琐的IP地址,这就是 DNS 的主要作用。

    浏览器首次请求该域名 -> 本地无DNS缓存 -> 请求网络中的 DNS 服务器,获得目标主机的 IP

    浏览器二次请求该域名 -> 本地有DNS缓存 -> 使用浏览器本身的DNS缓存,获得目标主机的 IP

  4. 等待 TCP 队列

    有些浏览器对 TCP 连接会有限制,比如谷歌浏览器,一个域名最多只能建立6个TCP连接,如果超过这个数,只能进入TCP队列等待之前的连接完成。

  5. 建立 TCP 连接

    三次握手四次挥手建立连接

    注意:一旦服务器向客户端发送完数据以后就要断开连接,

  6. 发送 HTTP 请求

    把带有 请求行请求头请求体,的请求发送给服务器。

  7. 获取 HTTP响应

    得到服务器的响应,在浏览器上进行渲染。

    特殊情况:301重定向,重定向的地址为响应头中的 location 字段。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值