浏览器输入url回车后会发生什么呢?
在平时我们访问一个网址的是够,在浏览器属于对应域名,然后点击回车就会跳转到对应想要的页面。那么从输入点击回车到得到我们想要的页面都发生了哪些事情呢?
一、解析URL
按下回车,浏览器开始解析URL,通过URL,浏览器就可以知道下面信息: (1)请求协议:(http还是https等等) (2)服务器:(通常是域名,也可以是IP地址) (3)端口号:例如80端口 (4)请求资源页 (5)查询参数 如果url不合法就会使用默认的搜索引擎进行搜索,如果输入的是一个域名,默认会加上一个http前缀。如果合法就可以进行跳转。
二、DNS查询
根据域名得到目标主机的IP地址才能进行访问。
首先查询浏览器缓存检查浏览器的DNS缓存,如果没有找到, 检查系统缓存检查本地host文件的缓存,这个文件保存了一些以前访问过的网站的域名和IP的数据。没有找到就需要检查路由器缓存,路由器也有自己的DNS缓存,可能就包括了 查询的内容;如果仍然没有会向本地DNS服务器发送请求,最终本地DNS服务器得到域名和IP地址的映射关系,把结果返回给用户并进行缓存。
三、TCP连接
得到IP地址后通过TCP三次握手建立连接,并发送请求报文传输数据。 连接建立好之后就可以进行通信了
发送HTTP请求,返回响应
客户端向服务器发送http请求报文,主机进程进行监听,创建子进程处理,先判断是否重定向,如果是重定向则返回重定向地址。如果是静态资源则直接返回,否则通过REST URL在代码层处理,最后返回响应报文。
浏览器收到HTTP响应报文后进行解析,首先检查响应报文的状态码,根据不同的状态码做不同的处理。之后解析HTML,CSS,JS等文件,构建DOM树,渲染树,重绘。最后将像素发送GPU进行渲染,将渲染结果返回给用户并进行缓存。
断开连接
通过TCP的四次挥手断开连接,如果是HTTP1.1则会将连接保持一小段时间
上一篇:
Java架构师技术进阶路线图