HTTP協議詳解

兜里有糖请分享發表於2024-11-03

什麼是HTTP協議?

HTTP協議是Hyper Text Transfer Protocol(超文字傳輸協議)的縮寫,是用於全球資訊網(WWW:World Wide Web )伺服器與本地瀏覽器之間傳輸超文字的傳送協議。HTTP是一個屬於應用層的物件導向的協議,由於其簡捷、快速的方式,適用於分散式超媒體資訊系統。它於1990年提出,經過幾年的使用與發展,得到不斷地完善和擴充套件。HTTP協議工作於客戶端-服務端架構為上。瀏覽器作為HTTP客戶端透過URL向HTTP服務端即WEB伺服器傳送所有請求。Web伺服器根據接收到的請求後,向客戶端傳送響應資訊。

1、HTTP協議特性

  • 基於TCP/IP協議

  • 基於請求-響應模式

  • 無狀態儲存

  • 短連線和長連線

    HTTP1.0預設使用的是短連線。瀏覽器和伺服器每進行一次HTTP操作,就建立一次連線,任務結束就中斷連線。 HTTP/1.1起,預設使用長連線。要使用長連線,客戶端和伺服器的HTTP首部的Connection都要設定為keep-alive,才能支援長連線。 HTTP長連線,指的是複用TCP連線。多個HTTP請求可以複用同一個TCP連線,這就節省了TCP連線建立和斷開的消耗。

2、HTTP請求協議和響應協議

http協議包含由瀏覽器傳送資料到伺服器需要遵循的請求協議與伺服器傳送資料到瀏覽器需要遵循的請求協議。用於HTTP協議互動的信被為HTTP報文。請求端(客戶端)的HTTP報文 做請求報文,響應端(伺服器端)的 做響應報文。HTTP報文字身是由多行資料構成的字文字。

  • 完整URL格式:協議、ip、埠、路徑、引數 例如:https://www.baidu.com/s?wd=部落格園
    • 協議:https
    • ip/域名:www.baidu.com
    • 埠:80
    • 路徑:/s 直到遇見?為止
    • 引數:wd=部落格園
  • 請求協議格式(瀏覽器組裝)

      請求首行

      請求頭(可以多個)

      空行

      請求體

  • 響應協議格式(伺服器組裝)

      響應首行

      響應頭(可以多個)

      空行

      響應體

3、get請求和post請求

HTTP 協議是用於在客戶端(如瀏覽器)和伺服器之間傳輸資料的協議。它定義了多種請求方法,其中最常用的兩種是 GETPOST 請求。以下是對這兩種請求的詳細介紹:

GET 請求

  • 定義:GET 請求用於從伺服器獲取資料。它是無副作用的,即不會對伺服器上的資源產生改變。

  • 特點:

    • 引數傳遞:請求引數通常附加在 URL 中,透過 ?& 分隔。例如:https://example.com/api?name=John&age=30

    • 限制:URL 的長度有限制,這通常取決於瀏覽器和伺服器,實現上大約為 2000 字元,因此不適合傳遞大量資料。

    • 安全性:因為引數在 URL 中明文顯示,所以 GET 請求不適合傳遞敏感資訊(如密碼)。

POST 請求

  • 定義:POST 請求用於向伺服器傳送資料,通常用於建立或更新資源。

  • 特點:

    • 引數傳遞:請求引數包含在請求體中,而不是 URL 中。這使得可以傳遞大量資料。

    • 靈活性:可以處理多種型別的資料,比如 JSON、XML、表單資料等。

    • 安全性:雖然 POST 請求比 GET 請求更安全(因為資料不暴露在 URL 中),但仍需透過 HTTPS 進行加密,以保護敏感資訊。

相關文章