最近工作有點閑。一直想著充實下自己。正好在知乎上有人推薦了HTTP權(quán)威指南這本書备禀。

之所以選擇學(xué)習(xí)HTTP,是因為某種程度上工作需要罷了奈揍。最近一段時間一直在自學(xué)Python曲尸,需要寫爬蟲搜集各大招聘網(wǎng)站的招聘信息。但是我本人對網(wǎng)絡(luò)的機理一無所知打月,導(dǎo)致經(jīng)常知其然而不知其所以然队腐。數(shù)學(xué)專業(yè)出身的我,最討厭的就是這點了奏篙。
HTTP柴淘,簡單點說,是應(yīng)用層的協(xié)議秘通,基于TCP所在的傳輸層为严。按照書中的總結(jié):TCP負責(zé),1)無差錯的數(shù)據(jù)傳輸肺稀,2)按序傳輸第股,3)未分段的數(shù)據(jù)流。而HTTP呢话原?我的理解是夕吻,感覺就像是兩國之間的貿(mào)易公司。要么你下單繁仁,我按照你的要求發(fā)送貨物涉馅。要么我下單蓝丙,你按照我的要求來發(fā)送貨物肄方。而TCP協(xié)議則是航運公司,只負責(zé)運輸貨物敛助。
在現(xiàn)實中,貿(mào)易公司下單晤揣,發(fā)貨桥爽,雙方需要填寫訂單,發(fā)貨清單昧识。同理钠四,在網(wǎng)絡(luò)中,雙方也需要遵循類似的流程滞诺,用來規(guī)范雙方形导。這個流程就是請求和響應(yīng)的報文。
HTTP報文是由一行一行的字符串組成的[就像我們平常會把文字和數(shù)字區(qū)分開來一樣习霹,計算機語言也會有相似的區(qū)分。一般是字符串(既文本)炫隶,整數(shù)淋叶,浮點數(shù)(小數(shù))等]。
HTTP的報文格式如下:
請求報文:
- GET /writer#/notebokks/88888/notes.txt HTTP/1.0
- Accept:text/*
- Accept-Language:en,fr
響應(yīng)報文:
- HTTP/1.0 200 OK
- Content-type:text/plain
- Content-length:19
- Hi! Welcome to my Blog!
我們首先看請求報文伪阶。請求報文一般是客戶端煞檩,也就是你的瀏覽器發(fā)送給服務(wù)器的報文。GET很好理解哈栅贴。這是一個請求的命令斟湃。好比意思是說:“XXX,我文件丟在這個地方( /writer#/notebokks/88888/notes.txt)了檐薯,你把它發(fā)給我凝赛。記得是掃描后快遞給我(HTTP/1.0),記得是文字哈(text)坛缕,英文或者法文版的(en墓猎,fr)。不要拍照片給我哈赚楚。謝謝啦”毙沾。
當(dāng)然,除開GET宠页,還有許多其他請求命令左胞。比如POST,PUT举户,DELETE烤宙,HEAD。 不過敛摘,比較常用的是GET和POST门烂。
POST就是:你突然接到一個電話,是你老婆打來的,“老公屯远,我最近看上了一個包包蔓姚,有點兒貴。那個慨丐,你卡號是多少來著坡脐?” 。 “那個房揭,咳备闲,對,我卡號是多少來著捅暴?你讓我想想哈恬砂。喂!喂蓬痒!你聽的到嗎泻骤?喂!嘟梧奢!嘟狱掂!嘟!”
言歸正傳哈亲轨,畢竟是你老婆趋惨,卡號還是要給的。畢竟你老婆是你的惦蚊,她的包也是你的器虾,不過是左手和右手的關(guān)系。這么想养筒,心情是不是突然好一點兒了啦曾撤。
言歸正傳2.0
HTTP服務(wù)器(支持HTTP協(xié)議的服務(wù)器)接受到來自你的請求后,當(dāng)然不能坐視不理晕粪,只能立馬按照你的要求將你需要的資源(文本挤悉,圖片,視頻等)按照你要求的協(xié)議版本(HTTP/1.0)發(fā)給你巫湘。這就是所謂的響應(yīng)報文.
那個装悲,咳,Hi! Welcome to my Blog! 這就是服務(wù)器快遞給你的作業(yè)內(nèi)容尚氛,雖然是英文的诀诊,但是也忒簡單了點吧?也就比Hello World稍微復(fù)雜點阅嘶。你英語老師是教體育的吧属瓣?
好吧载迄!這就是HTTP權(quán)威指南的第一章。
難道第一章就這么點內(nèi)容嗎抡蛙?
當(dāng)然不是护昧。
雖然第一章的標(biāo)題叫HTTP概述,但是:
我的這個叫Preview of HTTP概述粗截。