首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【转】导航流程:从输入URL到页面展示,这中间发生了什么?

“在浏览器里,从输入 URL 到页面展示,这中间发生了什么? ”这是一道经典的面试题,能比较全面地考察应聘者知识的掌握程度,其中涉及到了网络、操作系统、Web 等一系列的知识。...那么今天我们就一起来探索下这个流程,下图是我梳理出的“从输入 URL 到页面展示完整流程示意图”: 从图中可以看出,整个过程需要各个进程之间的配合,所以在开始正式流程之前,我们还是先来快速回顾下浏览器进程...浏览器进程接收到渲染进程“提交文档”的消息之后,便开始移除之前旧的文档,然后更新浏览器进程中的页面状态。 这其中,用户发出 URL 请求到页面开始解析的这个过程,就叫做导航。 1....到这里,一个完整的导航流程就“走”完了,这之后就要进入渲染阶段了。 5....那文章开头的“从输入 URL 到页面展示,这中间发生了什么?”这个过程及其“串联”的问题也就解决了。

6810

详细拆解导航流程:从输入URL到页面展示,这中间发生了什么?

导航的过程 所谓导航,就是用户发出 URL 请求到页面开始解析的这个过程,就叫做导航。...那么今天我们就一起来探索下这个流程,下图是我梳理出的“从输入 URL 到页面展示完整流程示意图”: 从输入 URL 到页面展示完整流程示意图 从图中可以看出,整个过程需要各个进程之间的配合,所以在开始正式流程之前...从输入 URL 到页面展示 现在我们知道了浏览器几个主要进程的职责,还有在导航过程中需要经历的几个主要的阶段,下面我们就来详细分析下这些阶段,同时也就解答了开头所说的那道经典的面试题。 1....Chrome 默认采用每个标签对应一个渲染进程,但是如果两个页面属于同一站点,那这两个标签会使用同一个渲染进程。 浏览器的导航过程涵盖了从用户发起请求到提交文档给渲染进程的中间所有阶段。...最后我们思考一下开头的面试题,用自己的语言来概括一下:在浏览器里,从输入URL到页面展示,这中间发生了什么? 从输入URL到页面展示,这中间发生了什么?

1.4K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    从输入网址到页面呈现的过程

    WEB应用的本质 1、用户请求远程资源 2、浏览器查找远程资源,打包用户请求并发送 3、服务器根据请求,通过逻辑计算,回复结果给浏览器 4、浏览器解析结果,呈现给用户 过程: 1、根据URL查找服务器地址...路由器缓存》ISP DNS缓存》根服务器) 2、建立TCP/IP连接(三次握手),打包并发送请求 3、服务器收到请求,交给相关进程处理 4、服务器处理请求并响应,发送结果给浏览器(状态码:304,本地有缓存的资源请求服务器时...,服务器判断若没有修改,返回状态码,不再发送数据) 5、浏览器接收结果并解析(先渲染树,然后DOM树(边下载边渲染)) 6、处理页面嵌入资源和异步请求

    77970

    浏览器从输入网址到页面展示的过程

    https://github.com/hzfe/awesome-interview 完整高频题库阅读地址:https://febook.hzfe.org/ 回答关键点 URL DNS TCP 渲染 浏览器从输入网址到渲染页面主要分为以下几个过程...否,将输入内容作为搜索条件,使用用户设置的默认搜索引擎来进行搜索。 大部分浏览器会从历史记录、书签等地方开始查找我们输入的网址,并给出智能提示。 2....查询通常遵循以上流程,从请求主机到本地 DNS 服务器的查询是递归查询,DNS 服务器获取到所需映射的查询过程是迭代查询。 3....较低的层为 TLS 记录协议,位于某个可靠的传输协议(例如 TCP)上面。...TCP 断开连接 现在的页面为了优化请求的耗时,默认都会开启持久连接(keep-alive),那么一个 TCP 连接确切关闭的时机,是这个 tab 标签页关闭的时候。这个关闭的过程就是四次挥手。

    19.9K75

    MVC架构在Asp.net中的应用和实现

    例如,把数据库从MySQL移植到Oracle,或者把基于RDBMS数据源改变到LDAP,只需改变模型即可。一旦正确的实现了模型,不管数据来自哪里,视图都会正确的显示它们。...针对静态的模板内容,如页面上的站点 导航,菜单,友情链接,这些使用缺省的模板内容配置;针对动态的模板内容(主要是业务内容),由于用户的请求不同,只能使用后期绑定,并且针对用户的不同,用户部件的显示内容进行过滤...这一部分主要定义了WEB页面基类PageBase;页面布局策略类PageLayout,完成页面布局,用于加载用户部件到页面;用户部件基类 UserControlBase即用户控件框架,用于动态加载检验部件...从以上代码中可以很容易发现,无论是列表页面还是编辑页面,都没有和流程相关的东西,这正是MVC所要做的,View中只包含数据的显示,流程完全由基类控制。好处是显而易见的。...当加载aspx页面时将调用Page_ Load事件,当aspx页面从内存中被卸载时将调用Page_UnLoad事件。如果某个部件触发页面以使其被重新加载则将调用Control Event事件。

    3.7K20

    从0到1开发测试平台(十二)首页面home的编写

    前言 后端和前端的基础架构都已经搭建完成,为了相对容易理解,上手快,小白也能上手,而且本身就是公司内部系统,也没太大必要做的很完美,所以在我们初版系统的架构里很多东西都简化了,比如注册中心,网关代理,配置中心...,负载均衡,授权认证,用户权限控制到页面按钮,消息队列,缓存,elk等都未引入我们初版系统的架构里。...我们这篇文章就是关于home页面的编写实现,对于home页面比较主要的两个组件就是container和menu了,其中container较为简单,menu一般要配合后台的权限校验来决定展示的内容,由于我们没做权限控制功能.../components/Home.vue' { path: '/home', component: Home }, | 路由导航守卫控制访问权限 如果我们没有进行登录,直接访问home...也能正常访问,在实际项目里是不允许的,未登录访问home需要指定跳转到登录页面 router.beforeEach((to, from, next) => { if (to.path === '/login

    90010

    从输入URL到页面可交互的过程探究之一:从服务端到客户端

    原文:https://alistapart.com/article/server-to-client/ 最近发现国外有一个系列,专门探究从输入URL到页面可交互的详细过程,是一份干货十足的好资料。...事先声明,这个系列完全由笔者手翻,如有翻译不当的地方,恳请读者给出改进意见! 接下来开始第一篇——《从服务端到客户端》 在浏览器执行任何工作之前,它需要先知道访问的是哪里。...有几种方法可以实现访问:在地址栏中输入URL、点击(或触碰)一个页面上或其他app中的超链接、或者点击你的收藏。无论是哪种情况,都会触发一个动作——导航。...Origin对于浏览器来说是很重要的概念,因为它定义了数据是如何被隔离和保护的。大多数情况,为了安全考虑,浏览器会强制使用同源策略,意味着一个源无法访问另一个源的数据。...总结 既然你已经明白了资源如何从服务器走到客户端以及之间的所有细节,那么请继续关注网页加载的下一步:从HTML标签转为DOM。

    1.5K30

    【愚公系列】《微信小程序与云开发从入门到实践》019-导航组件与页面配置节点组件

    ,导航组件和页面配置节点组件是构建流畅用户体验的关键要素。...一、导航组件与页面配置节点组件 在生活中,导航的作用是指明路途的方向,在应用程序里,多个页面的跳转过程也可以理解为组成了一条路径,导航即是管理这条页面路径的一种方式。...1.3 navigator 组件的应用场景 navigator 组件不仅支持小程序内的页面跳转,还可以实现跨应用页面的跳转。例如,可以跳转到另一个小程序或外部网页(如一个 H5 页面)。...在实际开发中,navigator 组件常用于页面间的导航,帮助用户在不同页面之间流畅切换。...时有效,传递数据到要打开的小程序中,在被打开的小程序中的 App.onLaunch() 和 App.onShow() 方法中可以拿到这些数据 Version 字符串

    10800

    Asp.net Dynamic Data之三改变编辑和操作数据的现实方式

    默认情况下 从Global.asax代码中我们不难看出它的规则{Table}/{action}.aspx,action=List,Detail,Edit,Insert,那么一定存在List.aspx,...Detail.aspx,Edit.aspx,Insert.aspx的web page,表示不同的表的CRUD操作对应不同的页面; // The following statement supports...页面部分的代码 注意看NavigateUrl的属性,通过GetActionPath动态获取Url,具体的用法我们后面再说明 GridView ID="GridView1" runat="server...页面部分的代码 这里我们看不到GetActionPath的方法了,完全按照通常的处理方式作了 GridView ID="GridView1" runat="server" DataSourceID... GridView> 更加灵活的方式 我要实现对Products表的操作分在不同的页面,而像Categories表字段少的就在一个页面里做;

    1K80

    ASP.NET的路由系统:URL与物理文件的分离

    二、 实例演示:通过URL路由实现请求地址与.aspx页面的映射 接下来我们将创建一个简单的ASP.NET Web Forms应用,并采用一个独立于.aspx文件路径的URL来访问对应的Web页面,而两者之间的映射通过...我们是一个关于员工管理的场景,我们将创建一个页面来显示员工的列表和某个员工的详细信息,页面呈现出来效果如下图所示。 ? 我们将关注点放到上图所示的两个页面的URL上。...当用户点击某个显示为姓名的连接后,用于显示所选员工详细信息的页面被呈现出现,其页面地址的URL模式为http://localhost:2738/employees/{姓名}/{ID}。....aspx文件,即作为Web应用默认页面的Default.aspx。...在Default.aspx页面中,我们分别采用GridView和DetailsView来显示所有员工列表和某个列表的详细信息,下面的代码片断表示该页面主体部分的HTML。

    1.2K80

    XCode之第一次亲密接触

    所以,本教程从最最最通俗的做法谈起,先使用纯XCode实现,然后一步步的引入其它组件,让大伙明明白白最终项目是如何工作的!...到这里,一个只有实体类的空白站点就建立了。 四、后台登录 建立一个后台目录Admin,包括后台首页Default.aspx和登录页Login.aspx。 ? 设计登录页,登录成功后跳转到后台首页。...关于XCode里面添删改查等完整代码操作参看《ORM组件XCode(速览)》 五、建立后台 我们在后台目录Admin中增加一个用来管理管理员的页面Admin.aspx,然后调整一下后台首页Default.aspx...,让它作为后台导航页,通过菜单链接到其它管理页面Admin.aspx和AdminForm.aspx。...下面开始设计Admin.aspx,这个作为一个列表页,把该表所有数据列出来。我们采用经典的GridView+ObjectDataSource来实现。 ?

    1.4K90

    Web 开发入门之旅:从静态页面到全栈应用的第一步

    Web 开发入门之旅:从静态页面到全栈应用的第一步在当今互联网飞速发展的时代,掌握 Web 开发技能已成为众多技术爱好者和职场人士的必修课。...然而,对于初学者而言,面对繁杂的技术栈和庞大的学习资源,往往感到无从下手。本文将通过三个循序渐进的小项目,带领你从最基础的前端交互,逐步迈向后端开发,最终体验全栈应用的构建过程。...通过点击按钮,页面上的文字和颜色将发生变化,帮助你初步理解前端技术的基本运作方式。核心代码解析的示例命令:php -S localhost:8000访问页面:在浏览器中打开 http://localhost:8000/index.html,点击“获取后端信息”按钮,即可看到从后端返回的消息...探索 NoSQL 数据库,如 MongoDB,了解不同数据存储方案的优缺点。项目部署与安全 学习如何将项目部署到线上服务器,了解基本的服务器管理与配置。

    20110

    Page.FindControl方法找不到指定控件的原因

    /Articles/116.aspx FindControl方法是在当前naming container查找指定ControlID对应的控件,该naming container是一个实现了INamingContainer...可以在该页的页指令中添加 Trace=Ture 指令来跟踪页面输出查看控件树。...一个页面的控件树中,Page对象必然是顶级的naming container,但绝非必然是唯一的naming container。...譬如当有GridView存在的话,GridView其实也是一个naming container,要找GridView中的一个ControlID,就不能用Page.FindControl,而得用[GridView...很多时候,因为是动态控件,明知道是在同一个naming container中,但不知道该naming container是什么对象,一个控件要找到另一个控件,可以用this.Parent.FindControl

    1.4K70

    Web开发感悟:数据绑定是一种技术,更是一门艺术

    广义来讲,如果服务端的数据需要在页面上呈现,并且这份数据需要与整个页面(或页面的某个部分)建立关联(不管是单向关联还是双向关联),这就是数据绑定。...如果要让一个GridView或Repeater呈现出后台数据,只要简单的写上 gridView1.DataSource=xxx; gridView1.DataBind();  就行了。...4.2、后起之秀-MVC 为了将界面与行为分离,asp.net终于引入了mvc模式,即asp.net mvc(目前已经发展到3.0),MVC模式中,数据模型Model与页面View被分离成二个不相干的部分...,在很大程序上实现了解耦,每个页面(即View)需要数据呈现时,Controller会从Model中拉出一份数据,然后扔给View,即:Controller充当了中介(或称为媒婆)的角色,负责在View...全新的xaml格式代替了aspx/ascx格式,在xaml的世界里,根本不允许任何服务端代码,这是彻底的cs代码/UI界面分离!

    1.4K50

    ASP.NET WEB+EntityFramework数据持久化——考核练习库——1、用户管理系统(考点:查询列表、增加、删除)

    前台 后台 添加页面 前台代码 后台代码 删除功能 前台 后台 ---- 前言 考试,是每个学生都要应对的事情,面对考试我们一定要有充分的准备才能以很高的分数通过考试,祝大家都能拿到一个比较高的分数...或Repeater控件 10分 6 正确使用EF上下文对象查询数据并绑定到GridView或Repeater控件 15分 7 正确创建添加页面【AddPage.aspx】 5分 8 完成主页添加跳转以及添加页面...【前后端】代码以及功能实现 20分 9 在GridView或Repeater控件中添加删除按钮并完成对应行的删除功能,删除提示5分 10分 10 编码规范,有注释和异常处理等 10分 备注: 如未按照要求提交...如果是2012版本的话只有2个选项,选择默认的第一个从数据库导入即可。...前台代码 首页代码 aspx">添加 【AddPage.aspx】页面代码 <asp:TextBox runat="server" ID="

    1K10

    从输入URL到页面加载完的过程中都发生了什么事情

    一个HTTP请求的过程 为了简化我们先从一个HTTP请求开始,简要介绍一下一个HTTP求情的网络传输过程,也就是所谓的“从输入 URL 到页面下载完的过程中都发生了什么事情” ●DNS Lookup 先获得...别忘了已经到第三步了,服务器还没给你发响应呢,现在你的浏览器还什么都画不出来。 ●终于到了服务器发响应了,不巧你访问的这个服务器比较忙,好几万个人都要这个资源,服务器的上行带宽也是有限的,怎么办?...服务器上的缓存 当然DNS缓存失效期通常都比较短,很多情况下都要再去查找,为了降低用户体验到的延迟(注意这里不是网络延时)预取是一个不错的方法。...所以在你敲第一个字母的时候dns解析完了就去建立连接了,这时候你可能网址还没敲完。当你刚访问一个网站的时候浏览器刷刷刷的帮你把到别的服务器的TCP连接给你建好。...另一个HTTP常用的优化就是压缩了,网络传输时间 = 消息大小/网速 既然网速比较贵那么就压缩一下吧,大部分服务器都会对HTTP消息进行gzip压缩。

    1.5K100

    C#进阶-ASP.NET常用控件总结

    四、ASP.NET实现数据绑定1、GridView控件的数据绑定在ASP.NET中,您可以使用各种控件来绑定和显示数据,例如GridView、ListView、Repeater等。...Login控件提供了简单的用户认证功能,用户可以输入用户名和密码登录系统,登录成功后将重定向到指定的欢迎页面。...在后台代码中,通过Page_Load事件检查用户是否已经登录,如果已经登录,则直接重定向到欢迎页面。...在后台代码中,通过Page_Load事件检查用户是否已经登录,如果已经登录,则直接重定向到欢迎页面。...CreateUserWizard1_ContinueButtonClick事件处理程序用于处理用户点击继续按钮后的逻辑,您可以在这里执行一些额外的操作或者重定向到其他页面。3.

    16210
    领券