HTTP報文整理

首先,客戶端和服務器直接是有交互的 —— 請求訪問 與 響應 。報文,就是攜帶了客戶端與服務器(還有代理)之間交流信息的數據塊。html

簡要拎出兩點:程序員

  • HTTP報文只有:請求報文(request message) 和 響應報文(response message),兩種。
  • 報文由三部分組成:起始行(start line)、包含屬性的首部塊(header)、可選的,包含數據的主體(body)

請求報文

起始行(請求行)服務器

<method> <request-URL> <version>spa

GET /test/helloworld.txt HTTP/1.1
首部塊 <headers>

Date:Sun, 01 Oct 2018 17:15:16 GMT代理

Accept: text/*htm

Host:www.jaykoo.com資源

User-agent:Mozilla/4.75 [en] (Win8; U)文檔

主體 <entity-body> CRLF(空行,此請求報文中並未攜帶主體)

請求頭

request-URL:請求資源的路徑。it

version:io

  格式:HTTP/<major>.<minor>(major:主要版本號,minor:次要版本號)

method:客戶端對服務器執行的動做,常見有

方法 描述 是否有主體
GET 從服務器獲取文檔
HEAD 只從服務器獲取文檔首部
POST 想服務器發送須要處理的數據
PUT 將請求的主體部分存儲在服務器上
TRACE 對可能通過代理服務器傳送到服務器上去的報文進行追蹤
OPTIONS 決定能夠在服務器上執行哪些方法
DELETE 從服務器上刪除一份文檔

首部塊(headers)

通常由:通用首部 / 請求首部 / 實體首部 / 擴展首部 組成。(後二者可選)

  • 通用首部:請求報文和響應報文都能攜帶的基本信息。好比建立時間(Date)
  • 請求首部:只在請求報文中有意義的首部。上面的Accpt:Text/*(Accept表示了告訴服務器可以發送哪些媒體類型,讓服務器對發送的內容作更好的決定。這裏爲text)
  • 實體首部:報文攜帶的實體相關信息。
  • 擴展首部:非標準的首部,由程序員建立。

實體

發送的實體數據信息

 

響應報文

起始行(響應行)

<version> <status> <reason-phrase>

HTTP/1.0 200 OK
首部塊 <headers>

Date:Sun, 01 Oct 2018 17:15:16 GMT

Server:Apache/1.3.11 BSafe-SSL/1.38 (Linux)

Content-length:403

Content-Type:text/html

主體 <entity-body>

<HTML>

<HEAD><TITLE>JayKoo</TITLE></HEAD>

<BODY>

<H1>JayKoo</H1>

<P>This is a test!</P>

</BODY>

</HTML>

響應頭

version:同上

status:狀態碼,常見網頁狀態碼有404(服務器沒法找到請求的URL響應的資源)。上面的200表示成功

reason-phrase:緣由短語,爲狀態碼提供了文本解釋。

首部塊(headers)

通常由:通用首部 / 響應首部 / 實體首部 / 擴展首部 組成。(後二者可選)

除了響應首部,其他都與請求報文的headers相似。

  響應首部:爲客戶端提供了一些額外的信息,好比服務器信息。

實體(見表格)

相關文章
相關標籤/搜索