http(超文字傳輸協議,hypertext transfer protocol)定義了瀏覽器(即全球資訊網客戶程序)怎樣向全球資訊網伺服器請求全球資訊網文件,以及定義了怎樣把文件傳送給瀏覽器,是面向事務的應用層協議。預設使用80埠。
使用面向連線的tcp作為運輸層協議,保證了資料的可靠傳輸。
http協議本身是無連線的。 通訊雙方在交換http報文之前不需要先建立http連線(通過tcp三次握手建立連線)。
http協議是無狀態的,http協議不對請求和響應之間的通訊狀態進行儲存。也就是說,同乙個客戶第二次訪問同乙個伺服器上的頁面時,伺服器的響應與第一次被訪問時相同。(使用cookie技術可以儲存客戶端與伺服器之間的狀態資訊)。
http請求報文與響應報文都是由三個部分組成的,分別為開始行(請求行)、首部行(請求頭部)、實體主體(請求資料)。
請求行由請求方法字段、url欄位和http協議版本欄位3個字段組成,它們用空格分隔。例如,get /index.html http/1.1。
http協議的請求方法有get、post、head、put、delete、options、trace、connect。
請求頭之後是乙個空行,傳送回車符和換行符,通知伺服器以下不再有請求頭。
請求頭部由關鍵字/值對組成,每行一對,關鍵字和值用英文冒號「:」分隔。請求頭部通知伺服器有關於客戶端請求的資訊,典型的請求頭有:
user-agent:產生請求的瀏覽器型別。
accept:客戶端可識別的內容型別列表。
host:請求的主機名,允許多個網域名稱同處乙個ip位址,即虛擬主機。
請求資料不在get方法中使用,而是在post方法中使用。post方法適用於需要客戶填寫表單的場合。與請求資料相關的最常使用的請求頭是content-type和content-length。
響應報文狀態行:包含http版本、狀態碼、狀態碼的原因短語
狀態碼都是三位數字的,分為5大類,原先有33種[rfc 2616] ,後來又增加了幾種[rfc 6585]。詳細狀態碼參考
常見狀態**、狀態描述的說明如下。
get常用於從伺服器上獲取資料,post常用於向伺服器傳送資料。
get提交,請求的資料會附在url之後, 以?分割url和傳輸資料,多個引數用&連線;例如:login.action?name=hyddd& password=idontknow
。
如果資料是英文本母/數字,原樣傳送,如果是空格,轉換為+,如果是中文/其他字元,則直接把字串用base64加密,得出如: %e4%bd%a0%e5%a5%bd,其中%xx中的xx為該符號以16進製表示的ascii。
post提交:把提交的資料放置在是http包的包體<request-body>中。
因此,get提交的資料會在位址列中顯示出來,而post提交,位址列不會改變。
傳輸資料的大小:
首先宣告,http協議沒有對傳輸的資料大小進行限制,http協議規範也沒有對url長度進行限制。 而在實際開發中存在的限制主要有:
get:特定瀏覽器和伺服器對url長度有限制,例如ie對url長度的限制是2083位元組(2k+35)。對於其他瀏覽器,如netscape、firefox等,理論上沒有長度限制,其限制取決於作業系統的支援。
因此對於get提交時,傳輸資料就會受到url長度的限制。
post:由於不是通過url傳值,理論上資料不受限。但實際各個web伺服器會規定對post提交資料大小進行限制,apache、iis6都有各自的配置。
安全性:
post的安全性要比get的安全性高。注意:這裡所說的安全性和上面get提到的「安全」不是同個概念。上面「安全」的含義僅僅是不作資料修改,而這裡安全的含義是真正的security的含義,比如:通過get提交資料,使用者名稱和密碼將明文出現在url上,因為(1)登入頁面有可能被瀏覽器快取, (2)其他人檢視瀏覽器的歷史紀錄,那麼別人就可以拿到你的賬號和密碼了。
http/1.1特點:
http2.0的多路復用和http1.x中的長連線復用
參考文獻:
《計算機網路》謝希仁 第七版
http1.0、http1.1和http2.0的區別
計算機網路考點整理
osi,tcp ip,五層協議的體系結構,以及各層協議 osi分層 7層 物理層 資料鏈路層 網路層 傳輸層 會話層 表示層 應用層。tcp ip分層 4層 網路介面層 網際層 運輸層 應用層。五層協議 5層 物理層 資料鏈路層 網路層 運輸層 應用層。ip位址的分類 10.0.0.0 10.255...
計算機網路知識點整理(一計算機網路和網際網路)
主機 端系統 便攜機 智慧型手機,平板電腦等。端系統通過通訊鏈路和分組交換機連線在一起。路由器是鏈路層交換機。鏈路的傳輸速率以位元每秒度量 bit s或bps 分組 當一台端系統向另一台端系統傳送一組資料時,傳送端系統將資料分段,並為每段加上首部位元組。當前最著名的分組交換機是路由器 router ...
計算機網路相關知識點
http中瀏覽器乙個url的流程,這個過程中瀏覽器做了什麼,url 統一資源定位符 包括哪三個部分?getpost 可見性資料在url中對所有人可見 資料不會顯示在url中 安全性與post相比,get的安全性較差,因為所傳送的資料是url的一部分 安全,因為引數不會被儲存在瀏覽器歷史或web伺服器...