浏览器输入URL访问经历的过程
浏览器构建请求行
浏览器进程会通过进程通信IPC,把URL请求发送至网络进程,网络进程在收到请求后,会发起真正的URL请求
查找强缓存
在发起请求资源之前,先检查强缓存。
DNS解析
域名系统:是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用UDP端口53.当前,对于每一级域名长度的限制是63个字符,域名总长度不能超过253个字符。
DNS解析有两种方式: 递归查询和迭代查询
- 递归查询: 用户先向本地域名服务器查询,如果本地服务器的缓存没有IP地址映射记录,就向根域名服务器查询,根域名服务器就会向顶级域名服务器查询,顶级域名服务器向权限域名服务器查询,查询到结果后依次返回
- 迭代查询:用户向本地域名服务器查询,如果没有缓存,本地域名服务器的会向根域名服务器查询,根域名服务器返回顶级域名服务器的地址,本地域名服务器再向顶级域名服务器查询,得到权限域名服务器的地址,本地域名服务器再向权限域名服务器查询得到结果
客户端与服务端进行TCP三次握手连接
- 最开始双方都是CLOSED关闭状态。然后服务端开启监听某个端口,进入LISTEN状态。
- 客户端发起请求,发送
SYN
,客户端变为SYN_SENT
(同步消息发送)状态 - 服务端收到
SYN
请求,返回一个SYN
和ACK
,变为SYN_REVD
(同步消息接收)状态
当客户端收到服务器返回的的
SYN
和ACK
之后,即可知道服务器能够正常接收
- 客户端收到服务端返回的消息,再向服务端返回一个
ACK
,开始变为ESTABLISHED
状态
当服务器收到客户端发来的
ACK
后,服务端才能知道客户端能够正常接收
- 服务端收到客户端传来的
ACK
之后,变为ESTABLISHED
状态,连接建立