【Python入門】45.Web開發(fā)之 HTTP協(xié)議簡介

摘要:介紹Web開發(fā)的幾個(gè)發(fā)展階段;HTTP協(xié)議簡介浮庐,請求信息、響應(yīng)信息的分析柬焕;HTTP工作原理审残。


*寫在前面:為了更好的學(xué)習(xí)python,博主記錄下自己的學(xué)習(xí)路程斑举。本學(xué)習(xí)筆記基于廖雪峰的Python教程搅轿,如有侵權(quán),請告知?jiǎng)h除懂昂。歡迎與博主一起學(xué)習(xí)Pythonヽ( ̄▽ ̄)? *


目錄

Web開發(fā)
HTTP協(xié)議簡介
HTTP請求信息
HTTP響應(yīng)信息
HTTP工作原理
小結(jié)

Web開發(fā)

如今介时,很多軟件都是以web形式提供,比如新浪微博凌彬、網(wǎng)易新聞等等沸柔。可以說铲敛,Web應(yīng)用開發(fā)是目前軟件開發(fā)中最重要的部分褐澎。

Web開發(fā)經(jīng)歷了幾個(gè)階段:

1.靜態(tài)Web頁面,直接顯示靜態(tài)的HTML頁面伐蒋,修改頁面則要編輯HTML源文件工三,早期的互聯(lián)網(wǎng)頁面就是靜態(tài)的。
2.出現(xiàn)CGI先鱼,Common Gateway Interface俭正。頁面可以處理用戶發(fā)送的動(dòng)態(tài)數(shù)據(jù),比如用戶注冊焙畔。CGI用C/C++編寫掸读。
3.出現(xiàn)ASP/JSP/PHP。由于Web應(yīng)用修改頻率高,C/C++這樣的低級語言不適合Web開發(fā)儿惫。而腳本語言開發(fā)效率高澡罚,且與HTML結(jié)合緊密,因此迅速取代了CGI肾请。ASP是微軟推出的用VBScript腳本編程的Web開發(fā)技術(shù)留搔,JSP是用Java來編寫腳本,PHP本身是開源的腳本語言铛铁。
4.出現(xiàn)MVC隔显,Model-View-Controller。為了提高Web的可維護(hù)性避归,引入了“模型-視圖-控制器”的模式荣月,簡化了Web開發(fā)。
5.現(xiàn)階段梳毙,Web開發(fā)技術(shù)仍在快速發(fā)展,如異步開發(fā)等捐下。

Python是一種解釋型的腳本語言账锹,開發(fā)效率高,而且有許多Web開發(fā)框架以及成熟的模板技術(shù)坷襟,非常適合用來做Web開發(fā)奸柬。

HTTP協(xié)議簡介

HTTP協(xié)議(Hyper Text Transfer Protocol),字面意思為超文本傳輸協(xié)議婴程。是瀏覽器與服務(wù)器之間的傳輸協(xié)議廓奕。

用戶通過瀏覽器向服務(wù)器發(fā)送HTTP請求信息(Request),服務(wù)器收到請求后档叔,向?yàn)g覽器發(fā)送響應(yīng)信息(Response)桌粉。

我們用例子分析一下請求信息與響應(yīng)信息具體是怎么樣的。

HTTP請求信息

用瀏覽器打開網(wǎng)頁之后衙四,按F12铃肯,會(huì)出現(xiàn)一個(gè)開發(fā)者工具界面,在里面可以看到網(wǎng)頁的結(jié)構(gòu)传蹈、通信信息等押逼。

我們以163網(wǎng)易為例,在進(jìn)入網(wǎng)易官網(wǎng)后惦界,按F12挑格,在出現(xiàn)的界面中選擇network,然后在左側(cè)選擇第一個(gè)文件沾歪,之后右側(cè)就會(huì)顯示相關(guān)信息漂彤,點(diǎn)擊view source可以看到具體的信息。


HTTP_1.png

我們截取部分信息來分析一下。

先來看請求信息:

GET / HTTP/1.1
Host: www.163.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.98 Safari/537.36 LBBROWSER
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Referer: http://www.163.com/
Accept-Encoding: gzip, deflate, sdch, br
Accept-Language: zh-CN,zh;q=0.8

第一部分显歧,是請求行仪或。說明請求類型、訪問資源以及HTTP版本士骤。在這里是第一行范删。
GET表示請求類型是GET請求,/表示URL路徑拷肌,/是首頁到旦,HTTP/1.1表示采用的HTTP協(xié)議是1.1版本.

第二部分,是請求頭部巨缘。說明服務(wù)器要使用的附加信息添忘。在這里第一行往后都屬于這一部分。
其中Host表示請求的域名若锁。

第三部分搁骑,空行。請求頭部后面的空行是必須的又固。

