目錄:html
用來請求訪問已被URI識別的資源,指定的資源經服務器端解析返回響應內容。web
例子以下:安全
請求:服務器
GET /index.html HTTP/1.1 Host:www.furfur.net
響應:返回index.html的頁面資源網絡
Host:虛擬主機運行在同一個IP上,所以使用首部字段Host加以區分。Host會告知服務器,請求的資源所處的互聯網主機名和端口號。Host首部字段在HTTP/1.1規範內是惟一一個必須被包含在請求內的首部字段。svg
POST的主要目的告知服務器信息,同時能夠獲取響應的主體內容。加密
例子以下:.net
請求:3d
POST/submit.cig HTTP/1.1 Host:www.furfur.net
響應:返回submit.cig接收數據的處理結果代理
注意:PUT方法自身不帶驗證機制,存在安全問題
例子以下:
請求:
PUT/fur.html HTTP/1.1 Host:www.furfur.net
響應:響應返回狀態碼204 No Content
204狀態碼錶示服務器 接收的請求已經成功處理,但在返回的響應報文中不含實體的主體內容部分,也不容許返回任何實體。
用來刪除文件,與PUT方法相反,可是HTTP/1.1的DELETE方法自己和PUT方法同樣不帶驗證機制。
例子以下:
請求:
DELETE/fur.html HTTP/1.1 Host:www.furfur.net
響應:響應返回狀態碼204 No Content
與GET同樣,只是不返回報文主體部分,用於確認URI的有效性及資源更新的日期時間等。
例子以下:
請求:
HEAD/fur.html HTTP/1.1 Host:www.furfur.net
響應:返回fur.html有關的響應首部。
OPTIONS詢問針對請求URI指定的資源支持的方法
例子以下:
請求:
OPTIONS * HTTP/1.1 Host:www.furfur.net
響應:
HTTP/1.1 200 OK Allow: GET,POST,HEAD,OPTIONS
TRACE方法讓Web服務器端將以前的請求通訊返回給客戶端的方法。
發送請求時,在Max-Forwards首部字段中填入數字,每通過一個服務器端就將該數字減一,數值爲0時中止繼續傳輸,最後接收到的請求的服務器端返回碼200 OK的響應。
可是TRACE方法容易引起XST(跨站追蹤)攻擊,一般不會用到。
例子以下:
請求:
TRACE /HTTP/1.1 Host:www.furfur.net Max-Forwards:2
響應:
HTTP/1.1 200 OK Content-Type:message/http Content-Length:1024 TRACE/HTTP1.1 Host:www.furfur.net Max-Forwards:2
實現用隧道協議進行TCP通訊,主要使用SSL(安全套接層)和TLS(傳輸層安全)協議把通訊內容加密後經網絡隧道傳輸。
CONNECT 代理服務器名:端口號 HTTP版本
例子以下:
請求:
CONNECT fur.net:8080 HTTP/1.1 Host:www.furfur.net
響應:
HTTP/1.1 200 OK
因爲屢次請求會形成無謂的TCP鏈接的創建和斷開,增長通訊量的開銷,HTTP推出持久鏈接
持久鏈接(HTTP Persistent Connections 也稱 HTTP keep-alive或HTTP connection reuse):只要任意一端沒有明確提出斷開鏈接,則TCP保持鏈接狀態。
持久鏈接使得管線化成爲可能,即不用等待響應亦能夠直接發送下一個請求,這樣能夠作到同時並行發送多個請求,而不用一個一個等待響應。
本文參考自《圖解HTTP》
查看上一篇經過圖輕鬆瞭解各類協議