1、浏览器的地址栏输入URL并按下回车。

1.)名词解释

举个栗子:https://www.baidu.com/send

这个域名由三部分组成:协议名、域名、端口号,这里端口是默认所以隐藏,后边还可以加一些参数或者路径也可以不加,

协议分https,http,FTP协议、FILe协议,http默认端口号80,https默认端口是443,默认端口都会自动隐藏了,所以才会不显示;

2、浏览器查找当前URL是否存在缓存,并比较缓存是否过期。

看看有没有不去请求也能显示网页的可能,没可能就继续。

3、DNS解析URL对应的IP。

如果你输入的url是ip地址形式的,就不用这一步了,如果是域名就要走这一步。DNS中文名字叫做域名系统,相当于一个简写好记的一个字典,不用直接输ip,记住一个单词就能访问这个ip.比如,baidu.com最后访问的还是ip.

首先浏览器先检查本地hosts文件是否有这个网址映射关系,如果有就调用这个IP地址映射,完成域名解析。

如果没找到则会查找本地DNS解析器缓存,如果查找到则返回。

如果还是没有找到则会查找本地DNS服务器,如果查找到则返回。

再查就找外国去了。。。

反正他们数据库里只要有,一定能查到

再深入就不是前端够的着的了,我就不会了。。。

4、根据IP建立TCP连接(三次握手)。

浏览器:二货,我要连接你,我是a

服务器:行啊,但是你得读一下这段话,我们是好朋友

浏览器:我们是好朋友

5、HTTP发起请求。

然后服务器就给浏览器发东西了。。如果按照域名访问某网址,第一次嘛,服务器会默认甩回点东西,一个页面或者一个页面。。

下次请求就不定是啥了,可能是js,可能是css,可能是图片,没准要下载啥文件。

6、服务器处理请求,浏览器接收HTTP响应。

服务器这边呢已经开了服务端口了,也设置路由了,你不是请求80嘛。我就给你/index.html,

浏览器收到html文件开始分析开始,解析到link了。这得向服务器去取啊。。。又遇到引入js了,又得去服务器去取,这边渲染页面,渲染一会多了个css,重新渲染一下,一会js代码又不要了,又要删掉。最后不断的从服务器取不断解析不断渲染,最后页面出现了。然后你又是点点这点点那里,又和服务器发生关系了,重新请求上文件啊,,等等了,,前端有前端的请求,后端有后端对请求的处理。

上边是前后端都正常了。。如果谁写错了呢。。就有下边这个了

状态码主要包括以下部分

  1xx:指示信息–表示请求已接收,继续处理。

  2xx:成功–表示请求已被成功接收、理解、接受。

  3xx:重定向–要完成请求必须进行更进一步的操作。

  4xx:客户端错误–请求有语法错误或请求无法实现。

  5xx:服务器端错误–服务器未能实现合法的请求。

然后看到这些错误的时候不要慌,好好调试一下,是自己的问题赶紧解决,不是自己的赶紧通知对方。如果你的代码够严谨,够厉害也别太骄傲。

7、 4次挥手关闭TCP连接

浏览器:二货,我没啥要取的了

服务器:知道了

服务器:我也没啥要发的了

浏览器:知道了

8、页面渲染的时候的知识///so...尽量别操作dom

在浏览器还没接收到完整的 HTML 文件时,它就开始渲染页面了,
在遇到外部链入的脚本标签或样式标签或图片时,会再次发送 HTTP 请求重复上述的步骤。
在收到 CSS 文件后会对已经渲染的页面重新渲染,
加入它们应有的样式,图片文件加载完立刻显示在相应位置。
在这一过程中可能会触发页面的重绘或重排。这里就涉及了两个重要概念:Reflow和Repaint。Reflow,也称作Layout,中文叫回流,一般意味着元素的内容、结构、位置或尺寸发生了变化,
需要重新计算样式和渲染树,这个过程称为Reflow。Repaint,中文重绘,意味着元素发生的改变只是影响了元素的一些外观之类的时候
(例如,背景色,边框颜色,文字颜色等),此时只需要应用新样式绘制这个元素就OK了,这个过程称为Repaint。所以说Reflow的成本比Repaint的成本高得多的多。DOM树里的每个结点都会有reflow方法,一个结点的reflow很有可能导致子结点,甚至父点以及同级结点的reflow。下面这些动作有很大可能会是成本比较高的:增加、删除、修改DOM结点时,会导致Reflow或Repaint移动DOM的位置,或是搞个动画的时候内容发生变化修改CSS样式的时候Resize窗口的时候(移动端没有这个问题),或是滚动的时候修改网页的默认字体时基本上来说,reflow有如下的几个原因:Initial,网页初始化的时候Incremental,一些js在操作DOM树时Resize,其些元件的尺寸变了StyleChange,如果CSS的属性发生变化了Dirty,几个Incremental的reflow发生在同一个frame的子树上

前端的角度看这个问题,非常片面,通过不断学习不断补充吧

