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。