“浏览器输入URL后回车后,会发生什么?”,嗯嗯,很经典的问题
概括性大致流程是这样的:
(1)查询URL对应的IP地址(DNS域名解析)
(2)建立TCP连接,连接服务器
(3)浏览器发起请求
(4)服务器响应浏览器请求
(5)浏览器解析响应,渲染页面
(6)关闭TCP连接
下面对具体流程以及过程优化做表述:
Step1:DNS域名解析
(1)浏览器搜索浏览器的DNS缓存,看自身的缓存中是否有该URL对应的ip地址条目,而且没有过期,如果有且未过期则解析到此结束;
(2)浏览器缓存中没有,浏览器查找系统缓存中是否有该URL对应的DNS解析结果。操作系统中也会有一个域名解析的过程,在windows中可以通过hosts文件设置,Linux中配置文件是/etc/named.conf,查看文件里是否有该域名对应的IP地址,有即解析结束(hosts文件主要定义IP地址和主机名的映射关系,可以使用文本文件打开,当用户在浏览器中输入一个需要登录的网址,系统会自动从hosts文件中查找对应的ip地址,找到,浏览器会立即打开对应网页);
(3)未命中,浏览器会向