jyzwf / blog

在Issues里记录技术得点滴
17 stars 3 forks source link

鼠标点击一个链接后发生了啥 #41

Open jyzwf opened 6 years ago

jyzwf commented 6 years ago

当我们在浏览器输入URL按回车或者点击一个链接的时候发生了啥?

以访问 http://jyzwf.github.io/page/index.html 为例:

1) 浏览器分析链接指向页面的URL(http://jyzwf.github.io/page/index.html) 2) 浏览器向 DNS 请求解析 jyzwf.github.io/的 IP地址 3) 域名系统DNS 解析出上面网址服务器的 IP地址 4) 浏览器与该服务器建立 TCP 连接(默认端口号 80,三次握手 ) 5) 浏览器发出 HTTP 请求: GET /page/index.html 6) 服务器通过 HTTP 响应把文件 index.html发送给浏览器 7) TCP 连接释放(四次挥手) 8) 浏览器将文件 index.html 进行解析,并将 Web页显示给用户

关于为什么是三次握手而不是两次或者其他,可以参考知乎上的回答: TCP 为什么是三次握手,为什么不是两次或四次?

下面摘取一个不错的回答

三次握手: “喂,你听得到吗?” “我听得到呀,你听得到我吗?” “我能听到你,今天balabala……”

两次握手: “喂,你听得到吗?” “我听得到呀” “喂喂,你听得到吗?” “草,我听得到呀!!!!” “你TM能不能听到我讲话啊!!喂!” “……”

四次握手: “喂,你听得到吗?” “我听得到呀,你听得到我吗?” “我能听到你,你能听到我吗?” “……不想跟傻逼说话”

三次握手

v2-576b043d12353928eea6e45373655668_hd

四次挥手

v2-c8b61ed2a249700583b11bc5d16c5711_r

为啥不是两次握手

image