標(biāo)準(zhǔn)Http協(xié)議支持六種請求方法舷嗡,即:
1、GET
2嵌莉、POST
3进萄、PUT
4、Delete
5锐峭、HEAD
6中鼠、Options
但其實(shí)我們大部分情況下只用到了GET和POST。如果想設(shè)計(jì)一個(gè)符合RESTful規(guī)范的web應(yīng)用程序沿癞,則這六種方法都會(huì)用到援雇。不過即使暫時(shí)不想涉及REST,了解這六種方法的本質(zhì)仍然是很有作用的椎扬。大家將會(huì)發(fā)現(xiàn)惫搏,原來web也是很簡潔明了的。下面依次說明這六種方法蚕涤。
1筐赔,GET:GET可以說是最常見的了,它本質(zhì)就是發(fā)送一個(gè)請求來取得服務(wù)器上的某一資源揖铜。資源通過一組HTTP頭和呈現(xiàn)據(jù)(如HTML文本茴丰,或者圖片或者視頻等)返回給客戶端。GET請求中,永遠(yuǎn)不會(huì)包含呈現(xiàn)數(shù)據(jù)贿肩。
2峦椰,HEAD:HEAD和GET本質(zhì)是一樣的,區(qū)別在于HEAD不含有呈現(xiàn)數(shù)據(jù)汰规,而僅僅是HTTP頭信息汤功。有的人可能覺得這個(gè)方法沒什么用,其實(shí)不是這樣的控轿。想象一個(gè)業(yè)務(wù)情景:欲判斷某個(gè)資源是否存在,我們通常使用GET拂封,但這里用HEAD則意義更加明確茬射。
3,PUT:這個(gè)方法比較少見冒签。HTML表單也不支持這個(gè)在抛。本質(zhì)上來講, PUT和POST極為相似萧恕,都是向服務(wù)器發(fā)送數(shù)據(jù)刚梭,但它們之間有一個(gè)重要區(qū)別,PUT通常指定了資源的存放位置票唆,而POST則沒有朴读,POST的數(shù)據(jù)存放位置由服務(wù)器自己決定。
舉個(gè)例子:如一個(gè)用于提交博文的URL走趋,/addBlog衅金。如果用PUT,則提交的URL會(huì)是像這樣的”/addBlog/abc123”簿煌,其中abc123就是這個(gè)博文的地址氮唯。而如果用POST,則這個(gè)地址會(huì)在提交后由服務(wù)器告知客戶端姨伟。目前大部分博客都是這樣的惩琉。顯然,PUT和POST用途是不一樣的夺荒。具體用哪個(gè)還取決于當(dāng)前的業(yè)務(wù)場景瞒渠。
4,DELETE:刪除某一個(gè)資源技扼≡谛ⅲ基本上這個(gè)也很少見,不過還是有一些地方比如amazon的S3云服務(wù)里面就用的這個(gè)方法來刪除資源淮摔。
5私沮,POST:向服務(wù)器提交數(shù)據(jù)。這個(gè)方法用途廣泛,幾乎目前所有的提交操作都是靠這個(gè)完成仔燕。
6造垛,OPTIONS:這個(gè)方法很有趣,但極少使用晰搀。它用于獲取當(dāng)前URL所支持的方法五辽。若請求成功,則它會(huì)在HTTP頭中包含一個(gè)名為“Allow”的頭外恕,值是所支持的方法杆逗,如“GET, POST”。
其實(shí)還有一個(gè) TRACE方法鳞疲,不過這個(gè)基本上不會(huì)用到罪郊,這里就不介紹了。
以上的六種方法尚洽,我們可以跟數(shù)據(jù)庫的CRUD增刪改查操作對應(yīng)起來: CREATE :PUT READ:GET UPDATE:POST DELETE:DELETE 這樣一來就實(shí)現(xiàn)了HTTP和數(shù)據(jù)庫操作(其實(shí)不光是數(shù)據(jù)庫悔橄,任何數(shù)據(jù)如文件圖表都是這樣)的完美統(tǒng)一,這也是REST的精髓之一
原文地址:http://blog.csdn.net/u010529455/article/details/42918639