What happened if you tap a URL at a browser?

当你输入一个网址的时候,实际会发生什么?

原文

译文

知乎译文

Hawstein:一步一步地解释一下,在你往浏览器中输入一个URL后都发生了什么

从输入 URL 到页面加载完成的过程中都发生了什么事情?

为了粗略的简化模型,假设发的是简单的HTTP请求,没有代理,ipv4网络(ipv6网络也是一样的)

1.浏览器检查cache,如果请求的对象在cache中,而且是最新的,跳到9

2.浏览器请求操作系统对方服务器的IP地址

3.操作系统进行DNS查询(host文件),把IP发给浏览器

4.浏览器打开和服务器之间的TCP链接(HTTPS的这个步骤会更加复杂)

5.浏览器通过TCP协议发送HTTP请求。

6.浏览器接收HTTP响应,接着可能关闭TCP链接,或者重用这个链接发其他请求

7.浏览器检查HTTP响应是不是一个重定向请求(3XX) ,认证请求(401),错误消息(4XX and 5XX),等,这些消息通过不同的响应来处理,如果正常的则返回(2XX)

8.如果缓存了,响应存在cache当中

9.浏览器器解码一个一个消息响应

10.浏览器决定怎样处理这个响应(可能是一个HTML页面,一张图片等)

11.浏览器给予响应,或者提供下载对话框

还有一些同时发生的事情,比如,把你输入的地址加到浏览器记录,给用户显示加载进度,通知插件和扩展,下载的时候render页面,为了保活(keep-alive)来跟踪连接等。

results matching ""

    No results matching ""