http服務器是什么,服務器組成部分介紹


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

猜你喜歡