-
http進(jìn)階需要理解的幾個(gè)問(wèn)題
什么是回調(diào)?
什么是同步/異步?
什么是I/O?
什么是單線程/多線程?
什么是阻塞/非阻塞?
什么是事件?
什么是事件驅(qū)動(dòng)?
什么是基于事件驅(qū)動(dòng)的回調(diào)?
什么是事件循環(huán)?
查看全部 -
域名解析
1、瀏覽器搜索自身的DNS緩存,eg. chrome://net-internal/#dns
2、搜索操作系統(tǒng)自身的DNS緩存
3、讀取本地的host文件
4、瀏覽器發(fā)起一個(gè)DNS的一個(gè)系統(tǒng)調(diào)用
? ?????- 寬帶運(yùn)營(yíng)商服務(wù)器查看本身緩存
????????- 代替瀏覽器發(fā)起一個(gè)迭代DNS解析請(qǐng)求
????????- 運(yùn)營(yíng)商服務(wù)器把結(jié)果返回操作系統(tǒng)內(nèi)核同時(shí)緩存起來(lái)
????????- 操作系統(tǒng)內(nèi)核把結(jié)果返回瀏覽器
????????- 瀏覽器拿到對(duì)應(yīng)的IP地址
5、瀏覽器獲得IP地址后,發(fā)起http三次握手
????- TCP 鏈接請(qǐng)求 ,經(jīng)過(guò)TCP/IP協(xié)議棧,最終到達(dá)服務(wù)端,建立連接
6、TCP/IP連接建立起來(lái)后,瀏覽器就可以向服務(wù)器發(fā)送http請(qǐng)求了。
7、接受請(qǐng)求,響應(yīng)請(qǐng)求,返回?cái)?shù)據(jù)。
8、瀏覽器拿到響應(yīng)數(shù)據(jù)。
9、瀏覽器開(kāi)始渲染頁(yè)面,或者其他操作。
????
查看全部 -
下載sublime text工具
查看全部 -
安裝 git 便于開(kāi)發(fā)
進(jìn)入node官網(wǎng)下載安裝node
檢查版本
查看全部 -
查看全部
-
http概念進(jìn)階
查看全部 -
HTTP概念進(jìn)階
查看全部 -
comment.js
查看全部 -
headers 長(zhǎng)度修改<br />查看全部
-
comment.js查看全部
-
comment.js
查看全部 -
handers
查看全部 -
var?http?=?require('http') var?querystring?=?require('querystring') var?postData?=?querystring.stringify({ ????'content':?'一起期待下一期的課程', ????'cid':?348 }) var?options?=?{ ????hostname:?'idcbgp.cn', ????port:?80, ????path:?'/course/document', ????method:?'POST', ????headers:?{ ???????'Accept':?'application/json,?text/javascript,?*/*;?q=0.01', ???????'Accept-Encoding':?'gzip,?deflate',? ???????..... ???????'Content-Length':?postData.length, ???????.... ????} } var?req?=?http.request(options,?function(res)?{ ????console.log('Status:?'?+?res.statusCode) ????console.log('Headers:?'?+?JSON.stringify(res.headers)) ???? ????res.on('data',?function(chunk){ ????????console.log(Buffer.isBuffer(chunk)) ????????console.log(typeof?chunk) ????}) ???? ????res.on('end',?function(){ ????????console.log('評(píng)論完畢!') ????}) }) ????req.on('error',?function(e){ ????????console.log('Error:?'?+?e.message) ????}) ???? ????req.write(postData) ????req.end()
查看全部 -
http -get / request
查看全部 -
清除監(jiān)聽(tīng)。
查看全部
舉報(bào)