【学习笔记】HTTP通讯基础
HTTP通訊基礎
?
一、HTTP 協(xié)議用于客戶端和服務器端之間的通信
起始行開頭的“GET”表示請求訪問服務器的類型,稱為方法(method)。
隨后的字符串 /index.htm 指明了請求訪問的資源對象,也叫做請求 URI(request-URI)。
最后的 HTTP/1.1,即 HTTP 的版本號,用來提示客戶端使用的 HTTP 協(xié)議功能。
綜合來看,這段請求內容的意思是:請求訪問某臺 HTTP 服務器上的/index.htm 頁面資源。
請求報文是由請求方法、請求 URI、協(xié)議版本、可選的請求首部字段和內容實體構成的。
?
接收到請求的服務器,會將請求內容的處理結果以響應的形式返回。
在起始行開頭的 HTTP/1.1 表示服務器對應的 HTTP 版本。
緊挨著的 200 OK 表示請求的處理結果的狀態(tài)碼(status code)和原因短語(reason-phrase)。下一行顯示了創(chuàng)建響應的日期時間,是首部字段(header field)內的一個屬性。
接著以一空行分隔,之后的內容稱為資源實體的主體(entity body)。
響應報文基本上由協(xié)議版本、狀態(tài)碼(表示請求成功或失敗的數(shù)字代碼)、用以解釋狀態(tài)碼的原因短語、可選的響應首部字段以及實體主體構成。
HTTP協(xié)議自身不具備保存之前發(fā)送過的請求或者相應的功能(即無狀態(tài)協(xié)議),這是為了更快的處理大量事務,確保協(xié)議的可伸縮性。但為了實現(xiàn)保持狀態(tài)的功能,引入了cookie技術。
?
二、HTTP/1.1中可使用的方法
GET :獲取資源
GET 方法用來請求訪問已被 URI 識別的資源。指定的資源經(jīng)服務器端解析后返回響應內容。也就是說,如果請求的資源是文本,那就保持原樣返回;如果是像 CGI(Common Gateway Interface,通用網(wǎng)關接口)那樣的程序,則返回經(jīng)過執(zhí)行后的輸出結果。
?
POST:傳輸實體主體
POST 方法用來傳輸實體的主體。雖然用 GET 方法也可以傳輸實體的主體,但一般不用 GET 方法進行傳輸,而是用 POST 方法。雖說 POST 的功能與 GET 很相似,但POST 的主要目的并不是獲取響應的主體內容。
?
PUT:傳輸文件
PUT 方法用來傳輸文件。就像 FTP 協(xié)議的文件上傳一樣,要求在請求報文的主體中包含文件內容,然后保存到請求 URI 指定的位置。但是,鑒于 HTTP/1.1 的 PUT 方法自身不帶驗證機制,任何人都可以上傳文件 , 存在安全性問題,因此一般的 Web 網(wǎng)站不使用該方法。若配合 Web 應用程序的驗證機制,或架構設計采用REST(REpresentational State Transfer,表征狀態(tài)轉移)標準的同類Web 網(wǎng)站,就可能會開放使用 PUT 方法。
?
HEAD:獲得報文首部
HEAD 方法和 GET 方法一樣,只是不返回報文主體部分。用于確認URI 的有效性及資源更新的日期時間等。
?
DELETE:刪除文件
DELETE 方法用來刪除文件,是與 PUT 相反的方法。DELETE 方法按請求 URI 刪除指定的資源。但是,HTTP/1.1 的 DELETE 方法本身和 PUT 方法一樣不帶驗證機制,所以一般的 Web 網(wǎng)站也不使用 DELETE 方法。當配合 Web 應用程序的驗證機制,或遵守 REST 標準時還是有可能會開放使用的。
?
OPTIONS:詢問支持的方法
OPTIONS 方法用來查詢針對請求 URI 指定的資源支持的方法。
?
TRACE:追蹤路徑
TRACE 方法是讓 Web 服務器端將之前的請求通信環(huán)回給客戶端的方法。發(fā)送請求時,在 Max-Forwards 首部字段中填入數(shù)值,每經(jīng)過一個服務器端就將該數(shù)字減 1,當數(shù)值剛好減到 0 時,就停止繼續(xù)傳輸,最后接收到請求的服務器端則返回狀態(tài)碼 200 OK 的響應。
客戶端通過 TRACE 方法可以查詢發(fā)送出去的請求是怎樣被加工修改/ 篡改的。這是因為,請求想要連接到源目標服務器可能會通過代理中轉,TRACE 方法就是用來確認連接過程中發(fā)生的一系列操作。但是,TRACE 方法本來就不怎么常用,再加上它容易引發(fā)XST(Cross-Site Tracing,跨站追蹤)攻擊,通常就更不會用到了。
?
CONNECT:要求用隧道協(xié)議連接代理
CONNECT 方法要求在與代理服務器通信時建立隧道,實現(xiàn)用隧道協(xié)議進行 TCP 通信。主要使用 SSL(Secure Sockets Layer,安全套接層)和 TLS(Transport Layer Security,傳輸層安全)協(xié)議把通信內容加密后經(jīng)網(wǎng)絡隧道傳輸。
CONNECT 方法的格式如下所示:
CONNECT 代理服務器名:端口號 HTTP版本
?
?
?
?
總結
以上是生活随笔為你收集整理的【学习笔记】HTTP通讯基础的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【学习笔记】JSON基础概念简介
- 下一篇: 【学习笔记】HTTPS概述