HTTP——从输入网址到显示网页的过程中发生了什么

一共有以下几步:

  1. DNS解析
  2. 发起TCP连接
  3. 发起HTTP请求
  4. 服务器处理请求并返回HTTP报文
  5. 浏览器解析渲染页面
  6. 连接结束

一、DNS解析

DNS解析是在DNS服务器上查询你所输入的域名对应的IP地址(因为IP地址才是访问网页的唯一标识)。

查询顺序:浏览器缓存——本地DNS服务器——根域名服务器——顶级域名服务器——权威域名服务器。

DNS解析是一个递归的过程,浏览器只需要发起一次请求,接下来由域名服务器代为发送下一级请求。

(1)在区域传输时DNS使用TCP协议

辅域名服务器会定时(一般3小时)向主域名服务器查询数据是否有变动,如果有变动,会进行一次区域传输,因为数据量较大,所以会使用TCP协议。

(2)在域名解析时DNS使用UDP协议

因为返回的域名一般不超过512字节,UDP协议响应更快,用UDP即可。

二、发起TCP连接

三次握手:

  1. 客户端向服务器发送SYN包(seq=x),并进入SYN_SEND状态
  2. 服务器接收到客户端发来的SYN包,会返回一个ACK包(ack=x+1),同时自己也发送一个SYN包(seq=y),然后服务器进入SYN_RECV状态
  3. 客户端接收到服务器的SYN+ACK包,然后返回一个ACK包(ack=y+1),发送完后,客户端和服务器进入ESTIBLISHED状态,完成三次握手

三、发送HTTP请求

客户端构建HTTP请求报文发送至服务器:请求行、请求报头和请求正文

四、服务器处理请求并返回HTTP报文

服务器对HTTP请求进行解析,一般有Web服务器进行处理。如TomCat、Nginx、Apache。

响应报文:响应行(状态码)、响应报头和响应报文。

五、浏览器解析渲染页面

  1. 解析HTML形成DOM树
  2. 解析CSS形成CSSOM树
  3. 合并DOM和CSSOM树形成渲染树
  4. 浏览器开始渲染网页(重绘、回流)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值