《圖解HTTP》————第二章
二、簡單的HTTP協議
1.請求報文
GET /index.htm HTTP/1.1
Host:hackr.jp
GET 表示請求伺服器的型別,稱為 方法
/index.htm 指明瞭請求訪問的資源物件,也叫做請求URI
HTTP/1.1 即HTTP版本號,用來提示客戶端使用HTTP協議功能
這段請求內容的意思是:請求訪問某臺HTTP伺服器上的/index.htm頁面資源
請求報文由請求方法,請求URI,協議版本,可選的請求首部欄位和內容實體構成
2.響應報文
HTTP/1.1 200 OK
Date:Tue,10 JUL 2012 06:50:15 GMT
Content-Length:362
Content-Type:text/html
<html>
HTTP/1.1伺服器HTTP版本
200 OK 請求的處理結果的狀態碼和原因短語
Date:Tue,10 JUL 2012 06:50:15 GMT 建立響應的日期時間,是首部欄位內的屬性
空行分隔
資源實體的主體
響應報文由協議版本,狀態碼,用以解釋狀態碼的原因短語,可選的響應首部欄位以及實體主體構成
3.HTTP是不儲存狀態的協議,無狀態(stateless)
有了Cookie技術,再用HTTP協議通訊,就可以管理狀態。
4.請求URI定位資源
指定請求URI的方式
- URI為完整的請求URI GET http://hackr.jp/index.htm HTTP/1.1
- 在首部欄位Host中寫明網路域名或ip地址
GET /index.htm HTTP/1.1
Host:hackr.jp
如何不是訪問特定資源,而是對伺服器本身發起請求,*代替URI
OPTIONS * HTTP/1.1
5.HTTP方法
- GET:獲取資源 用來請求訪問已被URI識別的資源
- POST:傳輸實體主體(GET也可,一般不用) “想把這條訊息告訴你”
- PUT:傳輸檔案 不帶驗證機制,都可上傳,不安全
- HEAD:獲得報文首部 用於確認URI的有效性及資源更新的日期時間 和GET一樣,但不返回報文主體
- DELETE:刪除檔案 與PUT相反,按請求URI刪除指定的資源 不安全
- OPTIONS:詢問支援的方法 用來查詢針對請求URI指定的資源支援的方法
OPTIONS * HTTP/1.1
Host:www.hackr.jp
HTTP/1.1 200 OK
Allow:GET,POST,HEAD,OPTIONS
- TRACE:追蹤路徑 讓Web伺服器端將之前的請求通訊返回給客戶端的方法 客戶端可以查詢傳送出去的去請求是怎樣被加工修改,篡改的 用來確認連線過程中的代理和中轉
- CONNECT:要求用隧道協議連線代理 要求在於代理伺服器通訊時建立隧道,實現用隧道協議進行TCP通訊 主要使用SSL(安全套接層)和TLS(傳輸層安全)協議把通訊內容加密後經網路隧道傳輸
格式 CONNECT 代理伺服器名:埠號 HTTP版本
6.使用方法下達命令
向請求URI制定的資源傳送請求報文是,採用稱為方法的命令
方法的作用在於,可以指定請求的資源按期望產生某種行為
7.持久連結節省通訊量 只要任意一段沒有明確提出斷開連線,則保持TCP連結狀態
8.使用Cookie的狀態管理
Cookie技術通過在請求和響應報文中寫入Cookie資訊來控制客戶端的狀態
- 請求報文,沒有Cookie資訊的狀態
- 響應報文,伺服器端生產Cookie資訊
- 請求報文,自動傳送儲存這的Cookie資訊