当您在浏览器中inputurl时会发生什么情况

有人能告诉我从浏览器中inputurl的时间到在浏览器上看到网页的时间,幕后发生了什么? 详细的过程将是非常有帮助的。

在一个非常粗略和简化的草图中,假设最简单的HTTP请求,没有代理,IPv4和任何步骤都没有问题:

  1. 浏览器检查caching; 如果请求的对象在caching中并且是新鲜的,则跳至#9
  2. 浏览器向操作系统请求服务器的IP地址
  3. OS进行DNS查找并将IP地址回复给浏览器
  4. 浏览器打开一个到服务器的TCP连接(这一步用HTTPS更复杂)
  5. 浏览器通过TCP连接发送HTTP请求
  6. 浏览器接收到HTTP响应,可能会closuresTCP连接,或将其重新用于其他请求
  7. 浏览器检查响应是redirect还是条件响应(3xx结果状态码),授权请求(401),错误(4xx和5xx)等。 这些处理与正常响应不同(2xx)
  8. 如果可caching,则响应存储在caching中
  9. 浏览器解码响应(例如,如果它被解压缩)
  10. 浏览器决定如何处理响应(例如,它是一个HTML页面,是一个图像,是一个声音剪辑?)
  11. 浏览器呈现响应,或为无法识别的types提供下载对话框

再次,对这些点的讨论已经填满了无数的页面; 把这只作为一个简短的总结。 此外还有许多其他事情正在发生(处理input地址,预测性预取,向浏览器历史添加页面,向用户显示进度,通知插件和扩展,在下载时渲染页面,stream水线,连接跟踪保持活跃,检查恶意内容等),而且整个操作在HTTPS(证书和密码以及pinning,哦,我的!

首先,计算机查找目标主机。 如果它存在于本地DNScaching中,则使用该信息。 否则,执行DNS查询,直到findIP地址。

然后,浏览器打开一个到目标主机的TCP连接,并根据HTTP 1.1发送请求(或者使用HTTP 1.0,但是普通浏览器不会再这样做)。

服务器查找所需资源(如果存在)并使用HTTP协议进行响应,将数据发送到客户端(=您的浏览器)

然后,浏览器使用HTMLparsing器重新创build稍后在屏幕上呈现给您的文档结构。 如果它find对外部资源的引用,如图片,css文件,javascript文件,这些文件就像HTML文档本身一样传递。

查找HTTP的规范。 或者要开始,请尝试http://www.jmarshall.com/easy/http/