过程
1.域名解析
-
浏览器搜索自己的DNS缓存,若没有,则搜索操作系统中的DNS缓存,再找不到,则搜索操作系统的hosts文件(C:\Windows\System32\drivers\etc\hosts)
-
下一步,操作系统将域名发送至 本地域名服务器(递归查询方式),本地域名服务器
查询自己的DNS缓存,查找成功则返回结果,否则,(以下是迭代查询方式)-
本地域名服务器向根域名服务器(其虽然没有每个域名的具体信息,但存储了负责每个域,如com、net、org等的解析的顶级域名服务器的地址)发起请求,此处,根域名服务器返回com域的顶级域名服务器的地址
-
本地域名服务器向com域的顶级域名服务器发起请求,返回baidu.com权限域名服务器(权限域名服务器,用来保存该区中的所有主机域名到IP地址的映射)地址
-
本地域名服务器 向baidu.com权限域名服务器发起请求,得到www.baidu.com的IP地址
-
-
本地域名服务器 将得到的IP地址返回给操作系统,同时自己也将IP地址缓存起来
-
操作系统将 IP 地址返回给浏览器,同时自己也将IP地址缓存起来
2.进行TCP三次握手过程建立连接
3.建立TCP连接后发起HTTP请求
4.服务器响应HTTP请求
5.浏览器解析HTML代码,请求HTML代码中的资源
6.断开TCP连接
四次挥手过程:
- TCP客户端发送一个FIN,用来关闭客户到服务器的数据传送。
- 服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。
- 服务器关闭客户端的连接,发送一个FIN给客户端。
- 客户端发回ACK报文确认,并将确认序号设置为收到序号加1。