一次完整的http请求过程

本文详细阐述了一个完整的HTTP请求从DNS查找、TCP三次握手到浏览器渲染页面的全过程,涵盖了DNS解析、TCP连接建立、HTTP请求发送、服务器响应及页面渲染等步骤。同时,介绍了网络交互中的关键时间点,如Queueing、Stalled、TTFB等,帮助理解网页加载性能优化的重要指标。
摘要由CSDN通过智能技术生成

一个完整的 HTTP 请求需要经历 DNS 查找,TCP 握手,浏览器发出 HTTP 请求,服务器接收请求,服务器处理请求并发回响应,浏览器接收响应等过程:

  • 首先请求dns服务器(会首先在浏览缓存中获取,找不到就会去host文件中获取,最后才会dns获取),对www.xxx.com进行域名解析,获取ip等信息

  • 根据拿到的服务器的地址信息,发起发起TCP的3次握手
    (1)第一次握手:Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。
    (2)第二次握手:Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值seq=K,并将该数据包发送给Client以确认连接请求,Server进入SYN_RCVD状态。
    (3)第三次握手:Client收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给Server,Server检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,Client和Server进入ESTABLISHED状态,完成三次握手,随后Client与Server之间可以开始传输数据了。

  • 建立TCP连接后,向服务器发起http请求

  • 服务器响应http请求,向浏览器发送html代码

  • 浏览器解析html代码,并请求html代码中的资源(如js、css、图片等)

  • 浏览器对页面进行渲染呈现给用户

  • 关闭TCP连接
    接下来看下例子帮助大家理解一下
    在这里插入图片描述

    名词解释:

  • Queueing: 在请求队列中的时间。

  • Stalled: 从TCP 连接建立完成,到真正可以传输数据之间的时间差,此时间包括代理协商时间。

  • Proxy negotiation: 与代理服务器连接进行协商所花费的时间。

  • DNS Lookup: 执行DNS查找所花费的时间,页面上的每个不同的域都需要进行DNS查找。

  • Initial Connection / Connecting: 建立连接所花费的时间,包括TCP握手/重试和协商SSL

  • SSL: 完成SSL握手所花费的时间。

  • Request sent: 发出网络请求所花费的时间,通常为一毫秒的时间。

  • Waiting(TFFB): TFFB 是发出页面请求到接收到应答数据第一个字节的时间。

  • Content Download: 接收响应数据所花费的时间。

欢迎加入前端群,一起学习讨论,永久有效:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值