输入url的过程(6步):域名解析得到IP地址 -> 建立tcp连接 -> 浏览器发送http请求 -> 服务器处理http请求 -> 浏览器渲染页面 -> 断开tcp连接
1. 域名解析:
当我们在浏览器中输入一个URL,例如”www.baidu.com”时,这个地址并不是百度网站真正意义上的地址。互联网上每一台计算机的唯一标识是它的IP地址,因此我们输入的网址首先需要先解析为IP地址,这一过程叫做DNS解析。
DNS解析是一个递归查询的过程。例如,我们需要解析”www.baidu.com”时,会经历以下步骤:
1.在本地域名服务器中查询IP地址,未找到域名;
2.本地域名服务器回向根域名服务器发送请求,未找到域名;
3.本地域名服务器向.com顶级域名服务器发送请求,未找到域名;
4.本地域名服务器向.baidu.com域名服务器发送请求,找到该域名,将对应的IP返回给本地域名服务器。
2. TCP连接:
HTTP协议是使用TCP协议作为其传输层协议的,在拿到服务器的IP地址后,浏览器客户端会与服务器建立TCP连接。该过程包括三次握手:
1.第一次握手:建立连接时,客户端向服务端发送请求报文
2.第二次握手:服务器收到请求报文后,如同意连接,则向客户端发送确认报文
3.第三次握手,客户端收到服务器的确认后,再次向服务器给出确认报文,完成连接。
三次握手主要是为了防止已经失效的请求报文字段发送给服务器,浪费资源。