-
一、服务器、客户端交互
1、chrome
(1)chrome搜索自身的dns缓存
(2)搜索操作系统自身的dns缓存(浏览器没有找到缓存或缓存已经失效)。
(3)读取本地的host文件。
优先级:浏览器DNS缓存>操作系统DNS缓存>HOST文件
(4)浏览器发起一个dns的一个系统调用。
(5)浏览器获得域名对应的ip地址后,发起http“三次握手”。
(6)tcp/ip连接建立起来后,浏览器就可以向服务器发送http请求了,使用了比如说,用Http的get方法请求一个根域里的一个域名,协议可以采用http1.0的一个协议。
(7)服务器接收到了这个请求,根据路径参数,经过后端的一些处理之后,把处理后的一个结果的数据返回给浏览器,如果是慕课网的页面,就会把完整的html页面代码返回给浏览器。
(8)浏览器拿到了慕课网的完整的html页面代码,在解析和渲染这个页面的时候,里面的js,css,图片静态资源,同样也是一个个http请求,都需要上述7个步骤。
(9)浏览器拿到资源对页面进行渲染,最终把一个完整的页面呈现给用户。
2、运营商dns服务器:
(1)宽带运营商服务器查看本身缓存。
(2)运营商服务器发起一个迭代dns解析的请求。
(3)运营商服务器把结果返回操作系统内核同时缓存起来。
(4)操作系统内核把结果返回浏览器。
(5)最终拿到www.imooc.com对应的ip地址。
二、根域、顶级域名、主域名。
123.com:顶级域名
com;根域名
查看全部 -
一、序列化与反序列化
1、序列化:querystring.stringify({name:'scott',course:['jade','name']}, ',', ':');
(1){}:url参数.(2)第2个参数的‘,’表示,代替&,(3)第3个参数的':'表示:代替=。
2、反序列化:querystring.parse('name=scott&course=jade')。
querystring.parse('name=scott,course=jade',',')。
querystring.parse('name:scott,course:jade', ',', ':')。
querystring.parse('name:scott,course:jade', ',', ':', 0)。最后一个参数maxKey=0,就对key的个数没有限制了。
二、转译与反转译
1、转译:querystring.escape('<哈哈>');
2、反转译:querystring.unescape();
查看全部 -
一、uri:Uniform Resource Identifier,统一资源标识符,字符串格式规范
url:Uniform Resource Locator,统一资源定位符
url是uri的子集,url肯定是uri,uri不一定是url。
查看全部 -
大量js文件写入页面会使得方法被重写掉,变量被被覆盖掉,特别是存在一些依赖关系的时候,很容易出错,是因为javascript天生缺少一种模块管理机制 来隔离实现不同功能的js片段,避免他们相互污染,为此采用命名空间的方式,吧变量和函数限制在某个特定的作用域内 ,人为约定一套命名规范来约束代码,从而使得代码安全执行。nodejs克服了以上缺点
查看全部 -
一、模块流程:
1、创建模块。teacher.js
2、导出模块。exports.add = function() {}; export是一个对象,可以挂载属性,number,data, string等。
3、加载模块。var teacher = require('./teacher.js);
4、使用模块。teacher.add('Scot);
二、node中没有全局命名空间这个概念。
三、exports, module.exports.
1、希望你的模块是一个传统的模块实例:用exports.
2、想要你的模块成为一个特别的对象类型:用module.exports。
3、module.exports是真实存在的东西,exports是module.exports的辅助方法。
4、module.exports如果已经有了属性,exports就会被忽略。
查看全部 -
一、nodeJs文件和模块是一一对应的,模块类型:核心模块,文件模块,npm安装的第三方模块。
二、引入文件的2种方式:文件路径引入,文件名引入。
查看全部 -
一、javascript天生缺少模块管理机制,来隔离不同功能的Js片段,避免相互污染。
解决:匿名空间方式,把变量和函数限制在某个特定的作用域内。
查看全部 -
一、js与node.js脚本执行,变量,方法没什么差异,但是所在的环境底层,都不太一样。
都有自己特殊的环境变量。
查看全部 -
nodejs的版本一定要API文档保持同步
不同版本的nodejs接口不一定相同
甚至是相同的接口使用规范也有区别
0.10.0x
查看全部 -
nodejs 版本管理模块 n
查看全部 -
nodejs url 方法
查看全部 -
浏览器 window document 全局变量
服务器 process 全局变量
查看全部 -
查看全部
-
偶数位为稳定版本,奇数为非稳定版本
查看全部 -
Node.js本质是一个JS运行环境;
可以解析JS代码,没有浏览器安全级的限制;
提供系统级别的API: 如文件的读写,进程的管理,网络通信。
查看全部
举报