从 URL 输入后浏览器发生了什么

查阅资料后,在stackoverflow上找到一个好答案,现在尝试翻译一下
(原文链接what happens when you type in a URL in browser [closed])

要知道从 URL 输入后浏览器发生了什么,在最简单的描述中,我们假设 HTTP 请求没有代理,没有 IPv4 ,所有步骤没有问题:

  1. 浏览器检查缓存,如果请求对象在缓存里并且是新的,那么跳到步骤9
  2. 浏览器向系统请求服务器的 IP 地址
  3. 系统进行 DNS 查找,并将 IP 地址返回给浏览器
  4. 浏览器与服务器建立 TCP 连接(这一步很复杂因为用到了
    HTTPS 。三次握手,若有一次任何一方收不到信息那么将会重新发起 TCP 连接)
  5. 浏览器通过 TCP 连接发送 HTTP 请求
  6. 浏览器接收 HTTP 请求的响应,并将关闭 TCP 连接或者发起请求
  7. 浏览器检查响应是重定向还是条件响应(这里会返回状态码:3xx结果状态代码),授权请求(401),错误(4xx和5xx)等;这些与正常响应(2xx)的处理方式不同
  8. 如果可以缓存,那么响应会保存在缓存中
  9. 浏览器解码响应
  10. 浏览器确定如何处理响应(例如,它是HTML页面,它是一个图像,它是一个声音文件吗?)
  11. 浏览器展现响应,或弹出无法识别的类型的对话框

当然还有一个更加详细的版本,从计算机硬件开始讲起。(点击拓展阅读)

最后向大家分享一个vscode的设置,将git-bash集成到vscode中。


QQ截图20170505095127.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容