HTTP是什么
超文本传输协议
- http客户端发起请求,创建端口
- http服务器在端口监听客户端请求
- http服务器向客户端返回状态和内容
url 到页面展现的过程
-
chrome 搜索自身的 DNS 缓存 (chrome://net-internals/#dns)
-
搜索操作系统的 DNS 缓存
-
读取本地的 host 文件
-
浏览器发起一个 DNS 的一个系统调用,一般是向网络运营商发
-
网络运营商查看自身的缓存
-
网络运营商发起一个迭代的 DNS 解析请求,向 根域 发
-
根域 从
.com
顶级域开始查找,找到 IP 地址。(url 从后往前查找) -
IP地址返回到操作系统内核
-
操作系统内核把结果返回给浏览器
-
最终浏览器拿到 域名 对应的 IP 地址
-
浏览器获得域名对应的 IP 地址后,发起 HTTP “三次握手”,TCP连接请求
-
第一次握手:主机A发送位码为syn=1,随机产生seq number=1234567的数据包到服务器,主机B由SYN=1知道,A要求建立联机;
-
第二次握手:主机B收到请求后要确认联机信息,向A发送ack number=(主机A的seq+1),syn=1,ack=1,随机产生seq=7654321的包
-
第三次握手:主机A收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack是否为1,若正确,主机A会再发送ack number=(主机B的seq+1),ack=1,主机B收到后确认seq值与ack=1则连接建立成功。
-
TCP/IP 连接建立起来后,浏览器就可以向服务器发送 http 请求了。
-
服务器端接收到了这个请求,根据路径参数,经过后端处理,把处理后的数据返回给浏览器
-
浏览器拿到页面的 HTML 代码后,开始解析,解析到 JS、css、img 等静态资源的时候,同样是一个个 http 请求,都需要经过上面的 7 个步骤。
-
浏览器渲染页面,展现给用户
网友评论