HTTP 協議基礎及發展歷史

2021-08-30 08:54:58 字數 2308 閱讀 5077

低三層物理層:主要作用是定義物理裝置如何傳輸資料。

資料鏈路層:在通訊的實體間建立資料鏈路連線。

網路層:為資料在結點之間傳輸建立邏輯鏈路。

傳輸層:

想使用者提供可靠的端到端(end-to-end)服務。

傳輸層向高層遮蔽了下層資料通訊的細節。

應用層:

為應用軟體提供了很多服務

構建於tcp協議之上

遮蔽網路傳輸相關細節

只有乙個命令 get 

沒有 header 等描述資料的資訊

伺服器傳送完畢, 就關閉 tcp 連線

增加了很多命令

增加了 staatus code 和 header

多字符集支援、 多部分傳送、許可權、 快取

持久連線

pipeline

增加 host 和其他一些命令

所有資料以二進位制傳輸

同乙個連線裡面傳送多個請求不再需要按照順序來

頭資訊壓縮以及推送等提高效率的功能

服務端可以主動傳送一些請求

http 是請求和響應 所以要 通過 tcp來建立連線通道

乙個 tcp 通道 可以通過多個 http請求

通過三次握手 來確認這個連線過程  規避因為網路原因從而產生的資源消耗 從而建立 tcp 連線

三次握手:

第一次握手:客戶端傳送syn包(syn=x)到伺服器,並進入syn_send狀態,等待伺服器確認;

第二次握手:伺服器收到syn包,必須確認客戶的syn(ack=x+1),同時自己也傳送乙個syn包(syn=y),即syn+ack包,此時伺服器進入syn_recv狀態;

第三次握手:客戶端收到伺服器的syn+ack包,向伺服器傳送確認包ack(ack=y+1),此包傳送完畢,客戶端和伺服器進入established狀態,完成三次握手。

握手過程中傳送的包裡不包含資料,三次握手完畢後,客戶端與伺服器才正式開始傳送資料。理想狀態下,tcp連線一旦建立,在通訊雙方中的任何一方主動關閉連線之前,tcp 連線都將被一直保持下去。

與建立連線的「三次握手」類似,斷開乙個tcp連線則需要「四次握手」。

第一次揮手:主動關閉方傳送乙個fin,用來關閉主動方到被動關閉方的資料傳送,也就是主動關閉方告訴被動關閉方:我已經不 會再給你發資料了(當然,在fin包之前傳送出去的資料,如果沒有收到對應的ack確認報文,主動關閉方依然會重發這些資料),但是,此時主動關閉方還可 以接受資料。

第二次揮手:被動關閉方收到fin包後,傳送乙個ack給對方,確認序號為收到序號+1(與syn相同,乙個fin占用乙個序號)。

第三次揮手:被動關閉方傳送乙個fin,用來關閉被動關閉方到主動關閉方的資料傳送,也就是告訴主動關閉方,我的資料也傳送完了,不會再給你發資料了。

第四次揮手:主動關閉方收到fin後,傳送乙個ack給被動關閉方,確認序號為收到序號+1,至此,完成四次揮手。

uri : 包含 url 和 urn ,uniform resource identifier 統一資源標誌符,用來唯一標識網際網路上的資訊資源

url:

uniform resource locator 統一資源定位器,

格式:   

urn:永久統一資源定位器

http 方法:

用來定義對於資源的操作。

常用get、post等

從定義上講有各自的語義。

定義伺服器對請求的處理結果

各個區間的 code 有各自的語義。

好的 http 服務可以通過 code 判斷結果

HTTP協議基礎及發展歷史

物理層主要作用是定義物理裝置如何傳輸資料 資料鏈路層在通訊的實體間建立資料鏈路連線 網路層為資料在結點之間傳輸建立邏輯鏈路 向使用者提供可靠的端到端 end to end 服務 傳輸層向高層遮蔽了下層資料通訊的細節 為應用軟體提供了很多服務 構建於tcp協議之.上 遮蔽網路傳輸相關細節 只有一 個命...

HTTP協議發展歷史

這是最早定稿的http版本,這個版本中它的內容非常地簡單。這個版本和現在普遍使用的http 1.1差不多,在http 0.9版本基礎上進行了改進。這個版本是在http 1.0的基礎上增加了一些功能來優化網路連線的過程。雖然現在還沒有普及,但是毫無疑問是未來的趨勢。第乙個頭資訊的壓縮。在http 1....

略說http協議(一 http歷史及http基礎)

http於1990年誕生,此時的http尚未作為正式的標準建立,這時的http被稱為http 0.9.http作為標準被公布是在1996年,其被正式命名為http 1.0。而後1997年公布的http 1.1是目前主流的http協議版本。http至今沒有怎麼更新,顯著用的最多的是是http 1.1....