【HTTP】二、HTTP協議的報文結構


  HTTP有兩類報文:請求報文和響應報文,由於 HTTP 是面向正文的(text-oriented),因此在報文中的每一個字段都是一些 ASCII碼串,因而每個字段的長度都是不確定的。(HTTP2引入了二進制協議)

  這兩種報文的結構基本上是相同的,都是由三部分組成:開始行(用於區分是請求報文還是響應報文)、首部行(一些鍵值對,用以說明一些信息)、實體主體(請求報文一般不用,響應報文也可能不用)。

1、請求報文

  請求報文的最主要特點是:開始行(請求行)有三個內容組成,即方法、請求資源的URL、HTTP的版本號

  URL和版本號很好理解,主要看一下方法,方法其實就是命令,對所請求的對象進行一些操作,請求報文的類型就是由所采用的方法決定的。

  從HTTP/1.1開始,常用的方法有8種:

  以下是一個請求報文的例子:

GET http://www.tsinghua.edu.cn/chn/yxsz/index.html HTTP/1.1
Connection:close  (這是首部行的開始,說明使用非持久連接)
User-Agent:Mozilla/5.0  (表明用戶帶來是使用Netscape瀏覽器)
Accept-Language:cn   (表明希望優先得到中文版本的文檔)
(最后有一個空行)

2、響應報文

  相對應的,對於響應報文來說,最主要的特點是:其開始行(也叫狀態行)由三部分組成,即版本、狀態碼、解釋狀態碼的簡單短語

  而這里主要需要理解的就是狀態碼了,狀態碼都是三位數字,分為5大類共33種。

  • 1xx 表示通知信息的,如請求收到了或正在進行處理。
  • 2xx 表示成功,如接受或知道了。
  • 3xx 表示重定向,表示要完成請求還必須采取進一步的行動。
  • 4xx 表示客戶的差錯,如請求中有錯誤的語法或不能完成。
  • 5xx 表示服務器的差錯,如服務器失效無法完成請求。

  常用狀態碼如下:

狀態碼 含義
100 請求已經接收,客戶端可以繼續發送請求
101 服務器已經收到並且理解了客戶端的請求
200 一切正常
204 請求成功,無資源可返回
206 范圍請求,請求范圍內資源正常返回
301 永久重定向
302 暫時重定向,URL可能還會改變
400 請求存在語法錯誤
401 請求需要有通過HTTP認證的認證信息
403 禁止訪問
404 資源沒找到,not found
500 服務端處理請求發生了錯誤,或web應用存在某些bug或臨時的故障
503 服務器過載或者臨時維護
504 網關超時,代理服務器等待應用服務器響應時的超時

  以下是一個響應報文的例子:

HTTP/1.1 301 Moved Permanently   (永久重定向)
Location:http://www.xyz.edu/ee/index.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM