-
在浏览器输入url后,浏览器先判断是否有且使用本地缓存,是的话,直接返回请求的内容。
-
没有缓存,或者有缓存但是策略是不使用,则发起DNS域名解析请求。
DNS(Domain Name 域名系统),用于将主机名和域名解析成IP地址。
(1) DNS解析首先检查浏览器缓存中是否有该域名解析过的IP地址,有的话直接返回。
(2) 没有的话,检查操作系统中是否有,有则直接返回。
(3) 没有则请求本地域名服务器,有则直接返回。
(4) 没有则请求根域名服务器,根域名服务器返回顶级域名服务器地址。(根域名服务器中有所有顶级域名服务器的IP和域名)
(5)本地域名服务器拿到顶级域名服务器地址后,请求顶级域名服务器,获得实际所需请求的服务器的IP地址后返回给主机。
- 获取到服务器的IP地址后,在发送http请求之前,需要浏览器和服务器建立一条TCP/IP通道。
- 套接字socket:IP+端口号
- 一次TCP链接: 建立链接(3次握手),数据传输, 断开链接(4次挥手)。
- 3次握手:
A:“喂,你听得到吗?”
B:“我听得到呀,你听得到我吗?”
A:“我能听到你”- 4次挥手:
A: hi,我要关闭连接了
B: 好的,我收到了,我不接受你的数据了
B: hi,我也想关闭连接了
A: 好的,我不接收你的数据了。
- 建立TCP/IP链接后,就可以发送http请求了。浏览器按指定格式向服务器发送http请求。服务器收到http请求后,解析http请求,处理完业务逻辑,返回一个http响应给客户端。
原文:【一文读懂一个URL请求的过程是怎样的】
juejin.cn/post/684490…