Http協(xié)議報文結構

概述

Http是基于客戶端/服務端(C/S)的架構模型,通過一個可靠鏈接(TCP)來交換數據.

  • 無連接:服務端處理完客戶的請求,并收到客戶的應答后,即斷開連接.
    早期html網頁面都是靜態(tài)的簡單的,這樣做能節(jié)省服務端的資源,盡可能多的為更多客戶端提供服務.
    后來html頁面變得非常復雜,可能嵌入很多圖片等資源,如果每次訪問一個圖片都要重新建立tcp連接就太低效了,所以人們提出了Keep-Alive來解決低效問題,客戶端和服務器之間的HTTP連接會被保持不會斷開(超過Keep-Alive規(guī)定的時間,意外斷電等情況除外).當客戶端發(fā)送另外一個請求時,就使用這條已經建立的連接.

  • 無狀態(tài):是指服務器端不知道客戶端是什么狀態(tài),每個請求都是獨立的.現在http的請求也是無狀態(tài)的.人們使用Cookie或者session來解決無狀態(tài)問題.

請求報文結構

請求報文:從客戶端向服務端發(fā)送器請求報文.結構如下:

Request.png

由四部分組成:

  • 請求行 -- > 請求方法+URL+協(xié)議版本
  • 請求頭部 --> 頭部字段名 : 值
  • 空行
  • 請求數據

請求方法

指請求報文的類型,實際上就是一些命令,表示對請求對象的操作.常用方法如下表:

方法 含義
OPTION 請求一些選項的信息
GET 請求讀取由URL所標志的信息
HEAD 請求讀取由URL所標志的信息的首部
POST 給服務器添加信息(例如,注釋)
PUT 在指明的URL下存儲一個文檔
DELETE 刪除指明的URL所標志的資源
TRACE 用來進行回環(huán)測試的請求報文
CONNECT 用于代理服務器

響應報文結構

響應報文:從服務端到客戶端的應答.

Resply.png

由四部分組成:

  • 狀態(tài)行 --> 協(xié)議版本 + 狀態(tài)碼 + 短語
  • 響應頭部 --> 頭部字段名:值
  • 空行
  • 響應數據

狀態(tài)碼

  • 1XX:提示信息---請求已經收到,繼續(xù)處理.
  • 2XX:成功 --- 請求已經收到,理解,接受
  • 3XX:重定向 --- 要完成請求必須進行更進一步的處理
  • 4XX:客戶端錯誤 --- 請求有語法錯誤或無法實現
  • 5XX:服務端錯誤 --- 服務器未能實現合法的請求
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容