1. 域名解析
- 浏览器搜索自己的DNS缓存
- 若没有 ,搜索操作系统的DNS缓存
- 若没有,搜索操作系统中hosts文件中是否有
- 若没有,操作系统将域名发送到本地域名服务器,本地域名服务器查询自己的DNS缓存(递归查询)
- 若没有(迭代查询)
- 本地域名服务器向根域名服务器发送请求,根域名服务器返回如com域的顶级域名服务器地址
- 本地域名服务器向顶级域名服务器发送请求,返回权限域名服务器地址
- 本地域名服务器向权限域名服务器发送请求,会得到具体的IP地址
- 本地域名服务器将IP地址返回给操作系统,同时自己也将IP地址缓存起来
- 操作系统将IP地址返回给浏览器,并且自己将IP地址缓存起来
- 浏览器得到了相应的IP地址
2. 发起TCP三次握手
3. 建立TCP连接后发送HTTP请求
- 构建应用层请求HTTP报文
- 传输层添加TCP头部(可能需要分割数据)
- 网络层添加IP头部
- 数据链路层添加以太网协议头部
- 数据经过交换机,路由器转发,最终达到目标服务器,目标服务器同样解析数据,最终拿到http报文。