当前位置: 首页 > Web前端 > HTML

【前端奶酪树】从浏览器搜索框输入网址到网页呈现,发生了什么?

时间:2023-04-02 18:55:26 HTML

【前端奶酪树】从浏览器搜索框输入网址到网页渲染,到底发生了什么?这也是前端面试中被问的比较多的一个问题。文章篇幅有限,尽量把重点放在一些前端开发中不太可能遇到的知识点上。如需展开,请点击引用文章。也欢迎评论。后续继续补充。0.大概的过程看图比较好记。下面将基于这些描述这些过程。1、浏览器输入Url,首先要明白域名和ip地址是不一样的。生成域名是为了方便记忆ip,ip是服务器在网络上的真实地址。IP地址是用于在互联网上唯一标识一台计算机的逻辑地址,允许计算机之间进行通信。每台联网的计算机都依靠IP地址来区分彼此并相互通信。IP地址通常是指网络上的主机,而域名通常是指网站。一个域名可以绑定多个IP,多个域名也可以绑定一个IP。为了将域名和地址相互转换,需要进行映射。有两种方式:静态映射在浏览器端存储一张域名到ip地址的映射表,仅供本设备使用。动态映射使用DNS进行域名解析,在专用的DNS服务器上配置主机到IP地址的映射。DNS(DomainNameSystem,域名系统),一种在万维网上映射域名和IP地址的分布式数据库,使用户能够更方便地访问互联网,而无需记住机器可以直接读取的IP号。DNS协议运行在UDP协议之上,使用端口号53。DNS可用于网络上的所有节点。1.1域名解析&&浏览器查询ip流程浏览器从缓存的映射表中查找域名对应的记录。如果存在,则直接返回到IP缓存。如果没有记录命中,它会进行系统调用以查询主机以查找用户定义的IP映射。.当前两者无效时,向路由器发送DNS查询请求,或直接向用户自定义的DNS服务地址发送域名解析请求。DNS服务器会从根域名服务器递归搜索,从.com顶级域名服务器到百度的域名服务器。2、建立TCP连接TCP/IP协议/四层模型/三次握手在TCP/IP协议族中,有一系列的协议用来处理数据通信:TCP(TransmissionControlProtocol)——应用程序之间的通信UDP(用户数据包协议)——用于应用程序之间的简单通信IP(互联网协议)——用于计算机之间的通信ICMP(互联网控制消息协议)——用于错误和状态DHCP(动态主机配置协议)——用于动态寻址……例如如图所示的TCP/IP协议族TCP/IP的意思是TCP和IP协同工作。TCP负责应用软件(例如您的浏览器)和网络软件之间的通信。IP负责计算机之间的通信。TCP负责将数据分解为IP数据包,然后在它们到达时重新组装它们。IP负责将数据包发送给接收者。其中,需要重点关注的是数据是如何处理的,TCP、IP,以及TCP和UDP的区别。数据处理流程TCP三次握手TCP和UDP的区别TCP是一种面向连接的、可靠的流协议。Stream指的是一种不间断的数据结构。当一个应用程序使用TCP发送消息时,虽然可以保证发送的顺序,但是仍然像没有数据流的间隔一样发送到接收端。为了提供可靠的传输,TCP实现了“顺序控制”或“重传控制”机制。此外,它还具有“流量控制(flowcontrol)”、“拥塞控制”、提高网络利用率等诸多功能。UDP是一种不可靠的数据报协议。细微的处理都会交给上层应用来完成。在UDP的情况下,虽然可以保证发送消息的大小,但不能保证消息一定会到达。因此,应用程序有时会根据自己的需要进行重传处理。TCP和UDP的优缺点不能简单绝对的比较:传输层需要可靠传输时使用TCP;另一方面,UDP主要用于那些对高速传输和实时性能要求高的通信或广播通信。TCP和UDP应该根据应用的目的按需使用。浏览器使用IP直接与网站主机通信。浏览器发送TCP(SYN标志位为1)连接请求,主机返回TCP(SYN、ACK标志位均为1)响应报文,浏览器收到响应报文发现ACK标志位为1,表示连接请求被确认。浏览器返回TCP()确认报文,主机收到确认报文,三次握手,TCP连接建立。3、服务器响应请求TCP连接建立后,浏览器向主机发起HTTP-GET方法消息请求。请求包括访问的URL,即http://www.baidu.com/,以及User-Agent用户浏览器操作系统信息、编码等。3.1常见服务器状态码1**请求状态100Continue继续。一般发送post请求时,服务器发送http和headers后会返回此信息表示确认,然后发送具体的参数信息2**响应状态200OK正常返回信息201Created请求成功,服务器已经创建新资源3**资源状态301MovedPermanently永久重定向,请求的网页已经永久移动到新位置。4**网页状态400BadRequest服务器无法理解请求的格式,客户端不应再次尝试发起相同内容的请求。404NotFound没有资源找到如何匹配URI。5**服务器状态500内部服务器错误最常见的服务器端错误。3.2重定向的作用重定向是为了负载均衡或导入流量,提高SEO排名。使用前端服务器接受请求,然后加载到不同的主机上,可以大大提高站点的并发业务处理能力;重定向也可以将多个域名的访问集中到一个站点;因为baidu.com,www.baidu.comcom会被搜索引擎认为是两个网站,每个网站的链接数都会减少从而降低排名。永久重定向会将两个地址关联起来,搜索引擎会认为它们是同一个网站,从而提高排名。4.浏览器渲染呈现浏览器得到响应的页面代码,解析后呈现在用户面前。中间会涉及到浏览器的渲染步骤、JS引擎、渲染引擎、事件响应等知识点。后续会继续补充,欢迎收藏点赞。参考文章W3School-IntroductiontoTCP/IP一篇让你熟悉TCP/IP协议的文章(网络协议第2部分)