http協議(超文字傳輸協議)是位於tcp/ip結構中的應用層的一種傳輸協議,規定了全球資訊網伺服器之間相互通訊的規則。比如比較常見的web瀏覽器客戶端與應用伺服器的通訊!全球資訊網伺服器之間互相通訊的時候往往需要其它協議的配合才能完成整個通訊的作業,比如應用層的dns協議,網路層的ip協議等眾多協議。然而,為什麼網路通訊需要規定那麼多協議呢?原因終歸於網路體系的分層,大家都知道標準的osi有7層,而當下使用的是tcp/ip結構有4層,那麼在各層的通訊當中,就需要規定各自的規則,使通訊成為可能!http協議就是應用層其中的一種協議!那麼在網路體系中到底什麼是http協議,http協議規定了什麼,怎麼通過http協議來進行網路通訊的?下面我將會簡要說明,具體詳細在後續的文章會一一介紹!
一、
什麼是http協議
在解釋http協議之前,大家首先必須了解實體與對等實體。實體指在網路體系中,每一層用於實現該層功能的活動元素稱為實體(包括該層的硬軟體);對等實體指不同機器上位於同一層次、完成相同功能的兩個實體。那麼http協議就是兩個對等實體之間在應用層有效地通訊所遵守的規則集合。協議由語法、語義和語序三大要素構成。語法包括資料格式,訊號電平等;語義指協議語法成分的含義,包括協議用的控制資訊和差錯管理;語序包括時序控制和速度匹配關係。在後續的介紹中,會不斷的介紹這三大要素的內容!
二、http協議規定了什麼
http協議在http通訊過程中,規定了如何進行網路連線、交換的資訊格式、如何傳輸資訊的規則!
三、如何通過http協議來通訊
**格式:在網際網路中有數千種不同的資料型別即mime,用來
描述並標記web資源。比如text/html 為html格式的文字,image/gif為gif格式的
uri(url,urn):
統一資源識別符號,uri有url,urn2種形式,其中url描述資源的特定位置(已廣泛使用),而urn描述資源的唯一名稱(處於試驗階段)
方法:描述請求的命令,通過這些命令來告訴伺服器要執行什麼動作,比如get,put,delete,post,head
狀態碼:描述響應的狀態,通過這些狀態來告訴客戶端請求的狀態,比如200,302,404
起始行:報文的第一行,在請求報文中說明要做些什麼,在響應報文中說明請求的狀態
首部字段:起始行後面有零個或多個首部字段,首部以乙個空格結束。比如content-length:300,表示響應主體的長度
主體:請求主體包含要傳送給伺服器的資料,響應主體包含要返回給客戶端的資料,如下圖
通過了解這以上幾個概念,相信大家已經大概知道http協議是怎麼進行通訊的了。http協議是通過建立tcp連線,通過uri來定位web資源,web客戶端發起http請求並攜帶請求,伺服器將響應報文返回給web客戶端的一種請求/響應模式的一種通訊。
四、http的發展歷史
http/0.9:2023年的版本,僅支援get請求方法,不支援多**內容的mime型別,各種http首部,版本號
http/1.0:新增了版本號,各種http首部
http/1.0+:新增了持久的keep-alive連線,虛擬主機支援,以及**連線
http/1.1::主要引入重要的效能優化措施,這個版本也正是我們現在使用的http版本
http-ng/2.0::將來....
五、http通訊的支撐
http通訊的支撐主要包括**、快取、閘道器、隧道以及agent**,有了這些支撐,能使通訊更加安全,效能更高,更智慧型。在後續會不斷介紹。
六、總結
通過這篇http協議概要,我們主要了解了什麼是http協議、http協議的組成部分比如報文及一些輔助http通訊的協議比如dns,簡要的描述了http協議在應用層是如何通訊等內容。
HTTP協議概要
三 請求行 請求行的格式為 method request uri http version 換行 這裡的 換行 表示後面的資料需要另起一行寫,即請求行獨佔一行。request uri是指請求頁面的uri。而method即為方法,它指定了請求使用的方法,方法有多種,如圖 方法是大小寫敏感的,如 get...
ICE 協議概要
1 ice協議由三部分組成 1 資料編碼規範,用來進行各種資料型別的序列化。2 客戶端與伺服器端的互動的訊息型別,以及在何種情況下應發出何種訊息的規範。3 客戶端與伺服器端如何協商二者所用協議及編碼版本的規範。2 資料編碼規範 1 數值型別的編碼是little endian x86的都是這個,所以基...
http資料報概要記錄
http協議也就是超文字傳輸協議在通訊時,由客戶端發出請求連線,服務端建立連線 然後,客戶端發出http請求 request 服務端返回響應資訊 respond 由此完成乙個http操作。connecting to go2.163.com 連線伺服器 connected to go2.163.com...