从你在浏览器输入url到发起http请求,这过程到底发生了什么?

以下内容已屏蔽图片优化访问速度
[IMG]
原文:[IMG]Chrome 会根据历史统计来预估所输入字符对应的网站,例如输入goog,根据之前的历史发现 90% 的概率会访问「www.google.com 」,因此就会在输入回车前就马上开始建立 TCP 链接甚至渲染了。
接着是输入url之后,点击回车,这时浏览器会对 URL 进行检查,首先判断协议,如果是 [IMG]就按照 Web 来处理,另外还会对这个 URL 进行安全检查
安全检查完成之后,在浏览器内核中会先查看缓存,然后设置 UA 等 HTTP 信息,接着调用不同平台下网络请求的方法。
注意:
浏览器和浏览器内核是不同的概念,浏览器指的是 Chrome、Firefox,而浏览器内核则是 Blink、Gecko,浏览器内核只负责渲染,GUI 及网络连接等跨平台工作则是浏览器实现的
[IMG]DNS 查询 IP;
通过 Socket 发送数据
dns查询ip
DNS,英文是Domain Name System,中文叫域名系统,是Internet的一项服务,他将域名和IP地址相互映射的一个分布式数据库
假设用户在浏览器中输入的是www.google.com,大概过程:
如果输入的是域名,则需要进行dns查询,将域名解析成ip;
进行DNS查询的主机或软件叫做DNS解析器,用户使用的工作站或电脑都属于解析器。域名解析就是利用DNS解析器得到对应IP过程,解析器会向域名服务器进行查询处理。
主要过程如下:
从浏览器缓存中查找域名www.google.com的IP地址
在浏览器缓存中没找到,就在操作系统缓存中查找,这一步中也会查找本机的hosts看看有没有对应的域名映射(当然已经缓存在系统DNS缓存中了)
在系统中也没有的话,就到你的路由器来查找,因为路由器一般也会有自己的DNS缓存
如果以上都没有找到,则继续往下向dns域名服务器查询
用户电脑的解析器向LDNS(也就是Local DNS,互联网服务提供商ISP),发起域名解析请求,查询www.google.com的IP地址,这是一个递归查找过程
在缓存没有命中的情况下,LDNS向根域名服务器.查询www.google.com的IP地址,LDNS的查询过程是一个迭代查询的过程
根告诉LDNS,我不知道www.google.com对应的IP,但是我知道你可以问com域的授权服务器,这个域归他管
LDNS向com的授权服务器问www.google.com对应的IP地址
com告诉LDNS,我不知道www.google.com对应的IP,但是我知道你可以问google.com域的授权服务器,这个域归他管
LDNS向google.com的授权服务器问www.google.com对应的IP地址
google.com查询自己的ZONE文件(也称区域文件记录),找到了www.google.com对应的IP地址,返回给LDNS
LDNS本地缓存一份记录,把结果返回给用户电脑的解析器
在这之后,用户电脑的解析器拿到结果后,缓存在自己操作系统DNS缓存中,同时返回给浏览器,浏览器依旧会缓存一段时间。
注意,
域名查询时有可能是经过了CDN调度器的(如果有cdn存储功能的话)
而且,需要知道dns解析是很耗时的,因此如果解析域名过多,会让首屏加载变得过慢,可以考虑dns-prefetch优化
tcp/ip请求
有了 IP 地址,就可以通过 Socket API 来发送数据了,这时可以选择 TCP 或 UDP 协议。
[IMG]6,[IMG]HTTP 2.0 协议尽管只使用一个 TCP 连接来传输数据,但性能反而更好,而且还能实现请求优先级。
推荐阅读
精心整理|公众号文章目录大全

技术人如果不懂性能优化,怎么玩....?

10 个实战及面试常用 Shell 脚本编写

某工程师……

一组漫画完美总结互联网人生
JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof使用详解

搞定Linux Shell文本处理工具,看完这篇集锦就够了
·end·
—写文不易,你的转发就是对我最大的支持—
我们一起愉快的玩耍吧
[IMG]
目前40000+人已关注加入我们
[IMG] [IMG] [IMG] [IMG] [IMG] [IMG] [IMG] [IMG]
[IMG] [IMG] [IMG] [IMG] [IMG] [IMG] [IMG] [IMG]
关注公众号点击菜单“微信群” 入群与小伙伴一起交流吧!
[IMG]
喜欢,就扫码关注给它增加一个读者吧!


点击【阅读原文】公众号所有的精华都在这里!
因为老妈一直便秘,他发明了一个凳子,顺便赚了几个亿! 学会这2点,轻松看懂MySQL慢查询日志 人口只有800万,却诞生了3.8万科学家,人人都敢创业,这个国家实在太让人上瘾了! 程序员专属对联,句句扎心 褚时健走了,享年91岁:人活着,究竟是为了什么?
好看吗?
总执行时间0.01234889030456543,文章查询时间0.0020775794982910156,分类查询时间0.009338617324829102,其他脚本0.00010943412780761719,模板渲染0.0008232593536376953