Http定義了與服務(wù)器交互的不同方法棒呛,最基本的方法有4種聂示,分別是GET,POST簇秒,PUT鱼喉,DELETE。URL全稱(chēng)是資源描述符趋观,我們可以這樣認(rèn)為:一個(gè)URL地址扛禽,它用于描述一個(gè)網(wǎng)絡(luò)上的資源,而HTTP中的GET皱坛,POST编曼,PUT,DELETE就對(duì)應(yīng)著對(duì)這個(gè)資源的查剩辟,改掐场,增,刪4個(gè)操作贩猎。到這里熊户,大家應(yīng)該有個(gè)大概的了解了,GET一般用于獲取/查詢資源信息吭服,而POST一般用于更新資源信息敏弃。
1.根據(jù)HTTP規(guī)范,GET用于信息獲取噪馏,而且應(yīng)該是安全的和冪等的麦到。
(1).所謂安全的意味著該操作用于獲取信息而非修改信息绿饵。換句話說(shuō),GET 請(qǐng)求一般不應(yīng)產(chǎn)生副作用瓶颠。就是說(shuō)拟赊,它僅僅是獲取資源信息,就像數(shù)據(jù)庫(kù)查詢一樣粹淋,不會(huì)修改吸祟,增加數(shù)據(jù),不會(huì)影響資源的狀態(tài)桃移。
* 注意:這里安全的含義僅僅是指是非修改信息屋匕。
(2).冪等的意味著對(duì)同一URL的多個(gè)請(qǐng)求應(yīng)該返回同樣的結(jié)果。這里我再解釋一下冪等這個(gè)概念:
???
以上3點(diǎn)典型地描述了老一套的風(fēng)格(沒(méi)有嚴(yán)格遵守HTTP規(guī)范)借杰,隨著架構(gòu)的發(fā)展过吻,現(xiàn)在出現(xiàn)REST(Representational State Transfer),一套支持HTTP規(guī)范的新風(fēng)格蔗衡,這里不多說(shuō)了纤虽,可以參考《RESTful Web Services》柠辞。
http://blog.csdn.net/mfe10714022/article/details/39692305
???
根據(jù)HTTP規(guī)范饲做,POST表示可能修改變服務(wù)器上的資源的請(qǐng)求 。繼續(xù)引用上面的例子:還是新聞以網(wǎng)站為例蜘渣,讀者對(duì)新聞發(fā)表自己的評(píng)論應(yīng)該通過(guò)POST實(shí)現(xiàn)济蝉,因?yàn)樵谠u(píng)論提交后站點(diǎn)的資源已經(jīng)不同了杰刽,或者說(shuō)資源被修改了。
上面大概說(shuō)了一下HTTP規(guī)范中王滤,GET和POST的一些原理性的問(wèn)題贺嫂。但在實(shí)際的做的時(shí)候,很多人卻沒(méi)有按照HTTP規(guī)范去做淑仆,導(dǎo)致這個(gè)問(wèn)題的原因有很多涝婉,比如說(shuō):
1.很多人貪方便,更新資源時(shí)用了GET蔗怠,因?yàn)橛肞OST必須要到FORM(表單)墩弯,這樣會(huì)麻煩一點(diǎn)。
2.對(duì)資源的增寞射,刪渔工,改,查操作桥温,其實(shí)都可以通過(guò)GET/POST完成引矩,不需要用到PUT和DELETE。
3.另外一個(gè)是,早期的但是Web MVC框架設(shè)計(jì)者們并沒(méi)有有意識(shí)地將URL當(dāng)作抽象的資源來(lái)看待和設(shè)計(jì) 旺韭。還有一個(gè)較為嚴(yán)重的問(wèn)題是傳統(tǒng)的Web MVC框架基本上都只支持GET和POST兩種HTTP方法氛谜,而不支持PUT和DELETE方法。
http://www.cnblogs.com/zhangpengshou/archive/2012/07/09/2583096.html
???
HTTP/1.1協(xié)議中共定義了八種方法(有時(shí)也叫“動(dòng)作”)來(lái)表明Request-URI指定的資源的不同操作方式:
OPTIONS
返回服務(wù)器針對(duì)特定資源所支持的HTTP請(qǐng)求方法区端。也可以利用向Web服務(wù)器發(fā)送'*'的請(qǐng)求來(lái)測(cè)試服務(wù)器的功能性值漫。
HEAD
向服務(wù)器索要與GET請(qǐng)求相一致的響應(yīng),只不過(guò)響應(yīng)體將不會(huì)被返回织盼。這一方法可以在不必傳輸整個(gè)響應(yīng)內(nèi)容的情況下杨何,就可以獲取包含在響應(yīng)消息頭中的元信息。
GET
向特定的資源發(fā)出請(qǐng)求沥邻。注意:GET方法不應(yīng)當(dāng)被用于產(chǎn)生“副作用”的操作中危虱。
POST
向指定資源提交數(shù)據(jù)進(jìn)行處理請(qǐng)求(例如提交表單或者上傳文件)。數(shù)據(jù)被包含在請(qǐng)求體中唐全。POST請(qǐng)求可能會(huì)導(dǎo)致新的資源的建立和/或已有資源的修改埃跷。
PUT
向指定資源位置上傳其最新內(nèi)容。
DELETE
請(qǐng)求服務(wù)器刪除Request-URI所標(biāo)識(shí)的資源芦瘾。
TRACE
回顯服務(wù)器收到的請(qǐng)求捌蚊,主要用于測(cè)試或診斷集畅。
CONNECT
HTTP/1.1協(xié)議中預(yù)留給能夠?qū)⑦B接改為管道方式的代理服務(wù)器近弟。
追問(wèn)
Http中的方法的屬性就是指這八個(gè)英文嗎,而不是像java中的方法public String get();這樣嗎挺智?
追答
http協(xié)議請(qǐng)求由三部分組成祷愉,分別是:請(qǐng)求行、消息報(bào)頭赦颇、請(qǐng)求正文二鳄。
請(qǐng)求行以一個(gè)方法符號(hào)開(kāi)頭,以空格分開(kāi)媒怯,后面跟著請(qǐng)求的URI和協(xié)議的版本订讼,格式如下:
Method Request-URI HTTP-Version CRLF
其中的Method,定義的就是這8個(gè)方法扇苞。
從理論上說(shuō)欺殿,任何http訪問(wèn)請(qǐng)求,只要滿足上面的格式鳖敷,都可以正確訪問(wèn)網(wǎng)絡(luò)資源脖苏。
像你說(shuō)的“而不是像java中的方法public String get();這樣嗎?”定踱,我不太清楚public String get()內(nèi)部是怎么定義的棍潘,但你可以隨便用什么語(yǔ)言,編寫(xiě)自己的get函數(shù),只要訪問(wèn)格式滿足上面的http協(xié)議要求的格式就可以了亦歉。