浏览器中输入一个URL至页面呈现

2017-06-09  本文已影响0人  调皮的小卷羊
5930683-180a665c4d9983a6.png
  1. DNS解析
    查找浏览器缓存
    查找操作系统缓存
    查找路由器缓存
    查找ISP DNS 缓存
    递归查找

查询根域名服务器 是否有目标域名的信息,如果没有,则传至 子域名服务器 进行查询

DNS解析过程

2.TCP连接
在通过第一步的DNS域名解析后,获取到了服务器的IP地址,在获取到IP地址后,便会开始建立一次连接,这是由TCP协议完成的,主要通过三次握手进行连接。
第一次握手: 建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;
第二次握手: 服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手: 客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。
完成三次握手,客户端与服务器开始传送数据。

TCP三次握手

3.浏览器向服务器发送HTTP请求

HTTP请求

4.浏览器接收响应

服务器在收到浏览器发送的HTTP请求之后,会将收到的HTTP报文封装成HTTP的Request对象,并通过不同的Web服务器进行处理,处理完的结果以HTTP的Response对象返回,主要包括状态码,响应头,响应报文三个部分。

5.浏览器渲染
渲染HTML页面

解析DOM、CSSOM

根据DOM、CSSOM计算render tree

根据render tree进行layout

渲染到页面

6.关闭TCP连接或继续保持连接

TCP四次挥手

第一次挥手是浏览器发完数据后,发送FIN请求断开连接。
第二次挥手是服务器发送ACK表示同意,如果在这一次服务器也发送FIN请求断开连接似乎也没有不妥,但考虑到服务器可能还有数据要发送,所以服务器发送FIN应该放在第三次挥手中。
这样浏览器需要返回ACK表示同意,也就是第四次挥手。

上一篇下一篇

猜你喜欢

热点阅读