当前位置: 首页 > 网络应用技术

从输入URL到页面的前端浏览器以显示全面分析的中间过程

时间:2023-03-09 10:58:25 网络应用技术

  这个问题确实是一个总是很常见的问题。作为前端或后端,您应该记住它。可以说这个过程非常粗糙。也可以详细讨论。它显示了许多与网络相关的知识点。那里。

  一般来说,分为以下过程:

  首先,我们在浏览器中输入URL。中文名称称为统一资源定位符号。统一的资源定位符号是可以从Internet.address.Address.EAVEN Internet上获得的位置和访问方法的简洁表示,其中包含文件的信息以及浏览器应如何处理。

  主组件:协议(协议)://主机名(主机名)[:port](port) / path我们的前端接口接口时,我们通常会遇到交叉 - 域问题。这里的所有域都是协议,域名和端口号的集合。交叉 - 域和交叉域方法可以参考以下内容;

  DNS解析的过程是找到您需要资源的机器的过程。当您在浏览器中输入地址时,例如www.google.com,它实际上不是Google网站中的真实地址。Internet上的每台计算机都是其IP地址,但是IP地址并不方便。使用者更喜欢在Internet上找到其他计算机,这是上述BAIDU的网站。因此,互联网设计师需要称量用户的便利和可用性。此余额是将URL转换为IP地址。此过程是DNS分析。它实际上是翻译角色并意识到URL转换为IP地址。从网站到IP地址转换的过程如何?

  DNS搜索顺序:浏览器缓存 - >操作系统缓存 - >本地主机文件 - >路由器缓存 - > ISP DNS CACHE->顶级DNS服务器/root DNS服务器分析找到www.google.com的IP地址进程,::::。- > .com-> google.com .-> www.google.com。有人会很奇怪,怎么会有一点,而不是我再打一个。相应的是根域名服务器。默认情况下,所有URL中的最后一个是。由于默认值是为了促进用户,通常会省略它。浏览器将在请求DNS时自动添加.-> google.com。- > www.google.com。

  1.本地DNS服务器的递归分析无法回答客户端的DNS查询,需要查询其他DNS服务器。此时有两种方法,如图所示。本地DNS服务器本身负责与其他DNS查询服务器。通常,首先向域名的根域服务器查询,然后从根域名服务器查询。最终查询结果返回到本地DNS服务器,然后将本地DNS服务器返回到客户端。

  2.本地DNS服务器的iteraton分析无法回答客户端的DNS查询,也可以通过迭代查询来解析,如图所示。本地DNS服务器本身不会自行查询其他DNS服务器,而是返回IP地址在其他可以分析客户端DNS程序的域名的DNS服务器中192.168.4.5,您可以自己检查,您很忙,只能在这里为您提供帮助。

  当网站有足够的用户时,如果每个请求所需的资源都位于同一台计算机上,则该机器可能会在任何时候跳下。处理方法是使用DNS负载平衡技术。它的原则是为DNS服务器中的同一主机名配置多个IP地址。在回答DNS查询时,DNS服务器将使用DNS文件中的DNS文件中的主机记录记录的IP地址。BACK不同的分析结果,请指导客户端对不同机器的访问,以便不同的客户端可以访问不同的客户服务器,以达到负载平衡的目的。例如,根据每台计算机的负载,机器与用户与用户分开,地理位置的距离等。

  提高访问效率,计算机具有域名缓存机构。访问网站并获得其IP后,它将缓存其域名和IP。下次访问时,无需请求域名服务器以获取IP。直接使用它。缓存中的IP提高了响应速度。当然,缓存有生效的时间。在有效时间之后,您需要再次询问网站,您仍然需要首先请求域名分析。

  但是域名缓存机制也可能会导致麻烦。例如,IP已更改,IPS仍使用缓存访问,这将失败。另一个示例是,访问内部网络和访问内部网络时的IP对应于同一域名外部网络是不同的。同一计算机在外部网络环境中访问了此域名,然后更改为内网络以访问此域名。在DNS缓存的动作下,它也将访问外部网络的IP,导致访问失败。根据情况,您可以手动删除DNS缓存或禁止DNS缓存机制。输入器:chrome:chrome:// dns dns/,您可以在Chrome浏览器中看到Chrome浏览器的DNS CACHE。系统缓存主要存在于/etc/hosts(Linux System)中

  在DNS域名分析的第一步之后,获得了服务器的IP地址。获得IP地址后,将建立连接。这是由TCP协议完成的,主要通过三个握手连接。

  建立TCP连接后,启动了HTTP请求。典型的HTTP请求标头通常需要包括请求方法,例如或等待,并且常用的是头,头和跟踪方法。告诉服务器以消息的形式需要什么。请求请求的头部和主体。

  参考答案:W3School:获取比较帖子

  实际上,如果您查看其他请求方法的名称,则可能知道何时使用它。这是对义词的良好反映第一结论。GET和POST方法之间没有实质性的差异,但是格式格式不同。GET和POST只是HTTP协议中的两个请求方法,HTTP协议基于TCP/IP应用程序层协议。无论是获取还是发布,都使用相同的传输层协议,因此传输没有差异。在数据包的格式中,没有参数的最大区别是第一行方法名称是不同的。当他们不带来参数时,它们的区别只是消息的前几个字符。

  GET方法请求消息的第一行是此GET /URI HTTP /1.1

  与参数的差异:在商定的情况下,应将GET方法的参数放在URL中,并且应将后方法参数放在主体中以举例说明。如果参数为name = qiming.c,年龄= 22. get方法的简单版本就是这样

  帖子方法简单版本是这样的

  总结

  您可以详细介绍HTTP和HTTP之间的差异之间的区别。

  在接收浏览器发送的HTTP请求后,服务器将将接收到的HTTP数据包封装到HTTP的请求对象中,并通过不同的Web服务器进行处理。代码,响应标头,文本的三个部分。

  通常,每个人都知道404页不存在,500服务器是错误的,301重定向,302临时重定向,200ok,401未经授权或其他内容。

  专注于三个状态代码和相关知识。它们是304个谈判缓存,101个协议升级和307HST的跳跃。

  只有三个状态代码可以涉及如此丰富的知识。对于状态代码,我们不能仅仅背诵状态代码和状态代码的相应含义。

  常见状态代码:: 200,204,301,302,302,303,304,4001,403,404,500,503(必须记住)

  收到HTML后,CSS,JS文件

  特别是(以WebKit为例)通过HTML解析器解决HTML文档,构建DOM树,并通过CSS解析器在HTML中分析CSS,以构建样式运行,并组合一个附件。要渲染树以通过附件构建渲染树并进入布局阶段(布局/回流),它将分配一个应在每个阶段出现在屏幕上的精确坐标。。

  这个过程相对复杂,涉及两个概念:反流和重复。将在下面提及

  在文档加载过程中遇到JS文件时,HTML文档将悬挂一个带有渲染的线程(加载解析渲染同步),不仅要等待文档中的JS文件加载,还等待解决方案,还等待解决方案的执行。为了恢复HTML documentationessensesensesence的渲染线程,因为js可能会修改dom,这是最经典的文档。写字,这意味着在执行JS之前,所有资源的下载可能是不必要的。这是JS阻止后续资源下载的根本原因。

  JS的分析由浏览器中的JS解析引擎完成。JS是一个单个线程操作。也就是说,只能同时完成一件事。所有任务都需要排队。以前的任务已经结束,后一个任务可以开始。但是,某些任务有时间耗尽的时间,例如io读写和写作,因此一种机制需要在后者中可以执行的第一个任务。这是:同步任务(同步)和异步任务。

  JS的执行机制可以被视为主线程和任务队列。相关任务是主线程上的任务,而异步任务是任务置于任务队列中的任务。在主线程上执行所有同步任务以形成执行堆;异步任务将以操作的结果将事件放在任务队列中;脚本首先运行以订购任务队列中的任务,因此也称为事件循环。

  DOM节点中的元素以框模型的形式存在。这些要求浏览器计算其位置和大小。此过程称为reprow;确认后,浏览器开始绘制内容,这被称为重复。该页面不可避免地会在第一次加载时体验回流和重新启动。回流和重新启动流程非常消耗,尤其是在移动设备上,尤其是在移动设备上。它会破坏用户体验,有时会导致页面陷入困境。因此,我们应该减少回流并尽可能少地重新重新恢复。

  反流,也称为布局,称为背景,通常意味着元素的内容,结构,位置或大小已更改。有必要重新计算样式和渲染树。此过程称为replow.repain,用中文重新绘制,意味着元素的变化只会影响元素的某些外观(例如,背景颜色,框架颜色,文本颜色等)。此过程称为Repain.o repain.o回光的成本远高于重新负担的成本。DOM树中的每个节点将采用回流方法。节点的回流可能会导致子节点,甚至是父点和相同级别的回流。以下操作可能相对较高:1。添加,删除和修改DOM节点时,IT将导致反流或重新涂漆2。移动DOM的位置,或者当您是动画时3。内容变化4。修改CSS样式5。当调整大小的窗口(移动终端上没有此类问题)或滚动时。6。修改网页的默认字体。

  基本上,回流有几个原因:1。初始化时,初始化时2。增量,某些JS操作DOM树3。调整大小,某些组件的大小已更改。4。stylechange,如果CSS的属性发生了变化。

  提示本文在从输入URL到页面以显示正确过程的过程中详细介绍了。此过程设计了更多的知识点。我总结了部分。如果有任何缺点,我希望纠正它。