浏览器与服务器交互 ref:输入URL到页面加载发生的事情
(在浏览器中输入URL到整个页面显示在用户面前时这个过程中到底发生了什么)
大体过程
a.DNS域名解析(浏览器向DNS请求解析网址的IP地址)
b.浏览器与服务器 进行TCP连接(三次握手)
c.建立TCP连接后浏览器发起http请求
d.服务端响应http请求,返回响应报文
e.浏览器页面渲染
f.断开TCP连接
详细介绍
a.域名解析
DNS采用C/S模型(客户/服务器),协议运行在UDP之上,使用53端口
域名解析:域名映射成IP地址或IP地址映射成域名
解析过程
域名解析有两种方式:递归查询和递归与迭代查询
过程:
先在缓存中查找是否有域名解析结果
1)向本地域名服务器查询IP地址,没有的话
2)本地域名服务器向根域名服务器发送查询请求,没有的话根域名服务器告知,
3)本地域名服务器向顶级域名服务器发送查询。。。。。
以此类推
4)查询到后反馈给主机
将查询结果保存到本地缓存
DNS优化:
每次查询都经历8个步骤,耗时,故优化—> DNS 缓存
DNS负载均衡:
DNS可以返回一个合适的机器的IP给用户,例如可以根据每台机器的负载量,该机器离用户地理位置的距离等等,这种过程就是DNS负载均衡,又叫做DNS重定向。
CDN全称Content Delivery Network,即 内容分发网络
b.三次握手
第一次握手:建立连接时,客户端向服务端发送请求报文(SYN)
第二次握手:服务器收到请求报文后,如同意连接,则向客户端发送确认报文(SYN/ACK)
第三次握手:客户端收到服务器的确认后,再次向服务器发送确认报文,完成连接(ACK)
三次握手原因