浏览器输入地址访问网页过程

  1. 浏览器输入地址

当在浏览器中输入网址的时候,浏览器其实就可能的匹配可能得 url 了,它会从历史记录,书签等地方,找到已经输入的字符串可能对应的 url,然后给出智能提示,让你可以补全url地址。对于 google的chrome 的浏览器,它甚至会直接从缓存中把网页展示出来,就是说,你按下回车回车之前,页面就出来了。

  1. 浏览器查找域名的 IP 地址(DNS)

请求一旦发起,浏览器首先要做的事情就是解析这个域名,一般来说,浏览器会首先查看本地硬盘的 hosts 文件,看看其中有没有和这个域名对应的规则,如果有的话就直接使用 hosts 文件里面的 ip 地址。如果在本地的 hosts 文件没有能够找到对应的 ip 地址,浏览器会发出一个 DNS请求到本地DNS服务器 。本地DNS服务器一般都是你的网络接入服务器商提供,比如移动、联通、电信。查询你输入的网址的DNS请求到达本地DNS服务器之后,本地DNS服务器会首先查询它的缓存记录,如果缓存中有此条记录,就可以直接返回结果,此过程是递归的方式进行查询。如果没有,本地DNS服务器还要向DNS根服务器进行查询。根DNS服务器没有记录具体的域名和IP地址的对应关系,它会告诉本地DNS服务器,可以到域服务器上去继续查询,并给出域服务器的地址。这种过程是迭代的过程。最后,本地DNS服务器向域名的解析服务器发出请求,这时就能收到一个域名和IP地址对应关系,本地DNS服务器不仅要把IP地址返回给用户电脑,还要把这个对应关系保存在缓存中,以备下次别的用户查询时,可以直接返回结果,加快网络访问。

  1. 浏览器向服务器建立连接并发送请求

拿到域名对应的IP地址之后,浏览器会以一个随机端口(1024<端口<65535)向服务器的WEB程序发起TCP的连接请求。浏览器和服务器建立连接后浏览器通过超文本传输协议(HTTP)或者其安全版本(HTTPS)向服务器发送一个请求报文,包含了请求方法、请求头和请求体等信息。请求方法指定了我们想要对服务器资源进行什么操作,如GET、POST等。请求头包含了一些附加信息,如用户代理、Cookie等。请求体包含了一些提交的数据,如表单内容等。

  1. 服务器处理请求并返回结果

服务器收到请求后,会根据请求内容进行处理,并返回一个响应报文,包含了响应状态码、响应头和响应体等信息。响应状态码表示了请求的结果,如200表示成功,404表示未找到等。响应头包含了一些附加信息,如内容类型、缓存控制等。响应体包含了网页的内容,如HTML、CSS、JavaScript等。

  1. 浏览器处理结果渲染页面

浏览器接收到响应后,会解析响应体中的HTML文档,并构建一个文档对象模型(DOM)树,表示网页的结构。同时,浏览器会解析CSS样式表,并构建一个层叠样式表对象模型(CSSOM)树,表示网页的样式。然后,浏览器会将DOM树和CSSOM树合并为一个渲染树,表示网页的可见部分。接着,浏览器会计算渲染树中每个节点的布局和位置,并将它们绘制到屏幕上。此外,浏览器还会执行响应体中的JavaScript代码,实现网页的交互功能。

  1. 断开连接

当浏览器完成页面渲染不需要和服务器通信时或者用户关闭页面时,浏览器会通过TCP向服务器发送一个断开连接的报文,并释放资源。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章