在浏览器中输入一个网址后(DNS解析)
什么是DNS
- DNS(Domain Name System)
- DNS服务是和HTTP协议一样位于应用层的协议
- 它提供域名到IP地址之间的解析服务
查询DNS,获取域名对应IP(DNS 解析)
- 浏览器输入 www.bilibili.com,敲回车
- 浏览器会先查找本地的 DNS 缓存,如果有对应的记录, 就可以直接拿到域名对应的 IP 地址,然后就可以直接访问对应的服务器
- 假设缓存中找不到,就会先在本地的 hosts 文件中查找相应的域名和 IP 地址是否存在
- 假设 hosts 文件中也找不到,那么浏览器就会把查询请求发送到本地电脑网络设置中的 DNS 服务器上,一般是自动设置好的,自动设置的 DNS 地址一般是管理 wifi 路由器的 IP 地址;当然也可以手动设置,比如常见的 Google DNS 服务器 8.8.8.8
- 假设如果本地DNS服务器也失效:
- 如果未采用转发模式(迭代),本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后,会判断这个域名(如.com)是谁来授权管理,并返回一个负责该顶级域名服务器的IP,本地DNS服务器收到顶级域名服务器IP信息后,继续向该顶级域名服务器IP发送请求,该服务器如果无法解析,则会找到负责这个域名的下一级DNS服务器(如http://baidu.com)的IP给本地DNS服务器,循环往复直至查询到映射结束;
- 如果采用转发模式(递归),则此DNS服务器就会把请求转发至上一级DNS服务器,如果上一级DNS服务器不能解析,则继续向上请求。
进行TCP连接
- 浏览器终于得到了IP以后,向服务器发送TCP连接,TCP连接经过三次握手。
浏览器发送HTTP请求
服务器处理请求
- 同上。
关闭TCP连接
- 连接经过四次挥手