浏览器与服务器交互 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地址映射成域名

解析过程

域名解析有两种方式:递归查询和递归与迭代查询

2020秋招面试-网络篇
过程:
先在缓存中查找是否有域名解析结果
1)向本地域名服务器查询IP地址,没有的话
2)本地域名服务器向根域名服务器发送查询请求,没有的话根域名服务器告知,
3)本地域名服务器向顶级域名服务器发送查询。。。。。
以此类推
4)查询到后反馈给主机
将查询结果保存到本地缓存

DNS优化:
每次查询都经历8个步骤,耗时,故优化—> DNS 缓存

DNS负载均衡:
DNS可以返回一个合适的机器的IP给用户,例如可以根据每台机器的负载量,该机器离用户地理位置的距离等等,这种过程就是DNS负载均衡,又叫做DNS重定向

CDN全称Content Delivery Network,即 内容分发网络

b.三次握手

2020秋招面试-网络篇
第一次握手:建立连接时,客户端向服务端发送请求报文(SYN)

第二次握手:服务器收到请求报文后,如同意连接,则向客户端发送确认报文(SYN/ACK)

第三次握手:客户端收到服务器的确认后,再次向服务器发送确认报文,完成连接(ACK)

三次握手原因

f.四次挥手

相关文章: