![](https://img-blog.csdnimg.cn/20190927151043371.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
原理
浏览器原理,还有一些其他原理
Londing...
这个作者很懒,什么都没留下…
展开
-
浏览器工作原理2:response响应阶段
响应报文当服务端收到请求后,就会发送一个响应报文给浏览器。响应报文组成1、响应行:由协议版本、状态码及其描述组成2、响应头:描述服务器的基本信息,以及数据的描述,浏览器通过这些信息,知道如何处理等一会儿服务器回送的数据。3、响应体:响应体就是响应的消息体,如果是纯数据就是返回纯数据,如果请求的是HTML页面,那么返回的就是HTML代码,如果是JS就是JS代码,也就是浏览器需要解析的内容。状态码一些常见的状态码200 - 请求成功301 - 资源(网页等)被永久转移到其它URL404 -原创 2020-08-15 22:07:53 · 574 阅读 · 0 评论 -
浏览器工作原理1:request请求阶段
一、DNS (Domain Name System)域名解析概念1、当我们在浏览器的地址栏中输入网站域名时,因为浏览器只能识别ip地址,所以首先会将域名解析为ip地址,这个过程叫做域名解析,而存放ip地址的地址库就是DNS服务器。2、因为上网的人很多,且分布在世界各地,这就要求DNS服务器必须为,高可用、分布式。3、DNS服务器因为上述两点要求被设计为树状结构。最上层是根域名服务器:用.来表示,作用是来查询下一级顶级域名服务器,常见的顶级域名服务器有:.com .net .cn等,它的作用是查询原创 2020-08-09 21:43:37 · 603 阅读 · 0 评论 -
浏览器工作原理3:渲染阶段
一次渲染过程开启栈内存首先当浏览器拿到页面代码之后会开启一个空间,叫做栈内存,这是用来解析代码的,属于代码解析运行环境,执行时,逐行执行,入栈执行,执行完出栈。遇到静态资源请求如果遇到图片、css、js等资源请求,浏览器会开辟新的线程去请求资源,这些资源会根据请求顺序放在一个空间,叫做任务队列,等待执行栈调用。生成DOM树第一次自上而下执行时只渲染HTML结构,形成dom树。事件循环等待队列会经过事件循环查看已经请求好的资源,拿到执行栈中调用,所有css资源会形成一个cssOM渲染树DO原创 2020-08-16 14:30:12 · 123 阅读 · 0 评论 -
使用token维持用户登录状态的原理及其实现方法
1、生成token,并返回给客户端首先用户在客户端进行登录,发送请求给服务端,服务端验证用户和密码是否正确,完全一致后,服务端会生成一个当前用户所对应的一个token值,并在响应中将其返回给客户端。2、客户端将该token值进行存储3、携带token发送请求后续客户端发送请求时,就会携带这个token。4、服务器端验证token当服务器拿到客户端提供的token值后,会判断其是否存在,如果存在则会返回对应用户所需要的数据。...原创 2020-08-24 22:16:34 · 3005 阅读 · 0 评论 -
什么是原型对象与原型链
要了解原型对象,先了解对象数据类型undefined、null、boolean、number、string、object引用类型String,Number,Boolean,Object,Function,Array,Data,RegExp,Error我们可以使用九中引用类型来创建对象实例原型对象创建三个对象 var str = new String('abc') console.log(str) var num = new Number(123)原创 2020-08-23 20:40:07 · 896 阅读 · 0 评论 -
作用域及闭包的原理作用及实现
想要了解闭包,需要先了解作用域全局作用域定义变量全局都可以使用,且会一直占用内存,不会被销毁函数作用域函数内部自己定义的变量,一般只能自己访问,且只有在函数被调用时,才会被分配内存空间,一但执行完毕,当即销毁块级作用域类似与函数作用域,如for循环就是一个块级作用域,但是var是没有块级作用域的,它只有全局作用域。{ let a = 1 var b = 1} console.log(b) //=>1 console.log(a) //=>a is not原创 2020-08-23 18:38:43 · 365 阅读 · 0 评论 -
异步编程使用回调函数获取函数内部异步操作的执行结果
什么叫异步操作举例var fn = function() { console.log(1) setTimeout(() => { console.log(2) }, 0); console.log(3)}fn()//=>1 3 2说明1、上面的例子中定时器就是一个异步操作2、哪怕定时为0秒,依然是在执行完其他代码之后才去执行定时器的代码为什么异步操作的执行结果需要用回调函数来获得例子var fn = function() {原创 2020-08-09 19:34:04 · 760 阅读 · 0 评论 -
什么叫做回调地狱
先来看一个小例子var fs = require('fs')fs.readFile('./src/a.txt', 'utf-8', function(err, data) { if (err) { throw err } console.log(data)})fs.readFile('./src/b.txt', 'utf-8', function(err, data) { if (err) { throw err }原创 2020-08-12 20:17:52 · 11455 阅读 · 1 评论 -
使用promise解决回调地狱问题
promise介绍promise是ES6的一个api,使用时需要new出一个实例,且里面有两个参数,一个是resolve代表成功状态,一个reject代表失败状态。使用promise原代码var fs = require('fs')fs.readFile('./src/a.txt', 'utf-8', function(err, data) { if (err) { throw err } console.log(data) fs.readFile原创 2020-08-12 21:22:25 · 401 阅读 · 0 评论