第四部分仲器,請求數(shù)據(jù)。這里沒有請求數(shù)據(jù)仰冠。

HTTP響應(yīng)信息

我們再來看一下響應(yīng)信息部分:

HTTP/1.1 200 OK
Expires: Thu, 20 Sep 2018 07:39:34 GMT
Date: Thu, 20 Sep 2018 07:38:14 GMT
Server: nginx
Content-Type: text/html; charset=GBK
Transfer-Encoding: chunked
Vary: Accept-Encoding,User-Agent,Accept
Cache-Control: max-age=80
Content-Encoding: gzip
X-Via: 1.1 PSgdmmsxsw84:1 (Cdn Cache Server V2.0), 1.1 PSgdzsydzd33:0 (Cdn Cache Server V2.0)
Connection: keep-alive

第一部分乏冀,狀態(tài)行。說明HTTP版本洋只、信息狀態(tài)碼和狀態(tài)信息辆沦。這里是第一行。
狀態(tài)碼200表示請求成功识虚。

第二部分肢扯,信息報(bào)頭。說明客戶端要使用的一些附加信息舷礼。第一行后面的都是鹃彻。
其中Content-Type表示響應(yīng)的內(nèi)容,text/html表示HTML網(wǎng)頁妻献。

第三部分蛛株,空行。消息報(bào)頭后面的空行是必須的育拨。

第四部分谨履,響應(yīng)正文。即HTML源碼熬丧。
我們在開發(fā)者工具中點(diǎn)擊Response笋粟,就能看到:

HTTP_2.png

HTTP工作原理

看了HTTP的請求信息和響應(yīng)信息,我們來總結(jié)一下HTTP的工作原理。

第一步害捕,建立連接绿淋。
瀏覽器與Web服務(wù)器的端口建立一個(gè)TCP連接。

第二步尝盼,發(fā)送HTTP請求吞滞。
瀏覽器向服務(wù)器發(fā)送HTTP請求,包括請求方法盾沫、路徑裁赠、域名以及其他相關(guān)Header。

第三步赴精,接收HTTP請求并返回響應(yīng)信息佩捞。
Web服務(wù)器解析請求,并返回響應(yīng)信息蕾哟,包括響應(yīng)狀態(tài)一忱、響應(yīng)類型、其他相關(guān)Header以及響應(yīng)正文渐苏。

第四步掀潮,釋放連接或繼續(xù)請求
若connection為close琼富,則Web服務(wù)器主動(dòng)斷開連接;若connection為keepalive庄新,則Web服務(wù)器繼續(xù)等待請求鞠眉。

第五步,解析響應(yīng)信息择诈。
瀏覽器解析響應(yīng)信息械蹋,包括響應(yīng)頭和響應(yīng)正文。最終解析HTML文本并顯示出來羞芍。

小結(jié)

想要詳細(xì)了解HTTP協(xié)議哗戈,可以看HTTP權(quán)威指南 (廖雪峰推薦)


以上就是本節(jié)的全部內(nèi)容荷科,感謝你的閱讀唯咬。

下一節(jié)內(nèi)容:Web開發(fā)之 HTML簡介

有任何問題與想法,歡迎評論與吐槽畏浆。

和博主一起學(xué)習(xí)Python吧( ̄▽ ̄)~*

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末胆胰,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子刻获,更是在濱河造成了極大的恐慌蜀涨,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異厚柳,居然都是意外死亡氧枣,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進(jìn)店門别垮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來便监,“玉大人,你說我怎么就攤上這事宰闰〔绻螅” “怎么了?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵移袍,是天一觀的道長解藻。 經(jīng)常有香客問我,道長葡盗,這世上最難降的妖魔是什么螟左? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮觅够,結(jié)果婚禮上胶背,老公的妹妹穿的比我還像新娘。我一直安慰自己喘先,他們只是感情好钳吟,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著窘拯,像睡著了一般红且。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上涤姊,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天暇番,我揣著相機(jī)與錄音,去河邊找鬼思喊。 笑死壁酬,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的恨课。 我是一名探鬼主播舆乔,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼庄呈!你這毒婦竟也來了蜕煌?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤诬留,失蹤者是張志新(化名)和其女友劉穎斜纪,沒想到半個(gè)月后贫母,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡盒刚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年腺劣,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片因块。...
    茶點(diǎn)故事閱讀 39,834評論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡橘原,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出涡上,到底是詐尸還是另有隱情趾断,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布吩愧,位于F島的核電站芋酌,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏雁佳。R本人自食惡果不足惜脐帝,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望糖权。 院中可真熱鬧堵腹,春花似錦、人聲如沸星澳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽禁偎。三九已至荡含,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間届垫,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工全释, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留装处,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓浸船,卻偏偏與公主長得像妄迁,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子李命,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評論 2 354

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