學(xué)習(xí)《圖解HTTP》-筆記2
GET :獲取資源
GET 方法用來請(qǐng)求訪問已被 URI 識(shí)別的資源。指定的資源經(jīng)服務(wù)器端解析后返回響應(yīng)內(nèi)容。
POST:傳輸實(shí)體主體
POST 方法用來傳輸實(shí)體的主體。
雖然用 GET 方法也可以傳輸實(shí)體的主體,但一般不用 GET 方法進(jìn)行傳輸,而是用 POST 方法。
雖說 POST 的功能與 GET 很相似,但POST 的主要目的并不是獲取響應(yīng)的主體內(nèi)容。
PUT:傳輸文件
PUT 方法用來傳輸文件。就像 FTP 協(xié)議的文件上傳一樣,要求在請(qǐng)求報(bào)文的主體中包含文件內(nèi)容,然后保存到請(qǐng)求 URI 指定的位置。
但是,鑒于 HTTP/1.1 的 PUT 方法自身不帶驗(yàn)證機(jī)制,任何人都可以上傳文件 , 存在安全性問題,因此一般的 Web 網(wǎng)站不使用該方法。
若配合 Web 應(yīng)用程序的驗(yàn)證機(jī)制,或架構(gòu)設(shè)計(jì)采用REST(REpresentational State Transfer,表征狀態(tài)轉(zhuǎn)移)標(biāo)準(zhǔn)的同類Web 網(wǎng)站,就可能會(huì)開放使用 PUT 方法。
HEAD:獲得報(bào)文首部
HEAD 方法和 GET 方法一樣,只是不返回報(bào)文主體部分。用于確認(rèn)URI 的有效性及資源更新的日期時(shí)間等。
DELETE:刪除文件
DELETE 方法用來刪除文件,是與 PUT 相反的方法。DELETE 方法按請(qǐng)求URI 刪除指定的資源。
但是,HTTP/1.1 的 DELETE 方法本身和 PUT 方法一樣不帶驗(yàn)證機(jī)制,所以一般的 Web 網(wǎng)站也不使用 DELETE 方法。
當(dāng)配合 Web 應(yīng)用程序的驗(yàn)證機(jī)制,或遵守 REST 標(biāo)準(zhǔn)時(shí)還是有可能會(huì)開放使用的。
OPTIONS:詢問支持的方法
OPTIONS 方法用來查詢針對(duì)請(qǐng)求 URI 指定的資源支持的方法。
TRACE:追蹤路徑
TRACE 方法是讓 Web 服務(wù)器端將之前的請(qǐng)求通信環(huán)回給客戶端的方法。
發(fā)送請(qǐng)求時(shí),在 Max-Forwards 首部字段中填入數(shù)值,每經(jīng)過一個(gè)服務(wù)器端就將該數(shù)字減 1,當(dāng)數(shù)值剛好減到 0 時(shí),就停止繼續(xù)傳輸,最后接收到請(qǐng)求的服務(wù)器端則返回狀態(tài)碼 200 OK 的響應(yīng)。
客戶端通過 TRACE 方法可以查詢發(fā)送出去的請(qǐng)求是怎樣被加工修改/ 篡改的。這是因?yàn)椋?qǐng)求想要連接到源目標(biāo)服務(wù)器可能會(huì)通過代理中轉(zhuǎn),TRACE 方法就是用來確認(rèn)連接過程中發(fā)生的一系列操作。
但是,TRACE 方法本來就不怎么常用,再加上它容易引發(fā)XST(Cross-Site Tracing,跨站追蹤)攻擊,通常就更不會(huì)用到了。
CONNECT:要求用隧道協(xié)議連接代理
CONNECT 方法要求在與代理服務(wù)器通信時(shí)建立隧道,實(shí)現(xiàn)用隧道協(xié)議進(jìn)行 TCP 通信。主要使用 SSL(Secure Sockets Layer,安全套接層)和 TLS(Transport Layer Security,傳輸層安全)協(xié)議把通信內(nèi)容加 密后經(jīng)網(wǎng)絡(luò)隧道傳輸。
HTTP/1.0 和 HTTP/1.1 支持的方法
| 方法 | 說明 | 支持的 HTTP協(xié)議版本 |
|---|---|---|
| GET | 獲取資源 | 1.0、1.1 |
| POST | 傳輸實(shí)體主體 | 1.0、1.1 |
| PUT | 傳輸文件 | 1.0、1.1 |
| HEAD | 獲得報(bào)文首部 | 1.0、1.1 |
| DELETE | 刪除文件 | 1.0、1.1 |
| OPTIONS | 詢問支持的方法 | 1.1 |
| TRACE | 追蹤路徑 | 1.1 |
| CONNECT | 要求用隧道協(xié)議連接代理 | 1.1 |
| LINK | 建立和資源之間的聯(lián)系 | 1.0 |
| UNLINE | 斷開連接關(guān)系 | 1.0 |
LINK 和 UNLINK 已被 HTTP/1.1 廢棄,不再支持。