首先,客戶端和服務器直接是有交互的 —— 請求訪問 與 響應 。報文,就是攜帶了客戶端與服務器(還有代理)之間交流信息的數據塊。html
簡要拎出兩點:程序員
起始行(請求行)服務器 |
<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 | 從服務器上刪除一份文檔 | 否 |
通常由:通用首部 / 請求首部 / 實體首部 / 擴展首部 組成。(後二者可選)
發送的實體數據信息
起始行(響應行) |
<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相似。
響應首部:爲客戶端提供了一些額外的信息,好比服務器信息。