Get與Post的冪等

Http定義了與服務(wù)器交互的不同方法,最基本的方法有4種,分別是GET,POST,PUT,DELETE。URL全稱是資源描述符,我們可以這樣認(rèn) 為:一個URL地址,它用于描述一個網(wǎng)絡(luò)上的資源,而HTTP中的GET,POST,PUT,DELETE就對應(yīng)著對這個資源的查,改,增,刪4個操作。到這里,大家應(yīng)該有個大概的了解了,GET一般用于獲取/查詢資源信息,而POST一般用于更新資源信息。

冪等(idempotent、idempotence)是一個數(shù)學(xué)與計算機(jī)學(xué)概念,常見于抽象代數(shù)中。

冪等有一下幾種定義:
對于單目運算,如果一個運算對于在范圍內(nèi)的所有的一個數(shù)多次進(jìn)行該運算所得的結(jié)果和進(jìn)行一次該運算所得的結(jié)果是一樣的,那么我們就稱該運算是冪等的。比如絕對值運算就是一個例子,在實數(shù)集中,有abs(a) = abs(abs(a))。
對于雙目運算,則要求當(dāng)參與運算的兩個值是等值的情況下,如果滿足運算結(jié)果與參與運算的兩個值相等,則稱該運算冪等,如求兩個數(shù)的最大值的函數(shù),有在在實數(shù)集中冪等,即max(x,x) = x。

從理論上講,如果請求是冪等的就可以使用GET,所謂冪等是指多個請求返回相同的結(jié)果。實際上,相應(yīng)的服務(wù)器方法可能會以某種方式修改狀態(tài),所以一般情況下這是不成立的。這只是一種標(biāo)準(zhǔn)。更實際的區(qū)別在于凈荷的大小,在許多情況下,瀏覽器和服務(wù)器會限制URL的長度URL用于向服務(wù)器發(fā)送數(shù)據(jù)。 一般來講,可以使用GET從服務(wù)器獲取數(shù)據(jù);換句話說,要避免使用GET調(diào)用改變服務(wù)器上的狀態(tài)。
一般地,當(dāng)改變服務(wù)器上的狀態(tài)時應(yīng)當(dāng)使用POST方法。不同于GET,需要設(shè)置XML-HttpRequest對象的Content-Type首部,如下所示:
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");與GET不同,POST不會限制發(fā)送給服務(wù)器的凈荷的大小,而且POST請求不能保證是冪等的。
你做的大多數(shù)請求可能都是GET請求,不過,如果需要,也完全可以使用POST。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容