做了多年web開發,http真是熟悉的陌生人(經常在用,但是從頭到尾理清楚真的是很有難度的),其實http概述和netty中的http應用真有必要說下,一起聊聊netty實現tomcat的功能,請求服務的功能 。(一)Http協議概述
1.什么是Http協議
HTTP是一個屬于【應用層】的面向對象的協議,由于其簡捷、快速的方式,適用于分布式超媒體信息系統 。2.HTTP協議的主要特點
支持客戶/服務器模式 。(二)Http協議交互過程
簡單快速
客戶向服務器請求服務時,只需傳送請求方法和路徑 。請求方法常用的有GET、HEAD、POST 。每種方法規定了客戶與
服務器聯系的類型不同 。由于HTTP協議簡單,使得HTTP服務器的程序規模小,因而通信速度很快 。
靈活
HTTP允許傳輸任意類型的數據對象 。正在傳輸的類型由Content-Type加以標記 。
無連接
無連接的含義是限制每次連接只處理一個請求 。服務器處理完客戶的請求,并收到客戶的應答后,即斷開連接 。采用這種方式可以節省傳輸時間 。
無狀態
HTTP協議是無狀態協議 。無狀態是指協議對于事務處理沒有記憶能力 。缺少狀態意味著如果后續處理需要前面的信息,則它必須重傳,這樣可能導致每次連接傳送的數據量增大 。另一方面,在服務器不需要先前信息時它的應答就較快 。從HTTP協議來講是無狀態的,其實在應用的時候,很多情況通過回話的方式還是有狀態的 。
協議交互本質是指協議兩端(客戶端、服務端),互聯網上沒有協議是混亂的,正如如果現實中沒有法律也會打亂一樣 。1.傳輸數據
傳輸數據一般基于TCP/IP 實現,體現到開發語言上就是我們所熟悉的Socket 編程 。2.交換數據
交換數據本質是指,兩端(客戶端、服務端)能各自識別對方所發送的數據 。那么這就需要制定一套【報文編碼】格式,雙方以該格式編碼數據發送給對方 。注: 我們可以通過抓包工具(fiddler)可以直接看到該報文格式 。
Http 對應的Request 與Response報文
報文約定好以后兩端都需要對其進行解碼和編碼操作3.Http協議內容組成
請求方法方法描述GET請求指定的頁面信息,并返回實體主體 。HEAD類似于get請求,只不過返回的響應中沒有具體的內容,用于獲取報頭POST向指定資源提交數據進行處理請求(例如提交表單或者上傳文件) 。數據被包含在請求體中 。POST請求可能會導致新的資源的建立和/或已有資源的修改 。PUT從客戶端向服務器傳送的數據取代指定的文檔的內容 。DELETE請求服務器刪除指定的頁面 。CONNECTHTTP/1.1協議中預留給能夠將連接改為管道方式的代理服務器 。OPTIONS允許客戶端查看服務器的性能 。TRACE回顯服務器收到的請求,主要用于測試或診斷 。
猜你喜歡
- 屬蛇的克星是什么屬相 什么屬相克屬蛇的
- 微信添加到備注信息是什么意思 微信添加到備注信息怎么做
- 冬天洗澡搓出的泥是什么 冬天洗澡搓出的泥的簡介
- 佶屈聱牙和詰屈聱牙分別是什么意思 佶屈聱牙和詰屈聱牙的解釋
- 心生波瀾是什么意思
- 楓香的功效和作用介紹 楓香的功效和作用是什么
- 心理閾值低是什么意思
- 達字在古文中的意思是什么 達字在古文中的意思是啥
- 紫藤花一年開幾次花 紫藤花花期是什么時候
- 京劇中跑龍套是什么意思 京劇中跑龍套的釋義
