输入url到页面渲染的过程

作为一个前端,被常问到输入一个url到到页面渲染中间发生了什么,每次都是说个大概,每个环节发生了什么,有哪些细节,还真不知道,今天终于痛下决心恶补下这个过程,好家伙,不看不知道,一看吓一跳,过程细节这么多,话不多说,进入学习阶段。一、输入网址在输入url的过程中,网址栏会智能匹配你输入的url字符串,从你的历史记录,书签中找到输入字符串对应的url,给你提示与之相对应你曾经访问过哪些网址。如访问曾访问过的页面,则访问的速度会大大加快。二、DNS解析百度得知DNS(Domain Name System
摘要由CSDN通过智能技术生成

作为一个前端,被常问到输入一个url到到页面渲染中间发生了什么,每次都是说个大概,每个环节发生了什么,有哪些细节,还真不知道,今天终于痛下决心恶补下这个过程,好家伙,不看不知道,一看吓一跳,过程细节这么多,话不多说,进入学习阶段。
一、输入网址
在输入url的过程中,网址栏会智能匹配你输入的url字符串,从你的历史记录,书签中找到输入字符串对应的url,给你提示与之相对应你曾经访问过哪些网址。如访问曾访问过的页面,则访问的速度会大大加快。
二、DNS解析
百度得知DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够方便用户访问互联网,而不用去记能够被机器识别的ip。通过主机名,我们就可以的改主机对应的IP的过程叫做域名解析。
1.当我们发起请求,浏览器会解析该域名。首先查找本地硬盘的hosts文件(可加快域名解析)里面的IP地址。
2.当在本地hosts文件中没有找到,浏览器会发送一个DNS请求到本地DNS服务器。本地DNS服务器有网络接入商提供,例如移动,联通,电信等等
3、本地DNS查询缓存记录(递归方式查询),如存在,直接返回结果,如不存在,会向DNS根服务器进行查询
4、因为根DNS服务器没有记录具体的域名和IP的对应关系,所以会告诉本地DNS服务器,你需要去域服务器上搜索,同时会提供域服务器的地址。(迭代解析)
5、本地DNS服务器继续向域服务器发出请求。域服务器收到请求后,也不会直接返回域名和IP地址的对应关系,而是告诉本地DNS服务器,解析该域名服务器的地址。
6、本地DNS服务器向解析域名的服务器发送请求,得到一个域名和IP地址对应关系,此时本地DNS服务器不光要把IP地址返回给用户电脑,还要把这个对应关系保存在缓存,以备下次别的用户查询时们可以直接返回结果,加快访问速度。
递归解析
当局部DNS服务器不能解答用户机的DNS查询时,会对其他DNS服务器进行查询。一般是先向该域名的根域服务器进项查询,在由根域服务器向下查询,最后把查询的结果返回到局部DNS服务器,再由局部DNS服务器返回给用户的DNS
迭代解析
当局部DNS服务器自己不能回答客户机的DNS查询时,也可以通过迭代查询的方式进行解析,局部DNS服务器不是自己向其他DNS服务器进行查询,而是把能解析该域名的其他DNS服务器的IP地址返回给用户DNS程序,用户DNS程序再继续向这些DNS服务器进行查询,直到得到查询结果为止。
域名空间的命名
按其功能命名空间中用来描述 DNS 域名称的五个类别的介绍详见下图(面向度娘)
在这里插入图片描述
负载均衡
谈到DNS,我们就不得不说到负载均衡,因为他可以解决我们我们服务器因为访问过多导致宕机的可怕后果。负载均衡的原理是在DNS服务器中为同一个主机域名配置多个IP地址,在响应DNS查询时,DNS服务器对每个查询以主机记录的IP按顺序返回不同的解析结果,将用户的访问引导到不同机器上,从而达到分流的效果。
三、向服务器发送HTTP请求
当我们拿到域名对应IP后,浏览器会议一个随意的端口号(1024<prot<65535)向服务器的WEB程序(常见的是nginx)的80端口发起TCP的连接请求。这个连接请求到达服务器后,进入到网卡,然后进入内核的TCP/IP协议栈(用于识别该连接请求,解封包,然后一层一层剥开),还有可能要经过Netfilter放火墙(属于内核模块)的过滤,最终才能到达WEB程序,最终才能建立起TCP/IP的连接。
建立连接如图所示(万能度娘助阵)
在这里插入图片描述
当我们建立TCP连接后,发送一个http请求,一个典型的http request hearder一般需要包括请求的方法(GET,POST,PUT,DELETE,当然不常用还有HEAD,OPTION、TRACE)同时会有一些请求信息,请求信息包含三个部分:
<1>请求方法URI协议/版本
<2>请求头
<3>请求的正文
当我们建立TCP连接后,

POST/sample.js
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
浏览器从输入URL到显示页面过程大致可以分为以下几个步骤: 1. DNS解析:浏览器首先会解析URL中的域名部分,将其转换为对应的IP地址。它会先检查浏览器缓存中是否存在该域名的解析结果,如果没有,就会向本地操作系统或者网络中的DNS服务器发送查询请求,获取对应的IP地址。 2. 建立TCP连接:一旦获取到目标服务器的IP地址,浏览器会通过TCP/IP协议与服务器建立连接。这个过程中,浏览器会与服务器进行三次握手,确保双方能够正常通信。 3. 发送HTTP请求:建立TCP连接后,浏览器会发送HTTP请求给服务器。请求中包含了请求行(包括请求方法、URL路径和HTTP协议版本)、请求头(包含一些附加信息,如User-Agent、Cookie等)以及请求体(一般用于POST请求,传递数据)。 4. 服务器处理请求:服务器接收到浏览器发送的HTTP请求后,会根据请求的内容进行处理。处理过程可能包括查询数据库、读取文件等一系列操作,最终生成需要返回给浏览器的数据。 5. 接收响应并渲染页面:服务器处理完请求后,会将生成的响应数据封装成HTTP响应,并发送给浏览器。浏览器接收到响应后,会根据响应头中的信息判断响应的内容类型,然后对内容进行解析和渲染。对于HTML页面,浏览器会解析HTML结构、加载CSS和JavaScript文件,并根据这些文件渲染出最终的页面。 6. 关闭TCP连接:页面渲染完毕后,浏览器会关闭与服务器的TCP连接。如果页面中存在其他资源(如图片、样式表、脚本等),浏览器会继续发送相应的HTTP请求获取这些资源,并进行相应的渲染。 这就是浏览器从输入URL到显示页面的基本过程。其中涉及到的具体细节和技术可以更加深入和复杂,但以上步骤概括了整个过程

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值