查阅资料后,在stackoverflow上找到一个好答案,现在尝试翻译一下
(原文链接what happens when you type in a URL in browser [closed])
要知道从 URL 输入后浏览器发生了什么,在最简单的描述中,我们假设 HTTP 请求没有代理,没有 IPv4 ,所有步骤没有问题:
- 浏览器检查缓存,如果请求对象在缓存里并且是新的,那么跳到步骤9
- 浏览器向系统请求服务器的 IP 地址
- 系统进行 DNS 查找,并将 IP 地址返回给浏览器
- 浏览器与服务器建立 TCP 连接(这一步很复杂因为用到了
HTTPS 。三次握手,若有一次任何一方收不到信息那么将会重新发起 TCP 连接) - 浏览器通过 TCP 连接发送 HTTP 请求
- 浏览器接收 HTTP 请求的响应,并将关闭 TCP 连接或者发起请求
- 浏览器检查响应是重定向还是条件响应(这里会返回状态码:3xx结果状态代码),授权请求(401),错误(4xx和5xx)等;这些与正常响应(2xx)的处理方式不同
- 如果可以缓存,那么响应会保存在缓存中
- 浏览器解码响应
- 浏览器确定如何处理响应(例如,它是HTML页面,它是一个图像,它是一个声音文件吗?)
- 浏览器展现响应,或弹出无法识别的类型的对话框
当然还有一个更加详细的版本,从计算机硬件开始讲起。(点击拓展阅读)
最后向大家分享一个vscode的设置,将git-bash集成到vscode中。