2018-12-15\網(wǎng)絡(luò)與IP&node js服務(wù)器

HTTP與TCP 協(xié)議

HTTP 協(xié)議的底層其實(shí)是由 TCP 協(xié)議和 IP 協(xié)議(簡(jiǎn)稱 TCP/IP)構(gòu)建的。關(guān)于TCP 協(xié)議(傳輸控制協(xié)議)桑孩,有兩個(gè)相關(guān)知識(shí)點(diǎn)需要了解:

  1. tcp與udp的區(qū)別
    [博客]https://www.nowcoder.com/questionTerminal/63c8b45c91a544bd8febc1f1ff02e3b5?toCommentId=73766
    答:tcp可靠(可靠指的是了解是誰(shuí)收到客戶端請(qǐng)求)麦乞、面向連接蚂夕,相對(duì)udp較慢锹漱;udp不可靠,不面向連接奥喻、相對(duì)tcp較快偶宫。
    2.tcp的三次握手指的是什么 [博客]https://github.com/jawil/blog/issues/14
    答:每次建立連接前,客戶端和服務(wù)端之前都要進(jìn)行三次對(duì)話才開始正式傳輸內(nèi)容:
  • 客戶端:我要連接你了环鲤,可以嗎
  • 服務(wù)端:嗯纯趋,我準(zhǔn)備好了,連接我吧
  • 客戶端:那我連接你咯楔绞。
  • (開始后面步驟)

IP

IP包括內(nèi)網(wǎng) IP 和外網(wǎng) IP结闸,除此之外,還有兩個(gè)特別特殊的 IP酒朵,就是本地 IP:127.0.0.1桦锄。本地 IP 永遠(yuǎn)表示設(shè)備自己。

還有一個(gè)特別特殊的 IP:0.0.0.0蔫耽,它不表示任何設(shè)備结耀。這個(gè) IP 不同的地方含義不同,以后我們會(huì)用到匙铡,用到的時(shí)候再說意思图甜。

端口

你想要訪問一個(gè)設(shè)備(前提是你使用的是 TCP 或 UDP 協(xié)議。還記得嗎鳖眼,HTTP 就使用了 TCP)黑毅,只指定 IP 是不夠的,還必須指定端口(Port)钦讳。
端口其實(shí)就是一個(gè)編號(hào)矿瘦,并不是一種硬件。
一個(gè)服務(wù)器(硬件)不一定只提供一種服務(wù)愿卒,比如一個(gè)服務(wù)器既提供 HTTP 服務(wù)缚去,又提供 FTP 服務(wù),還提供 SMTP 服務(wù)(郵件服務(wù))琼开,那么只用一個(gè) IP 是無法告訴服務(wù)器你想要使用哪種服務(wù)易结。
所以這里有一個(gè)重要的原則:一個(gè)端口對(duì)應(yīng)一個(gè)服務(wù)。

使用node.js寫服務(wù)器

使用node.js,可以完成一個(gè)服務(wù)器的demo來理解客戶端(這里就是瀏覽器啦~)和服務(wù)器的交互(發(fā)送請(qǐng)求和響應(yīng))

代碼的連接在這里:[node.js服務(wù)器]搞动。躏精。。滋尉。玉控。飞主。

在終端上執(zhí)行代碼就啟動(dòng)了這個(gè)服務(wù)器:

node server-1.js 8888
  1. 客戶端發(fā)送請(qǐng)求:
    在瀏覽器里輸入服務(wù)器地址 localhost:8080/index?name=yss狮惜,服務(wù)器收到請(qǐng)求后會(huì)根據(jù)server-1.js中下面的代碼給出反饋:
console.log('ss說:得到http路徑\n' + path)  
console.log('ss說:查詢字符串的路徑\n' + query)
console.log('ss說:含查詢字符串的路徑\n' + pathWithQuery)

2.服務(wù)器的反饋
下面這段代碼,服務(wù)器會(huì)根據(jù).setheader里的content type要求碌识,來解析response.write中的內(nèi)容碾篡,最后會(huì)反饋到頁(yè)面上形成網(wǎng)頁(yè)。

