HTTP的工作原理 HTTP的特點

2021-09-12 01:24:02 字數 2592 閱讀 9441

http協議定義web客戶端如何從web伺服器請求web頁面,以及伺服器如何把web頁面傳送給客戶端。http協議採用了請求/響應模型。客戶端向伺服器傳送乙個請求報文,請求報文包含請求的方法url協議版本請求頭部請求資料。伺服器以乙個狀態行作為響應,響應的內容包括協議的版本成功或者錯誤**伺服器資訊響應頭部響應資料

以下是 http 請求/響應的步驟:

1、客戶端連線到web伺服器

乙個http客戶端,通常是瀏覽器,與web伺服器的http埠(預設為80)建立乙個tcp套接字連線。例如,

2、傳送http請求

通過tcp套接字,客戶端向web伺服器傳送乙個文字的請求報文,乙個請求報文由請求行、請求頭部、空行和請求資料4部分組成。

3、伺服器接受請求並返回http響應

web伺服器解析請求,定位請求資源。伺服器將資源複本寫到tcp套接字,由客戶端讀取。乙個響應由狀態行、響應頭部、空行和響應資料4部分組成。

4、釋放連線tcp連線

若connection 模式為close,則伺服器主動關閉tcp連線客戶端被動關閉連線,釋放tcp連線;若connection 模式為keepalive,則該連線會保持一段時間,在該時間內可以繼續接收請求;

5、客戶端瀏覽器解析html內容

客戶端瀏覽器首先解析狀態行,檢視表明請求是否成功的狀態**。然後解析每乙個響應頭,響應頭告知以下為若干位元組的html文件和文件的字符集。客戶端瀏覽器讀取響應資料html,根據html的語法對其進行格式化,並在瀏覽器視窗中顯示。

1、瀏覽器向 dns 伺服器請求解析該 url 中的網域名稱所對應的 ip 位址;

2、解析出 ip 位址後,根據該 ip 位址和預設埠 80,和伺服器建立tcp連線;

3、瀏覽器發出讀取檔案(url 中網域名稱後面部分對應的檔案)的http 請求,該請求報文作為 tcp 三次握手的第三個報文的資料傳送給伺服器;

4、伺服器對瀏覽器請求作出響應,並把對應的 html 文字傳送給瀏覽器;

5、釋放 tcp連線;

6、瀏覽器將該 html 文字並顯示內容;

簡單快速:客戶向伺服器請求服務時,只需傳送請求方法和路徑。由於http協議簡單,使得http伺服器的程式規模小,因而通訊速度很快。

靈活:可以傳輸任意型別的資料物件(content-type)

無連線:無連線的含義是限制每次連線只處理乙個請求。

伺服器處理完客戶的請求,並收到客戶的應答後,即斷開連線。採用這種方式可以節省傳輸時間。

無狀態:http協議是無狀態協議。

即我們給伺服器傳送 http 請求之後,伺服器根據請求,會給我們傳送資料過來,但是,傳送完,不會記錄任何。

http的無狀態特性簡化了伺服器的設計,使伺服器更容易支援大量併發的http請求。

支援b/s及c/s模式。

無連線

http 的設計者有意利用這種特點將協議設計為請求時建連線、請求完釋放連線,以盡快將資源釋放出來服務其他客戶端。

隨著時間的推移,網頁變得越來越複雜,裡面可能嵌入了很多,這時候每次訪問都需要建立一次 tcp 連線就顯得很低效。後來,keep-alive 被提出用來解決這效率低的問題。

我們知道http協議採用「請求-應答」模式,當使用非keepalive模式時,每個請求/應答客戶和伺服器都要新建乙個連線,完成之後立即斷開連線;

當使用keep-alive模式時,keep-alive功能使客戶端到伺服器端的連線持續有效,當出現對伺服器的後繼請求時,keep-alive功能避免了建立或者重新建立連線。

http 1.0中預設是關閉的,需要在http頭加入」connection: keep-alive」,才能啟用keep-alive;

http 1.1中預設啟用keep-alive,如果加入」connection: close 「,才關閉,目前大部分瀏覽器都是用http1.1協議,也就是說預設都會發起keep-alive的連線請求了。

無狀態

優點在於解放了伺服器,每一次請求「點到為止」不會造成不必要連線占用

缺點在於每次請求會傳輸大量重複的內容資訊

web 應用程式出現之後,http 無狀態的特性嚴重阻礙了這些應用程式的實現,於是,兩種用於保持 http 連線狀態的技術就應運而生了,乙個是 cookie,而另乙個則是 session。cookie通過在客戶端記錄資訊確定使用者身份session通過在伺服器端記錄資訊確定使用者身份

HTTP的工作原理

在該系統的編碼完成後,首先想到的就是發布了這在之前的部落格 win8 下iis 的安裝和 的發布 中已經提到過 其次想到的就是如何訪問 通過瀏覽器訪問全球資訊網伺服器 它,這就是今天部落格將要寫到的內容。一 什麼是http協議 正如水面航行我們用的是船,鐵路跑運輸的是列車,我們看不到列車在水中游同時...

http的工作原理

客戶機與伺服器建立連線後,傳送乙個請求給伺服器,請求格式為 統一資源識別符號 協議版本號。伺服器收到請求的資訊 包括請求行,請求頭,請求體 伺服器接收到請求後,給予相應的響應資訊,格式為乙個狀態行 包括響應行,響應頭,響應體 在internet上,http通訊通常發生在tcp ip連線之上。預設埠是...

Http工作原理

http1.1 與 http1.0向後相容,執行1.1版本的web伺服器可以與執行1.0版本的瀏覽器 對話 執行1.1版本的瀏覽器也可以與執行1.0版本的web伺服器對話。http和tcp的關係 雖然http1.1和http1.0協議本身沒有規定支援其傳輸的底層協議是哪種協議,但通常情況下都是架構在...