WEB请求的过程
1.用户发送一个url 如:输入www.baidu.com
2.DNS解析器将 这个URL解析成IP地址,根据IP地址找到对应的服务器
3.建立TCP连接
4.发送HTTP请求
5.到达负载均衡服务器,分配用户请求到相应的服务器来处理请求
6.服务器将请求的数据返回给用户
7.关闭TCP连接
8.渲染页面
DNS解析域名
1.先检查本地浏览器缓存中有没有这个域名对应的IP地址
2.如果浏览器缓存中没有,检查操作系统中有没有指定的IP地址(Windows中C:\Windows\System32\drivers\etc\hosts可以设置域名和IP的对应关系)
3.如果没有,操作系统会将域名发送到LDNS(本地域名解析器 Local DNS),一般能解决80%的域名解析
4.如果还是没有找到。会直接向根域名服务器请求解析(Root Server 域名解析器)
5.根域名服务器返回给本地域名服务器一个所查询区域的主域名服务器(gTLD)地址。gTLD是国际顶级域名服务器 如:com、.cn .org等
6.本地域名服务器 向gTLD服务器发送请求
7.gTLD查找并返回此域名对应的Name Server 域名服务器的地址(通常是指你注册的域名服务器)
8.Name Server 域名服务器 会查询域名和IP的映射表 并将IP连同一个TTL值返回给DNS Server域名服务器
9.LDNS会缓存这个域名和IP的对应关系 缓存时间由TTL值决定
10.把解析结果返回给用户
TCP连接的建立
连接建立(三次握手):
第一次:客户端向服务器发送请求报文 SYN=1 seq=x
第二次:服务器接收请求,并向客户端发送确认报文 SYN=1 ACK=1 ack=x+1 seq=y
第三次:客户端接收请求,再次向服务器发送确认请求ACK=1 ack=y+1