HTTP 協議 基礎

2021-09-26 09:06:39 字數 1492 閱讀 3134

概述

http 是基於 tcp/ip 協議的應用層協議,它不涉及資料報(packet)的傳輸,主要是規定客戶端和伺服器之間的通訊格式,預設使用 80 埠。

http 協議最早版本是 http/0.9,經歷了 http/1.0 和 http/1/1 的發展,到目前為止已經是 http/2.0 。其中 http/1.0 最為普遍也是目前使用最久的乙個版本。

http 協議主要有以下幾個特點:

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

簡單快速。客戶端向伺服器請求時,只需要傳送請求方法和路徑。

靈活。http 允許傳輸任意型別的資料物件。

無連線。每次連線只處理乙個請求。http/0.9 和 http/1.0 採用非持久連線,http/1.1 採用持久連線。

無狀態。http 協議是無狀態協議,對事務處理沒有記憶能力。一方面,若後續處理需要上一次的資訊,那麼這些資料需要重傳,這導致連線傳輸的資料量大增。另一方面,伺服器不需要前面的資訊時它的應答就會很快。

無狀態協議

http 協議是無狀態的。所謂無狀態,是指伺服器不會儲存客戶端請求的資料,這樣同乙個客戶端這次請求和上乙個請求是沒有對應關係的,對伺服器來說,每乙個請求都是全新的,它並不知道兩個請求來自同乙個客戶端。

為了解決這個問題,瀏覽器引入了 cookie 機制,每次請求客戶端都將 cookie 中的資料全部發給服務端,而服務端將資料寫入 cookie 響應給客戶端。

http/1.1 持久連線

在 http/0.9 和 http/1.0 使用非持久連線。在非持續連線下,每個 tcp 只連線乙個 web 物件,連線在一次 請求-回應 後都會關閉,而持續連線可以讓乙個連線被多個請求重複利用。這種連線持久化顯著減少了請求延遲,因為客戶不用在首次請求後再次進行 tcp 互動確認建立連線。http/1.1 引入了持續連線機制,不必為每個 web 物件建立乙個新的連線,乙個連線可以傳送多個物件。

http/1.1 還進行了寬頻優化,如引入了分塊傳輸編碼來允許流化傳輸持續連線上傳送的內容,取代原先的 buffer 模式。http 管道允許客戶在上乙個回應被收到前傳送多重請求從而進一步減少延遲的時間。

http/1.1 管道機制

http/1.1 引入了管道機制,管道機制前提是在持久連線下完成。在同乙個 tcp 連線中,客戶端可以同時發生多個請求,而不像以前那樣在同乙個 tcp 連線中發出請求後需要等待伺服器做出回應,然後才能發生下乙個請求。不過按 http/1.1 協議,伺服器端必須按客戶端請求的順序恢復請求。

工作流程

一次 http 請求-響應 稱為乙個事務

1)客戶端與伺服器建立連線。因為 http 協議是基於 tcp 協議的,所以每次建立連線時都要經過三次握手。

2)建立連線後,客戶端傳送乙個請求給服務端。

3)服務端接收請求後,給予相應的響應訊息。

4)客戶端接收伺服器響應的訊息,然後客戶端與伺服器斷開連線。

http協議基礎

定義 http協議是一種基於請求 響應模式的,無狀態協議.請求方法 http 1.1 方法 作用 get 請求獲取由request uri所所標識的資源 post 在request uri所標識的資源後附加新的資訊 head 請求獲取由request uri所所標識的資源的響應訊息報頭 put 請求...

Http協議基礎

一直忽略了一些最基礎,最本質的東西。是時候該補補了 http基於請求與響應模式的 無狀態的 應用層的協議,常基於tcp的連線方式。http允許傳輸任意型別的資料物件,http協議是無狀態協議。無狀態是指協議對於事務處理沒有記憶能力。缺少狀態意味著如果後續處理需要前面的資訊,則它必須重傳,這樣可能導致...

http協議基礎

安全牛 web安全課程筆記 明文 https只能提高傳輸層安全。而且不防中間人 無狀態 cookie cycle 請求 響應 header set cookie 伺服器發給客戶端 content length 可以用於快速鑑別不同的頁面 由伺服器發給客戶端 location 重定向使用者到另乙個頁面...