http模塊

?http模塊
?創(chuàng)建服務(wù): 使用createServer返回一個(gè)http.Server對(duì)象,這個(gè)對(duì)象就是一個(gè)服務(wù)器
?http.createServer(callback(request, response))
?callback:每一次請(qǐng)求都會(huì)觸發(fā)
?request對(duì)象、response對(duì)象 都屬于IncomingMessage 的梳理: 它可用于訪問響應(yīng)狀態(tài)、消息頭昼浦、以及數(shù)據(jù)
?request對(duì)象
?request.headers : 請(qǐng)求或響應(yīng)的消息的頭對(duì)象
?request.method : 請(qǐng)求方法為字符串
?request.url : 請(qǐng)求的URL字符串它僅包含實(shí)際 HTTP 請(qǐng)求中存在的 URL
?response對(duì)象
?response.end(data)
?此方法向服務(wù)器發(fā)出信號(hào),表明已發(fā)送所有響應(yīng)頭和主體霞揉,該服務(wù)器應(yīng)該視為此消息已完成有额。 必須在每個(gè)響應(yīng)上調(diào)用此 response.end() 方法
?如果指定了 data,則相當(dāng)于調(diào)用 response.write(data, encoding) 之后再調(diào)用 response.end(callback)
?response.write(data)
?第一次調(diào)用 response.write() 時(shí),將緩沖的響應(yīng)頭信息和主體的第一個(gè)數(shù)據(jù)塊發(fā)送給客戶端
?第二次調(diào)用 response.write() 時(shí)慕蔚,Node.js 假定數(shù)據(jù)將被流式傳輸丐黄,并分別發(fā)送新數(shù)據(jù)
?response.writeHead(statusCode[, statusMessage][, headers]) :向請(qǐng)求發(fā)送響應(yīng)頭
?statusCode:狀態(tài)碼 404 200
?headers:設(shè)置響應(yīng)頭對(duì)象
?{Content-Type: 'text/plain'}
?response.setHeader(name, value)
?為隱式響應(yīng)頭設(shè)置單個(gè)響應(yīng)頭的值。 如果此響應(yīng)頭已存在于待發(fā)送的響應(yīng)頭中孔飒,則其值將被替換
?response.setHeader('Set-Cookie', ['foo=bar', 'bar=baz']);
?
?request與response對(duì)象
?on('data', (chunk) => {chunk: 傳輸編碼灌闺,通過拼接轉(zhuǎn)為字符串得到傳輸?shù)臄?shù)據(jù)})
?on('end', () => {傳輸結(jié)束})
?
?http.request(options, callback);
?功能:作為客戶端向其他http服務(wù)發(fā)送請(qǐng)求
?返回一個(gè)request對(duì)象
?request.end(); // 結(jié)束請(qǐng)求
?request.write(data); // 發(fā)送請(qǐng)求攜帶的參數(shù)
?request.on('error', callback(err)); //監(jiān)聽返回的錯(cuò)誤
?options
?host: localhost,
?port: 默認(rèn)80,
?path: 請(qǐng)求的路徑
?method: 默認(rèn)GET
?headers : 請(qǐng)求頭的內(nèi)容
?Content-Type : application/x-www-form-urlencoded // 表單傳參方式
?application/json ;// json傳參格式
?callback(response)
?responsed對(duì)象
?res.setEncoding('utf-8') 設(shè)置編碼格式
?res.on('data', callback(chunk)) 接收數(shù)據(jù)
?res.on('end', callback(err)) 結(jié)束
?http.get(options, callback)
?簡(jiǎn)版的http.request
?與之區(qū)別
?只支持get
?不需要手動(dòng)的調(diào)用request.end()
?理論知識(shí)點(diǎn)
?http模塊: 是nodejs中的服務(wù)端或者客戶端坏瞄,能讓我們nodejs中搭建一套服務(wù)器桂对,或者客戶端
?服務(wù)端: 為客戶端提供服務(wù)的,例如提供數(shù)據(jù)資源或者保存客戶端的數(shù)據(jù)鸠匀,運(yùn)行服務(wù)端的終端(或者電腦)稱為服務(wù)器
?常規(guī)服務(wù)器: Apche Nginx
?客戶端: 為用戶提供本地服務(wù)的程序蕉斜,接收來自服務(wù)端的數(shù)據(jù)的軟件應(yīng)用
?終端:顯示設(shè)備或者操作設(shè)備
?http協(xié)議: 超文本傳輸協(xié)議
?超文本傳輸協(xié)議,是一個(gè)基于請(qǐng)求與響應(yīng),無狀態(tài)的蛛勉,應(yīng)用層的協(xié)議鹿寻,常基于TCP/IP協(xié)議傳輸數(shù)據(jù)诽凌,互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議,所有的WWW文件都必須遵守這個(gè)標(biāo)準(zhǔn)毡熏。設(shè)計(jì)HTTP的初衷是為了提供一種發(fā)布和接收HTML頁面的方法。
?https協(xié)議:
?HTTPS是身披SSL外殼的HTTP侣诵,HTTPS是一種計(jì)算機(jī)網(wǎng)絡(luò)進(jìn)行安全通信的傳輸協(xié)議痢法,經(jīng)由HTTP進(jìn)行通信,利用SSL/TLS建立通信通道杜顺,加密數(shù)據(jù)包财搁,HTTPS使用的主要目的是提供對(duì)網(wǎng)站服務(wù)器的身份認(rèn)證,同時(shí)保護(hù)交換數(shù)據(jù)的隱私與完整性躬络。
?TCP協(xié)議:傳輸控制協(xié)議
?是一種面向連接的尖奔、端對(duì)端的、可靠的穷当、基于IP的傳輸層協(xié)議
?三次握手
?四次揮手
?標(biāo)識(shí)符
?URG:緊急指針(urgent pointer)有效提茁。
?ACK:確認(rèn)序號(hào)有效。
?PSH:接收方應(yīng)該盡快將這個(gè)報(bào)文交給應(yīng)用層馁菜。
?RST:重置連接茴扁。
?SYN:發(fā)起一個(gè)新連接。
?FIN:釋放一個(gè)連接汪疮。
?IP
?IP協(xié)議位于網(wǎng)絡(luò)層峭火,IP協(xié)議規(guī)定了數(shù)據(jù)傳輸時(shí)的基本單元(數(shù)據(jù)包)和格式,IP協(xié)議還定義了數(shù)據(jù)包的遞交辦法和路由選擇
?TPC/IP協(xié)議是傳輸層協(xié)議智嚷,關(guān)注數(shù)據(jù)網(wǎng)絡(luò)中傳輸方式和傳輸目的地卖丸,而HTTP是應(yīng)用層協(xié)議,關(guān)注如何封裝數(shù)據(jù)
?chunk
?設(shè)置響應(yīng)頭
?Transfer-Encoding: chunked
?是啥:
?分塊傳輸編碼(Chunked transfer encoding)是超文本傳輸協(xié)議(HTTP)中的一種數(shù)據(jù)傳輸機(jī)制
?允許HTTP由網(wǎng)頁服務(wù)器發(fā)送給客戶端應(yīng)用( 通常是網(wǎng)頁瀏覽器)的數(shù)據(jù)可以分成多個(gè)部分盏道。 分塊傳輸編碼只在HTTP協(xié)議1.1版本(HTTP/1.1)中提供
?好處
?HTTP分塊傳輸編碼允許服務(wù)器為動(dòng)態(tài)生成的內(nèi)容維持HTTP持久鏈接
?在壓縮的情形中坯苹,分塊編碼有利于一邊進(jìn)行壓縮一邊發(fā)送數(shù)據(jù),而不是先完成壓縮過程以得知壓縮后數(shù)據(jù)的大小

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末摇天,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子恐仑,更是在濱河造成了極大的恐慌泉坐,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,807評(píng)論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件裳仆,死亡現(xiàn)場(chǎng)離奇詭異腕让,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門纯丸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來偏形,“玉大人,你說我怎么就攤上這事觉鼻】∨ぃ” “怎么了?”我有些...
    開封第一講書人閱讀 169,589評(píng)論 0 363
  • 文/不壞的土叔 我叫張陵坠陈,是天一觀的道長(zhǎng)萨惑。 經(jīng)常有香客問我,道長(zhǎng)仇矾,這世上最難降的妖魔是什么庸蔼? 我笑而不...
    開封第一講書人閱讀 60,188評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮贮匕,結(jié)果婚禮上姐仅,老公的妹妹穿的比我還像新娘。我一直安慰自己刻盐,他們只是感情好掏膏,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,185評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著隙疚,像睡著了一般壤追。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上供屉,一...
    開封第一講書人閱讀 52,785評(píng)論 1 314
  • 那天行冰,我揣著相機(jī)與錄音,去河邊找鬼伶丐。 笑死悼做,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的哗魂。 我是一名探鬼主播肛走,決...
    沈念sama閱讀 41,220評(píng)論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼录别!你這毒婦竟也來了朽色?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,167評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤组题,失蹤者是張志新(化名)和其女友劉穎葫男,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體崔列,經(jīng)...
    沈念sama閱讀 46,698評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡梢褐,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,767評(píng)論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片盈咳。...
    茶點(diǎn)故事閱讀 40,912評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡耿眉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出鱼响,到底是詐尸還是另有隱情鸣剪,我是刑警寧澤,帶...
    沈念sama閱讀 36,572評(píng)論 5 351
  • 正文 年R本政府宣布热押,位于F島的核電站西傀,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏桶癣。R本人自食惡果不足惜拥褂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,254評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望牙寞。 院中可真熱鬧饺鹃,春花似錦、人聲如沸间雀。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽惹挟。三九已至茄螃,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間连锯,已是汗流浹背归苍。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留运怖,地道東北人拼弃。 一個(gè)月前我還...
    沈念sama閱讀 49,359評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像摇展,于是被迫代替她去往敵國(guó)和親吻氧。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,922評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • 以下內(nèi)容來自:Node.js開發(fā)指南咏连。在此感謝原作者提供的幫助盯孙! HTTP 服務(wù)器與客戶端 Node.js 標(biāo)準(zhǔn)庫...
    沈祥佑閱讀 490評(píng)論 0 2
  • 國(guó)家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報(bào)批稿:20170802 前言: 排版 ...
    庭說閱讀 11,010評(píng)論 6 13
  • 首先需要 require('http')。 1祟滴、為了支持各種可能的HTTP應(yīng)用镀梭,Node.js的HTTP API是...
    imakan閱讀 18,173評(píng)論 0 0
  • Ryan Dahl開發(fā)node的初衷就是:把Nginx非阻塞IO功能和一個(gè)高度封裝的WEB服務(wù)器結(jié)合在一起的東東。...
    中v中閱讀 351評(píng)論 0 0
  • 金(5月14日)日功課完成:站樁踱启、誦經(jīng)、奇跡功課、日志 (當(dāng)下)此刻就是支持我成長(zhǎng)的最大機(jī)會(huì) (過程)深呼吸一埠偿,二...
    宇宙云英閱讀 164評(píng)論 0 0