node js(二)

http模塊

API

 http.createServer(callback(request, response)) || new http.Server()

功能: 使用createServer返回一個(gè)http.Server對(duì)象痢士,這個(gè)對(duì)象就是一個(gè)服務(wù)器

callback參數(shù) : 每次有請(qǐng)求時(shí)都會(huì)觸發(fā)
request與response屬于IncomingMessage 的梳理: 它可用于訪問(wèn)響應(yīng)狀態(tài)摘盆、消息頭条辟、以及數(shù)據(jù)

 on('data', callback(chunk))
on('end', callback(err))
request

request.headers
請(qǐng)求或響應(yīng)的消息頭對(duì)象
request.httpVersion
在服務(wù)器請(qǐng)求的情況下晤锹,表示客戶端發(fā)送的 HTTP 版本凤薛。  在客戶端響應(yīng)的情況下收厨,表示連接到的服務(wù)器的 HTTP 版本
request.method
請(qǐng)求方法為字符串
request.url
請(qǐng)求的 URL 字符串缴啡。  它僅包含實(shí)際 HTTP 請(qǐng)求中存在的 URL
response

response.write(chunk[, encoding][, callback])
第一次調(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']);
response.end([data][, encoding][, callback])
此方法向服務(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)

http.request(options,callback)

  • 功能:作為客戶端向其他http服務(wù)發(fā)送請(qǐng)求
  • 返回一個(gè)request對(duì)象
request.end() ; 結(jié)束請(qǐng)求
request.write(data); 請(qǐng)求的數(shù)據(jù)
request.on('error', callback(err)) ; 監(jiān)聽(tīng)返回的錯(cuò)誤

options參數(shù)
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
callback(response)

*   responsed對(duì)象

*   res.setEncoding('utf-8') 設(shè)置編碼個(gè)數(shù)
*   res.on('data', callback(chunk)) 接收數(shù)據(jù)
*   res.on('end', callback(err)) 響應(yīng)結(jié)束
  • http.get(options, callback)

  • 簡(jiǎn)版的http.request

  • 與之區(qū)別

  • 只支持get

  • 不需要手動(dòng)的調(diào)用request.end()

  • 理論

  • http模塊 (http://nodejs.cn/api/http.html#http_class_http_server

  • 是啥: 是nodejs中的服務(wù)端或者客戶端柠贤,

  • 服務(wù)端:為客戶端提供服務(wù)的,例如提供數(shù)據(jù)資源或者保存客戶端的數(shù)據(jù)类缤,運(yùn)行服務(wù)端的終端(或者電腦)稱為服務(wù)器

  • 常規(guī)服務(wù)器: Apche Nginx

  • 客戶端: 為用戶提供本地服務(wù)的程序臼勉,接收來(lái)自服務(wù)端的數(shù)據(jù)的軟件應(yīng)用

  • 終端:顯示設(shè)備或者操作設(shè)備

  • 能干啥:能讓我們nodejs中搭建一套服務(wù)器,或者客戶端

  • http協(xié)議: 超文本傳輸協(xié)議

  • 超文本傳輸協(xié)議餐弱,是一個(gè)基于請(qǐng)求與響應(yīng)宴霸,無(wú)狀態(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頁(yè)面的方法恩闻。

  • 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ù)的隱私與完整性。

  • chunk

  • 設(shè)置響應(yīng)頭

  • Transfer-Encoding: chunked

  • 是啥:

  • 分塊傳輸編碼(Chunked transfer encoding)是超文本傳輸協(xié)議(HTTP)中的一種數(shù)據(jù)傳輸機(jī)制

  • 允許HTTP由網(wǎng)頁(yè)服務(wù)器發(fā)送給客戶端應(yīng)用( 通常是網(wǎng)頁(yè)瀏覽器)的數(shù)據(jù)可以分成多個(gè)部分毅臊。 分塊傳輸編碼只在HTTP協(xié)議1.1版本(HTTP/1.1)中提供

  • 好處

  • HTTP分塊傳輸編碼允許服務(wù)器為動(dòng)態(tài)生成的內(nèi)容維持HTTP持久鏈接

  • 在壓縮的情形中理茎,分塊編碼有利于一邊進(jìn)行壓縮一邊發(fā)送數(shù)據(jù),而不是先完成壓縮過(guò)程以得知壓縮后數(shù)據(jù)的大小

  • TCP 傳輸控制協(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ù)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末卸例,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子肌毅,更是在濱河造成了極大的恐慌筷转,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,539評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件芽腾,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡页衙,警方通過(guò)查閱死者的電腦和手機(jī)摊滔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)店乐,“玉大人艰躺,你說(shuō)我怎么就攤上這事≌0耍” “怎么了腺兴?”我有些...
    開(kāi)封第一講書人閱讀 165,871評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)廉侧。 經(jīng)常有香客問(wèn)我页响,道長(zhǎng),這世上最難降的妖魔是什么段誊? 我笑而不...
    開(kāi)封第一講書人閱讀 58,963評(píng)論 1 295
  • 正文 為了忘掉前任闰蚕,我火速辦了婚禮,結(jié)果婚禮上连舍,老公的妹妹穿的比我還像新娘没陡。我一直安慰自己,他們只是感情好索赏,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布盼玄。 她就那樣靜靜地躺著,像睡著了一般潜腻。 火紅的嫁衣襯著肌膚如雪埃儿。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 51,763評(píng)論 1 307
  • 那天融涣,我揣著相機(jī)與錄音蝌箍,去河邊找鬼青灼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛妓盲,可吹牛的內(nèi)容都是我干的杂拨。 我是一名探鬼主播,決...
    沈念sama閱讀 40,468評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼悯衬,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼弹沽!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起筋粗,我...
    開(kāi)封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤策橘,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后娜亿,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體丽已,經(jīng)...
    沈念sama閱讀 45,850評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評(píng)論 3 338
  • 正文 我和宋清朗相戀三年买决,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了沛婴。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,144評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡督赤,死狀恐怖嘁灯,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情躲舌,我是刑警寧澤丑婿,帶...
    沈念sama閱讀 35,823評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站没卸,受9級(jí)特大地震影響羹奉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜约计,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評(píng)論 3 331
  • 文/蒙蒙 一尘奏、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧病蛉,春花似錦炫加、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,026評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至魄健,卻和暖如春赋铝,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背沽瘦。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,150評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工革骨, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留农尖,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,415評(píng)論 3 373
  • 正文 我出身青樓良哲,卻偏偏與公主長(zhǎng)得像盛卡,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子筑凫,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評(píng)論 2 355

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

  • 國(guó)家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報(bào)批稿:20170802 前言: 排版 ...
    庭說(shuō)閱讀 10,993評(píng)論 6 13
  • 計(jì)算機(jī)網(wǎng)絡(luò)概述 網(wǎng)絡(luò)編程的實(shí)質(zhì)就是兩個(gè)(或多個(gè))設(shè)備(例如計(jì)算機(jī))之間的數(shù)據(jù)傳輸滑沧。 按照計(jì)算機(jī)網(wǎng)絡(luò)的定義,通過(guò)一定...
    蛋炒飯_By閱讀 1,227評(píng)論 0 10
  • 定義 網(wǎng)絡(luò)協(xié)議為計(jì)算機(jī)網(wǎng)絡(luò)中進(jìn)行數(shù)據(jù)交換而建立的規(guī)則巍实、標(biāo)準(zhǔn)或約定的集合滓技。網(wǎng)絡(luò)協(xié)議主要由三個(gè)要素組成:語(yǔ)義、語(yǔ)法及時(shí)...
    FlyAndroid閱讀 992評(píng)論 0 10
  • 七律, 橋 夜黑如烏水如墨丸边, 云驅(qū)天落小星球叠必。 許仙送傘拱橋會(huì), 白蟒繼情湖中游原环。 棧道牛郎吹笛奏挠唆, 楓亭織女...
    孔丙已閱讀 1,534評(píng)論 0 0
  • 1处窥、創(chuàng)建Maven的普通Java項(xiàng)目 2嘱吗、創(chuàng)建Maven的Web項(xiàng)目 3、反向生成 maven 項(xiàng)目的骨架 你是怎...
    黑猴子的家閱讀 380評(píng)論 0 14