Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
jyzwf opened this issue Jan 18, 2018 · 0 comments
Open

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

jyzwf opened this issue Jan 18, 2018 · 0 comments

Comments

@jyzwf
Copy link
Owner

jyzwf commented Jan 18, 2018

当我们在浏览器输入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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant