首页 > 代码库 > 11-13

11-13

##一、描述一个完整的HTTP事物(访问一个网址后都发生了什么?)
* 1、输入网址
* 2、解析域名(主机名),对应的IP地址
* 3、建立连接(三次握手)(双工信道:发送信道、接受信道)
* 4、发送
* 5、四次挥手,断开连接

##二##
计算机网络OSI模型分为:物理层、数据层、网络层、传输层、会话层、表示层、应用层

HTTP:超文本传输协议是互联网上应用最为广泛的一种网络协议。

无状态协议:每一次请求对于服务器来说都是新的

get:请求的数据放在请求头中;post:会把请求数据放在请求体中

##三、NodeJs##
Node.js是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用

###1、模块化###
模块化用于解决变量名冲突和依赖问题

**expree框架**

通过应用生成器工具 express 可以快速创建一个应用的骨架。

* 运用npm下载安装
* -h 选项可以列出所有可用的命令行选项,可以用来检测是否安装好
* 创建一个命名为 myapp的文件
* 分别通过`$ cd myapp 和 $ npm install`安装所有依赖包
`> set DEBUG=myapp & npm start`命令
* 在浏览器中打开 http://localhost:3000/ 网址

###2、CommonJs规范###
创建一个新的文件夹,引入CommonJs规范文件

Node程序由许多个模块组成,每个模块就是一个文件。Node模块采用了CommonJS规范。

根据CommonJS规范,一个单独的文件就是一个模块。每一个模块都是一个单独的作用域,也就是说,在一个文件定义的变量(还包括函数和类),都是私有的,对其他文件是不可见的。

当访问另一个JS文件时
    
    `b.js //modle.export.add = add;
     a.js //require(‘./b.js‘) `

**问题:null和undefined的区别**

相同:undefined和null在if语句中,都会被自动转为false,相等运算符甚至直接报告两者相等

不同:Undefined类型只有一个值,即undefined。当声明的变量还未被初始化时,变量的默认值为undefined。
Null类型也只有一个值,即null。null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象。null表示"没有对象",即该处不应该有值。典型用法是:

    (1) 作为函数的参数,表示该函数的参数不是对象。

    (2) 作为对象原型链的终点。
undefined表示"缺少值",就是此处应该有一个值,但是还没有定义。典型用法是:

    (1)变量被声明了,但没有赋值时,就等于undefined。

    (2) 调用函数时,应该提供的参数没有提供,该参数等于undefined。

    (3)对象没有赋值的属性,该属性的值为undefined。

    (4)函数没有返回值时,默认返回undefined。

11-13