若是你還搞不懂HTTP報文

組成

HTTP報文由三部分組成:html

  1. 起始行:報文的第一行就是起始行,在請求報文中用來講明要作些什麼,在響應報文中說明出現了什麼狀況
  2. 報文頭:起始行後面有零個或多個字段。每一個字段都包含一個名字和一個值,爲了便於解析,二者之間用冒號(:)來分隔,首部以一個空行結束
  3. 主體:空行以後就是可選的報文主體了,其中包含了全部類型的數據。請求主體是要發送給服務器的數據;響應主體是要返回給客戶端的數據。起始行和報文都是文本且都是結構化的,而主體則不一樣,主體中能夠包含任意的二進制數據(好比圖片、視頻)。固然,主體中也能夠包含文本。

請求報文

一個請求報文起始行的例子:瀏覽器

GET /dir/index.html HTTP/1.1
  • GET:這裏指明請求方法是GET,還有其它方法好比POST、DELETE、HEAD、OPTIONS、PUT、TRACE
  • /dir/index.html:這裏指明URL,它和報文頭的Host屬性組成完整的請求URL
  • HTTP/1.1:這裏指明協議名稱及版本號

報文頭裏有不少的字段,具幾個常見的例子:緩存

  • Host:請求的服務器地址,好比www.google.com
  • Accept: 指明客戶端能夠接受的數據類型,好比text/html
  • Cookie:攜帶的Cookie信息
  • Cache-Control:對緩存進行控制,指明一個請求但願響應返回的內容在客戶端要被緩存多久或是否緩存

還有很是多的字段,能夠查閱文檔,例如 HTTP MDN服務器

最後舉一個請求主體的例子:google

name=ning&age=24

這裏的請求主體就是咱們提交的表單裏的數據。spa

響應報文

一個響應報文起始行的例子:code

HTTP/1.1 200 OK

跟請求報文比,響應報文的起始行裏多了一個狀態碼來告訴客戶端本次請求的處理結果。如下是狀態碼的類型:視頻

圖片描述

例如:
200 OK
303 See Other
304 Not Modified
404 Not Found
500 Internal Server Error htm

關於響應報文頭裏面的各類字段,能夠查閱文檔 HTTP MDNblog

總結

這些就是關於HTTP報文的基本知識點,其實內容最多地方是報文頭裏各類字段的用法,好比不少字段是用來作瀏覽器緩存控制的。由於涉及字段的內容太多了,更具體的字段用法能夠查閱文檔 HTTP MDN

相關文章
相關標籤/搜索