从输入URL到页面加载完成都发生了什么相关推荐

  1. 烂梗面试题: 从输入url到页面加载完成,发生了什么

    目录 一.总体流程 二.DNS 域名解析 2.1 DNS 域名解析的过程 三.建立TCP连接,发送Http请求资源 3.1 建立 TCP 连接 3.2 发送 HTTP 请求,并接收服务器响应结果,关闭 ...

  2. 深入浅出经典面试题:从浏览器中输入URL到页面加载发生了什么 - Part 3

    备注: 因为文章太长,所以将它分为三部分,本文是第三部分. 第一部分:深入浅出经典面试题:从浏览器中输入URL到页面加载发生了什么 - Part 1 第二部分:深入浅出经典面试题:从浏览器中输入URL ...

  3. 从输入 URL 到页面加载完的过程中都发生了什么事情 —— 网络优化篇

     转自从输入 URL 到页面加载完的过程中都发生了什么事情 -- 网络优化篇 想到这不就是我这两年来研究的东西么,于是就接受一下挑战.网上已经有很多版本的答案了.这道题可以从浏览器端,网络传输和服 ...

  4. 前端学习之浏览器从输入URL到页面加载的全过程

    浏览器从输入URL到页面加载的全过程 从输入URL到页面加载的主干流程如下: 1.浏览器的地址栏输入URL并按下回车. 2.浏览器查找当前URL的DNS缓存记录. 3.DNS解析URL对应的IP. 4 ...

  5. 从输入url到页面加载完成中间都发生了什么?

    从输入 URL 到页面加载完成的过程中都发生了什么事情? nwind | 24 May 2014 背景 本文来自于之前我发的一篇微博: 不过写这篇文章并不是为了帮大家准备面试,而是想借这道题来介绍计算 ...

  6. 从输入 URL 到页面加载完成中间都经历了什么

    摘要 目录 1.chrome浏览器资源加载时序分析 2.w3c提供的接口performance.timing分析 3.一个完整的URL 解析过程细分介绍 3.1.缓存相关 3.1.1.URL解析 3. ...

  7. 前端面试总结(2)--从输入URL到页面加载完成,都发生了什么

    目录 序言 从输入URL到页面加载完成,都发生了什么 1. 一个极其粗糙且简化的流程 2. 每个步骤都只是摘要 2.1 浏览器中输入URL 2.1.1 URL的概念 2.1.2 浏览器对URL的长度限 ...

  8. 从浏览器输入url到页面加载(六)前端必须了解的路由器和光纤小知识

    前言 上一章我们说到了数据包在网线中的故事,说到了双绞线,还说到了麻花.这一章继续沿着这条线路往下走,说一些和cdn以及路由器相关,运营商以及光纤相关的小知识,前端同学应该了解一下的 目录 前言 1. ...

  9. 输入url到页面加载都发生了什么事情?(一道软件测试面试题)

    文章首发于公众号:软件测试er 输入url到页面加载都发生了什么事情?这是一道软件测试面试题,且相关知识其实还有多种问法: Question 1请讲一下tcp三次握手 OK等你把这个记好了,下次面试: ...

最新文章

  1. 部署企业私有镜像仓库Harbor
  2. java实现一个单例设计模式_Java正确实现一个单例设计模式的示例
  3. 数据库优化:52 条 SQL 语句性能优化策略,果断收藏!
  4. windows2012同步linux时间,Windows server2012时间同步NTP配置
  5. 面试中说这些话,到手的offer很容易飞
  6. 不写程序,整体就泡 土豆网电视剧
  7. 多线程实现的4中方法
  8. Selenium UI自动化测试(二)IDE—使用
  9. 数据结构从0.2到1(一)
  10. 如何用纯 CSS 创作一组昂首阔步的圆点
  11. 超有意思的代码注释_程序员搞笑的代码注释:谁的代码注释我都不服,就服你的...
  12. 视觉slam十四讲 pdf_视觉SLAM十四讲——第三章 李群与李代数 课后作业amp;手推...
  13. office2010安装提示需要MSXML版本6.10.1129.0
  14. html 如何写退出程序,vb点击关闭窗口 单击退出程序的VB代码怎么写
  15. Pyton爬虫实现豆瓣登陆
  16. 达梦数据库SYSDBA密码攻略
  17. word标题前自动分页
  18. 数组_二维数组的初始化方式
  19. 跨行取款手续费上调 广东建行农行每笔涨至4元
  20. 香农密码理论汇总:完善保密性

热门文章

  1. 小项目/小游戏Demo合集
  2. 联想服务器rd630硬盘报错,联想thinkserverRD630安装windowsserver2012
  3. Unity URP介绍
  4. 数美科技:智能时代怎么样构建金融反欺诈体系
  5. linux 端口未 listen,linux – TCP *:hbci(LISTEN) – hbci是什么意思?
  6. 服务器更新BIOS后无法进入系统
  7. gdp python 变迁动图_用 Python 带你看各国 GDP 变迁|python3教程|python入门|python教程...
  8. 二维码_拔剑-浆糊的传说_新浪博客
  9. SQL SERVER无法启动 SQL SERVER 代理(已禁用代理XP)事件日志:拒绝访问 ID:324
  10. gitbash登录码云报错_git 码云