-
异步,回调函数。对于单线程的nodejs来讲,我们可以通过回调的方式来进行异步编程,可以达到非阻塞的效果查看全部
-
匿名函数查看全部
-
浏览器发送请求后DNS检索路径顺序查看全部
-
http在使用场景中的流程查看全部
-
1.作为对象的方法 this在方法内部,this就指向调用这个方法的对象 2.函数的调用 this指向执行环境中的全局变量(浏览器->window || nodejs ->global) 3.构造函数 this所在的方法被实例对象所调用,那么this就指向这个实例对象查看全部
-
Nodejs适合于高并发、I/O密集操作。 HTTP源码解读 什么是作用域? 与调用函数,访问变量的能力有关。 作用域分为:局部和全局(在局部作用域里可以访问到全局作用域的变量,但在局部作用域外面就访问不到局部作用域里面所设定的变量) 什么是上下文? 与this关键字有关,是调用当前可执行的代码的引用,this总是指向调用这个方法的对象 js里的this通常是当前函数的拥有者 this是js的一个关键字,代表函数运行时自动生成的一个内部对象,只能在函数内部使用查看全部
-
模块的流程: (1)创建模块:一个入口的JS文件,里面加入一些特定的功能; (2)导出模块:把功能和文件(即模块名)建立关系;(是不是把模块的方法暴露出去?) (3)加载模块:在其他的文件里面引入并加载这个模块,在nodejs里面使用require来完成这个工作; (4)使用模块:直接调用模块中命名好的方法查看全部
-
Nodejs中http模块不解析请求的具体内容,只分离出请求头和请求体 1、什么是回调函数? 回调试异步编程时的基础,将后续逻辑封装成起始函数的参数,逐层嵌套 2、什么事同步/异步? 同步:发送方发送数据后,等待接收方发回响应以后才发下一个数据包的通讯方式 异步:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式 3、什么事I/O? 磁盘的写入(in)磁盘的读取(out) 4、什么是单线程/多线程? 一次只能执行一个程序叫做单线程 一次能执行多个程序叫做多线程 5、什么是阻塞/非阻塞? 阻塞:前一个程序未执行完就得一直等待 非阻塞:前一个程序未执行完时可以挂起,继续执行其他程序,等到使用时再执行 6、什么是事件? 一个触发动作(例如点击按钮) 7、什么是事件驱动? 一个触发动作引起的操作(例如点击按钮后弹出一个对话框) 8、什么是基于事件驱动的回调? 为了某个事件注册了回调函数,但是这个回调函数不是马上执行,只有当事件发生的时候,才会调用回掉函数,这种函数执行的方式叫做事件驱动~这种注册回掉就是基于事件驱动的回调,如果这些回调和异步I/O(数据写入、读取)操作相关,可以看作是基于回调的异步I/O。只不过这种回调在nodejs中是有事件来驱动的 9、什么是事件循环? 事件循环Eventloop,倘若有大量的异步操作,一些I/O的耗时操作,甚至是一些定时器控制的延时操作,它们完成的时候都要调用相应的回调函数,而从完成一些密集的任务,而又不会阻塞整个程序执行的流程,此时需要一种机制来管理,这种机制叫做事件循环 总而言之,管理大量异步操作的机制叫做事件循环 EventLoop: 回调函数队列,异步执行的函数会被压入这个队列;队列被循环查询。查看全部
-
Timing资源加载所要耗费的时间线 ·Stalled:等待时机,浏览器要发生请求,到能发出请求的时间。不包括DNS查询和连接建立时间 ·Proxy negotiation:代理协商的时间 ·Request sent:请求时间。从请求报文的第一个字节发出,到最后一个字节发送完毕的时间 ·Waiting(TTFB):请求发出后至收到第一个字节响应的时间 Content Download:从接受到响应第一个字节开始到最后一个字节结束花费的时间 http请求方法: ·Get:获取,读取数据 ·Post:提交资源 ·Put:更新 ·Delete:删除 ·Head 与get方法相同,但服务器不传回资源 状态码:服务器端返回浏览器,告知浏览器请求成功或失败的信息 ·1XX请求已经接受 ·2XX请求成功并处理成功 ·3XX重定向 ·4XX客户端错误 ·5XX服务器端错误 200:OK,请求成功 400:客户端请求有语法错误 401:请求未经授权 403:收到请求,但不提供服务 404:资源未找到 500:服务器端未知错误 503:服务器端当前不能处理请求查看全部
-
querystring escape unesape查看全部
-
querystring stringify parse查看全部
-
什么是HTTP? 是一种协议,计算机要共同遵从这种规则,才能相互通信。 ·http客户端发起请求,创建端口 ·http服务器在端口监听客户请求 ·http服务器向客户端返回状态和内容 用浏览器打开一个网站,http走过的环节 一、首先,对网站进行DNS域名解析 1、浏览器搜索自身的DNS缓存-》 2、搜索操作系统自身的DNS缓存(浏览器没有找到缓存或过期)-》 3、读取本地的HOST文件-》 4、浏览器发起一个DNS的一个系统调用{ 4.1宽带运营商服务器查看本身缓存-》 4.2运营商服务器发起一个迭代DNS解析的请求(根域->顶级域->域名注册商(IP地址)) 4.3运营商服务器把结果返回给操作系统内核同时缓存起来 4.4操作系统内核把结果返回给浏览器 } 5、让浏览器拿到网站的IP地址,DNS解析完成,发起HTTP"三次握手" 6、TCP/IP连接建立起来后,浏览器就可以向服务器发送HTTP请求,比方说,用HTTP的GET方法请求一个根域里的一个域名,协议可以采用HTTP1.0的一个协议 7、服务器端接受到了这个请求,根据路径参数,经过后端的一些处理之后,把处理后的一个结果的数据返回给浏览器。(这时会把网站完整的HTML页面代码返回给浏览器) 8、浏览器拿到了网站的完整的HTML页面代码,在解析和渲染这个页面的时候,里面的JS、CSS、图片静态资源,他们同样也是一个个HTTP请求,都需要经过上面的主要的七个步骤. 9、浏览器根据拿到的资源对页面进行渲染,最终把一个完整的页面呈现给了用户 HTTP流程可分为请求/响应两部分 HTTP的组成:{ HTTP头:发送的是一些附加的信息:内容类型服务器发送响应的日期,HTTP状态码 正文信息:用户提交的表单信息 }查看全部
-
querystring.stringify(obj,para1,para2)://将对象转化成url中query部分的形式 参数:1.要转化的对象 2.链接符(默认&) 3.键与值之间的符号(默认=) querystring.parse(string,para1,para2)//将query字符串转化成对象(反序列化) 参数: 1.query字符串 2.链接符(默认&) 3.键与值之间的符号(默认=) 4.参数的个数(默认最多1000个,0就没有限制) querystring.escape(string)//文字转译 querystring.unescape(string)//反转译查看全部
-
chrome://net-internals/#dns查看全部
-
node API -- URL url.parse(urlStr[,parseQueryString][,slashesDenoteHost]):将定位符解析成对象, 可选参数1设置为true,对象中query可解析出; 可选参数2设置为true,对象中host正确解析。 url.format(urlObj):将对象解析成定位串 url.resolve(from,to):将一个基本url和指定超链接目标url合并查看全部
举报
0/150
提交
取消