1 从输? URL 到??展示到底发?了什么?
1.
先检查浏览器缓存?是否有缓存该资源,如果有直接返回;如果没有进?下? 步?络请求。
2.
?络请求前,进?
DNS
解析 ,以获取请求域名的
IP地址 。
3.
浏览器与服务器IP建?TCP连接
。
如果请求协议是
HTTPS
,那么还需要
建?
TLS
连接。
连接建?后,向服务器构建请求信息。
4.
服务器?成响应数据。
5. 浏览器解析响应头。
6. 如果是HTML文件,
解析
HTML
?件,
构建渲染树并渲染。
2 DNS域名解析
DNS服务器保存域名与IP地址的对应关系。
域名的层级关系类似?个树状结构:
根 DNS 服务器( . )? ? ? ? 根域的 DNS 服务器信息 保存在互联?中 所有的 DNS 服务器中。
顶级域 DNS 服务器( .com )
权威 DNS 服务器( server.com )
过程:查询? 浏览器缓存——本地host文件——本地DNS服务器
1.客户端首先向本地DNS服务器发出请求
2.本地DNS服务器首先查询缓存,若有,则返回;否则,本地DNS服务器向根域名服务器查询;
3.根域名服务器将对应的顶级域名服务器(.com)的地址传递给本地DNS服务器;
4.本地DNS服务器向顶级域名服务器查询;
5.顶级域名服务器将对应权威域名服务器(www.server.com)地址传给本地域名服务器;
6....
?
3 三次握手
- 第一次握手(SYN):随机初始化一个序号,将SYN标志位置为1。发送后,客户端处于SYN_SENT状态
- 第二次握手(SYN+ACK):服务端收到客户端的SYN报文,随机初始化序号,并将确认应答号置为客户端序号+1.将SYN和ACK标志位都置为1.发送后,服务端处于SYN_RCVD状态
- 第三次握手(ACK):确认应答号置为服务端序号+1,ACK置为1.不携带数据,序号和第一次握手相同;携带数据,序号增加。发送完,客户端处于ESTABLISHED状态。
- 服务端收到第三次握手,处于ESTABLISHED状态,连接建立完成。
第三次握手可携带数据,前两次不行。
在socket编程中,客户端执行connect()时,将触发三次握手.
为什么要三次握手?不是两次,四次?
?
?