if(path === '/index'){
    response.statusCode = 200
    response.setHeader('Content-Type', 'text/html; charset=utf-8')
    response.write('<!DOCTYPE html>\n<html>' + '<head><link rel="stylesheet" href="/style"></head>' + '<body><h1>我是html</h1>' + '<script src="/script"></script>' +'</body></html>')
    response.end()
  }else if(path === '/style'){
    response.statusCode = 200
    response.setHeader('Content-Type', 'text/css; charset=utf-8')
    response.write('body{background: red;}')
    response.end()    
  }else if(path === '/script'){
    response.statusCode = 200
    response.setHeader('Content-Type', 'text/javascript; charset=utf-8')
    response.write('Alert(“我是js執(zhí)行的”)')
    response.end()    
  }
  else{
    response.statusCode = 404
    response.setHeader('Content-Type', 'text/html;charset=utf-8')
    response.write('嗚嗚嗚')
    response.end()
  }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末筏餐,一起剝皮案震驚了整個(gè)濱河市开泽,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌魁瞪,老刑警劉巖穆律,帶你破解...
    沈念sama閱讀 206,723評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異导俘,居然都是意外死亡峦耘,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門旅薄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來辅髓,“玉大人,你說我怎么就攤上這事少梁÷蹇冢” “怎么了?”我有些...
    開封第一講書人閱讀 152,998評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵凯沪,是天一觀的道長(zhǎng)第焰。 經(jīng)常有香客問我,道長(zhǎng)妨马,這世上最難降的妖魔是什么挺举? 我笑而不...
    開封第一講書人閱讀 55,323評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮身笤,結(jié)果婚禮上豹悬,老公的妹妹穿的比我還像新娘。我一直安慰自己液荸,他們只是感情好瞻佛,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般伤柄。 火紅的嫁衣襯著肌膚如雪绊困。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,079評(píng)論 1 285
  • 那天适刀,我揣著相機(jī)與錄音秤朗,去河邊找鬼。 笑死笔喉,一個(gè)胖子當(dāng)著我的面吹牛取视,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播常挚,決...
    沈念sama閱讀 38,389評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼作谭,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了奄毡?” 一聲冷哼從身側(cè)響起折欠,我...
    開封第一講書人閱讀 37,019評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎吼过,沒想到半個(gè)月后锐秦,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,519評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡盗忱,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評(píng)論 2 325
  • 正文 我和宋清朗相戀三年酱床,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片售淡。...
    茶點(diǎn)故事閱讀 38,100評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡斤葱,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出揖闸,到底是詐尸還是另有隱情揍堕,我是刑警寧澤,帶...
    沈念sama閱讀 33,738評(píng)論 4 324
  • 正文 年R本政府宣布汤纸,位于F島的核電站衩茸,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏贮泞。R本人自食惡果不足惜楞慈,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望啃擦。 院中可真熱鬧囊蓝,春花似錦、人聲如沸令蛉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至蝎宇,卻和暖如春弟劲,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背姥芥。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工兔乞, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人凉唐。 一個(gè)月前我還...
    沈念sama閱讀 45,547評(píng)論 2 354
  • 正文 我出身青樓庸追,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親熊榛。 傳聞我的和親對(duì)象是個(gè)殘疾皇子锚国,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評(píng)論 2 345

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

  • 計(jì)算機(jī)網(wǎng)絡(luò)概述 網(wǎng)絡(luò)編程的實(shí)質(zhì)就是兩個(gè)(或多個(gè))設(shè)備(例如計(jì)算機(jī))之間的數(shù)據(jù)傳輸腕巡。 按照計(jì)算機(jī)網(wǎng)絡(luò)的定義玄坦,通過一定...
    蛋炒飯_By閱讀 1,210評(píng)論 0 10
  • 網(wǎng)絡(luò)編程 網(wǎng)絡(luò)編程對(duì)于很多的初學(xué)者來說,都是很向往的一種編程技能绘沉,但是很多的初學(xué)者卻因?yàn)楹荛L(zhǎng)一段時(shí)間無法進(jìn)入網(wǎng)絡(luò)編...
    程序員歐陽(yáng)閱讀 2,006評(píng)論 1 37
  • 1.這篇文章不是本人原創(chuàng)的煎楣,只是個(gè)人為了對(duì)這部分知識(shí)做一個(gè)整理和系統(tǒng)的輸出而編輯成的,在此鄭重地向本文所引用文章的...
    SOMCENT閱讀 13,037評(píng)論 6 174
  • 名詞延伸 通俗的說困曙,域名就相當(dāng)于一個(gè)家庭的門牌號(hào)碼,別人通過這個(gè)號(hào)碼可以很容易的找到你谦去。如果把IP地址比作一間房子...
    楊大蝦閱讀 20,590評(píng)論 2 57
  • 1慷丽、TCP為什么需要3次握手,4次斷開鳄哭? “三次握手”的目的是“為了防止已失效的連接請(qǐng)求報(bào)文段突然又傳送到了服務(wù)端...
    杰倫哎呦哎呦閱讀 3,472評(píng)論 0 6