##1、描述一個完整的HTTP事物(訪問一個網址後都發生了什麼?)
* 一、輸入網址
* 二、解析域名(主機名),對應的IP地址
* 三、創建鏈接(三次握手)(雙工信道:發送信道、接受信道)
* 四、發送
* 五、四次揮手,斷開鏈接
##二##
計算機網絡OSI模型分爲:物理層、數據層、網絡層、傳輸層、會話層、表示層、應用層
HTTP:超文本傳輸協議是互聯網上應用最爲普遍的一種網絡協議。
無狀態協議:每一次請求對於服務器來講都是新的
get:請求的數據放在請求頭中;post:會把請求數據放在請求體中
##3、NodeJs##
Node.js是一個基於Chrome JavaScript運行時創建的平臺, 用於方便地搭建響應速度快、易於擴展的網絡應用
###一、模塊化###
模塊化用於解決變量名衝突和依賴問題
**expree框架**
經過應用生成器工具 express 能夠快速建立一個應用的骨架。
* 運用npm下載安裝
* -h 選項能夠列出全部可用的命令行選項,能夠用來檢測是否安裝好
* 建立一個命名爲 myapp的文件
* 分別經過`$ cd myapp 和 $ npm install`安裝全部依賴包
* `> set DEBUG=myapp & npm start`命令
* 在瀏覽器中打開 http://localhost:3000/ 網址
###二、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。express