GET 和 POST 這兩個東西,我們都知道是 HTTP 的請求方式,也是我們用的最多的請求方式。
一般來說,Web服務(wù)器默認的只支持Post和Get這兩種“只讀”的請求方法。
但是,除了這兩種方法,還有幾種請求的方法:
HTTP/1.1協(xié)議中共定義了八種方法(也叫“動作”)來以不同方式操作指定的資源:
options:
這個方法可使服務(wù)器傳回該資源所支持的所有HTTP請求方法。用'*'來代替資源名稱,向Web服務(wù)器發(fā)送OPTIONS請求,可以測試服務(wù)器功能是否正常運作。
head:
與GET方法一樣,都是向服務(wù)器發(fā)出指定資源的請求。只不過服務(wù)器將不傳回資源的本文部分。它的好處在于,使用這個方法可以在不必傳輸全部內(nèi)容的情況下,就可以獲取其中“關(guān)于該資源的信息”(元信息或稱元數(shù)據(jù))。
get:
向指定的資源發(fā)出“顯示”請求。使用GET方法應(yīng)該只用在讀取數(shù)據(jù),而不應(yīng)當被用于產(chǎn)生“副作用”的操作中,例如在Web Application中。其中一個原因是GET可能會被網(wǎng)絡(luò)蜘蛛等隨意訪問。參見安全方法
post:
向指定資源提交數(shù)據(jù),請求服務(wù)器進行處理(例如提交表單或者上傳文件)。數(shù)據(jù)被包含在請求本文中。這個請求可能會創(chuàng)建新的資源或修改現(xiàn)有資源,或二者皆有。
put:
向指定資源位置上傳其最新內(nèi)容。
delete:
請求服務(wù)器刪除Request-URI所標識的資源。
trace:
回顯服務(wù)器收到的請求,主要用于測試或診斷。
connect:
HTTP/1.1協(xié)議中預(yù)留給能夠?qū)⑦B接改為管道方式的代理服務(wù)器。通常用于SSL加密服務(wù)器的鏈接(經(jīng)由非加密的HTTP代理服務(wù)器)。
方法名稱是區(qū)分大小寫的。當某個請求所針對的資源不支持對應(yīng)的請求方法的時候,服務(wù)器應(yīng)當返回狀態(tài)碼405(Method Not Allowed),當服務(wù)器不認識或者不支持對應(yīng)的請求方法的時候,應(yīng)當返回狀態(tài)碼501(Not Implemented)。
通常我們用的也都是 GET 和 POST 方法,如果要實現(xiàn)其他的方法,需要在服務(wù)器做相應(yīng)的配置。
但是我們應(yīng)該清楚,有這些個動作的存在。
而且,其他請求方式也都可以通過這兩種方式間接的來實現(xiàn)。