http協議也是一個連線導向的協議

來源:互聯網
上載者:User

標籤:http協議

本文最初發表於chinaunix.net論壇之文章《[其他] 您瞭解HTTP嗎?http://工作中奇葩HTTP問題經驗大徵集!》之回複。


差點來晚了,本人談一下HTTP。

先回答這幾個問題:
1、你瞭解 HTTP 嗎?
瞭解。
2、你認為你真的很瞭解 HTTP 嗎?
起碼不是新手
3、你知道 HTTP/1.0 和 HTTP/1.1 的區別嗎?
http 1.0 和 1.1的最大區別就是HOST頭,這個是用來實現虛\擬\主機的,也就是一個IP上,可以有多個網站,如果你的網站只是設定了通過HOST區分不同的虛擬機器主機,那麼用戶端通過IP訪問是不行的。當然還有其它區別,keepalive等,這個不用多說。
4、你知道各種 HTTP 返回碼的實際意義嗎?
這個知道一些,只知道幾個重要的就行,別的可以遇到時再查,
比如200成功,300跳轉,其中301和302代表永久和臨時跳轉,在SEO方面很重要
5、你知道各種 Request Header 和 Response Header 裡多種欄位的含義嗎?
請求和相應header,基本上就是幾行key-value對,伺服器和用戶端可以認識其中一些, 也可以不認識
6、你又瞭解 SPDY 嗎?
不瞭解,好像是某公司組織又新搞的玩意,暫時用不著,學習使用技術的目的是為了生存,我反對為了技術而技術。用的著的時候在查資料也不晚。

其實我想說一點的是,我以前搞.net的,但是很多搞.net的人,別看每天都開發asp.net網站,對http協議和web標準根本一知半解,微軟從來不注重這個,微軟注重的只是通過不停的升級,套牢開發人員和小企業賺錢。所以奉勸各位,如果有任何出路,千萬別選擇微軟平台技術。

說到http,我想起一個重要的問題。很多資料,很多書,很多重要的書,甚至有可能你們這次要發的這本書裡,都說到http協議是非串連的,也就是不能保持會話,必須通過cookie來認證使用者。
其實這是非常錯誤的,http協議也是一個連線導向的協議,cookie就是實現會話的機制。
很多人忽視了一點,http協議是一個應用程式層協議,應用程式層協議的特點是,對底層的傳輸網路通訊協定不知曉。
大家都想當然的想到tcp/ip協議,socket等,認為這些協議一旦連上,就可以持續的發送接受資料,好像建立了一層持久串連,但是這怎麼可能,只不過是底層的網路鏈路層、會話層等幫你完成了保持會話的功能,網路又不是電話線,不可能一個串連佔據整個線路。
HTTP協議是一個應用程式層協議,也就是說它可以用任何IPC來傳遞,比如pipe, socket, sharedmemory, 等等,既然http協議不一定通過socket, tcp/ip等傳遞,那你還有什麼資格說http協議是非串連的呢?
從這一點說,http協議不僅僅是連線導向的,我們通常的socket程式,比如QQ、各種聊天程式,C/S等,試用socket來保持會話,也是錯誤的,因為你怎麼知道我用戶端和伺服器一定會通過socket連串連呢? 難道我不能自己發明一個協議,難道我不能用管道、共用記憶體來串連?
socket等,實際上也是檔案,上層的通訊協定,比如QQ的協議,也應該像http協議一樣,自己實現一個會話機制,而不能利用下層的socket來實現會話,因為那樣,下層協議就不能對上層協議透明了。
所以,本人想說的是,千萬不能再說http是非串連的協議了,它就是一個連線導向的協議。


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.