爱创课堂每日一题第五十七天-一个页面从输入url到页面加载显示完成,这个过程中都发生了什么?

author author     2022-10-01     508

关键词:

分为4个步骤:

    1),当发送一个URL请求时,不管这个URL是Web页面的URL还是Web页面上每个资源的URL,浏览器都会开启一个线程来处理这个请求,同时在远程DNS服务器上启动一个DNS查询。这能使浏览器获得请求对应的IP地址。

    2), 浏览器与远程`Web`服务器通过`TCP`三次握手协商来建立一个`TCP/IP`连接。该握手包括一个同步报文,一个同步-应答报文和一个应答报文,这三个报文在 浏览器和服务器之间传递。该握手首先由客户端尝试建立起通信,而后服务器应答并接受客户端的请求,最后由客户端发出该请求已经被接受的报文。

    3),一旦`TCP/IP`连接建立,浏览器会通过该连接向远程服务器发送`HTTP`的`GET`请求。远程服务器找到资源并使用HTTP响应返回该资源,值为200的HTTP响应状态表示一个正确的响应。

    4),此时,`Web`服务器提供资源服务,客户端开始下载资源。

请求返回后,便进入了我们关注的前端模块

简单来说,浏览器会解析`HTML`生成`DOM Tree`,其次会根据CSS生成CSS Rule Tree,而`javascript`又可以根据`DOM API`操作`DOM`

详情:从输入 URL 到浏览器接收的过程中发生了什么事情?


爱创课堂每日一题第四十七天-清除浮动的几种方法?

1,额外标签法,<divstyle="clear:both;"></div>(缺点:不过这个办法会增加额外的标签使HTML结构看起来不够简洁。)   2,使用after伪类   #parent:after{       content:".";& 查看详情

爱创课堂每日一题第五十八天-javascript对象的几种创建方式

1,工厂模式2,构造函数模式3,原型模式4,混合构造函数和原型模式5,动态原型模式6,寄生构造函数模式7,稳妥构造函数模式 查看详情

爱创课堂每日一题第五十三天-哪些操作会造成内存泄漏?

内存泄漏指任何对象在您不再拥有或需要它之后仍然存在。垃圾回收器定期扫描对象,并计算引用了每个对象的其他对象的数量。如果一个对象的引用数量为0(没有其他对象引用过该对象),或对该对象的惟一引用是循环的,... 查看详情

爱创课堂每日一题第五十六天-对前端界面工程师这个职位是怎么样理解的?它的前景会怎么样?

前端是最贴近用户的程序员,比后端、数据库、产品经理、运营、安全都近。    1、实现界面交互    2、提升用户体验    3、有了Node.js,前端可以实现服务端的一些事情前端是最贴近... 查看详情

爱创课堂每日一题第七天8/31tcp和udp的区别?

TCP(TransmissionControlProtocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来UDP(UserDataProtocol,用户数据报协议)是与TCP相对应... 查看详情

爱创课堂每日一题第五十天-null和undefined的区别?

 null是一个表示"无"的对象,转为数值时为0;undefined是一个表示"无"的原始值,转为数值时为NaN。当声明的变量还未被初始化时,变量的默认值为undefined。null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的... 查看详情

爱创课堂每日一题第五十一天-new操作符具体干了什么呢?

1、创建一个空对象,并且this变量引用该对象,同时还继承了该函数的原型。   2、属性和方法被加入到this引用的对象中。   3、新创建的对象由this所引用,并且最后隐式的返回this。varobj ={};obj.__proto__=Ba... 查看详情

爱创课堂每日一题第十二天xss原理及防范?

Xss(cross-sitescripting)攻击指的是攻击者往Web页面里插入恶意html标签或者javascript代码。比如:攻击者在论坛中放一个看似安全的链接,骗取用户点击后,窃取cookie中的用户私密信息;或者攻击者在论坛中加一个恶意表单,当用户提... 查看详情

爱创课堂每日一题八十七天-sassless是什么?大家为什么要使用他们?

他们是CSS预处理器。他是CSS上的一种抽象层。他们是一种特殊的语法/语言编译成CSS。例如Less是一种动态样式语言.将CSS赋予了动态语言的特性,如变量,继承,运算,函数.LESS既可以在客户端上运行(支持IE6+,Webkit,Firefox),也可一... 查看详情

爱创课堂每日一题第二十一天-移动端性能优化?

尽量使用css3动画,开启硬件加速。适当使用touch事件代替click事件。避免使用css3渐变阴影效果。可以用transform:translateZ(0)来开启硬件加速。不滥用Float。Float在渲染时计算量比较大,尽量减少使用不滥用Web字体。Web字体需要下载,... 查看详情

爱创课堂每日一题第十六天为什么https安全?

因为网络请求需要中间有很多的服务器路由器的转发。中间的节点都可能篡改信息,而如果使用HTTPS,密钥在你和终点站才有。https之所以比http安全,是因为他利用ssl/tls协议传输。它包含证书,卸载,流量转发,负载均衡,页面... 查看详情

爱创课堂每日一题第三十二天-谈谈浮动和清除浮动?

浮动的框可以向左或向右移动,直到他的外边缘碰到包含框或另一个浮动框的边框为止。由于浮动框不在文档的普通流中,所以文档的普通流的块框表现得就像浮动框不存在一样。浮动的块框会漂浮在文档普通流的块框上。 查看详情

爱创课堂每日一题第四十六天-浮动元素引起的问题和解决办法?

浮动元素引起的问题:(1)父元素的高度无法被撑开,影响与父元素同级的元素(2)与浮动元素同级的非浮动元素(内联元素)会跟随其后(3)若非第一个元素浮动,则该元素之前的元素也需要浮动,否则会影响页面显示的结... 查看详情

爱创课堂每日一题第二十四天-etag应用?

Etag由服务器端生成,客户端通过If-Match或者说If-None-Match这个条件判断请求来验证资源是否修改。常见的是使用If-None-Match。请求一个文件的流程可能如下:====第一次请求===1.客户端发起 HTTP GET 请求一个文件;2.服务器... 查看详情

爱创课堂每日一题第八天说说你对作用域链的理解?

作用域链的作用是保证执行环境里有权访问的变量和函数是有序的,作用域链的变量只能向上访问,变量访问到window对象即被终止,作用域链向下访问变量是不被允许的。 查看详情

爱创课堂每日一题第三十九天-cookie和session的区别?

1、cookie数据存放在客户的浏览器上,session数据放在服务器上。 2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗   考虑到安全应当使用session。 3、session会在一定时间内保存在服务器上。当... 查看详情

爱创课堂每日一题第二十九天-es6的了解?

新增模板字符串(为JavaScript提供了简单的字符串插值功能)、箭头函数(操作符左边为输入的参数,而右边则是进行的操作以及返回的值Inputs=>outputs。)、for-of(用来遍历数据—例如数组中的值。)arguments对象可被不定参数... 查看详情

爱创课堂每日一题第三十四天-用过哪些设计模式?

工厂模式:主要好处就是可以消除对象间的耦合,通过使用工程方法而不是new关键字。将所有实例化的代码集中在一个位置防止代码重复。   工厂模式解决了重复实例化的问题,但还有一个问题,那就是识别问题,因... 查看详情