Get和Post、冪等、淨荷

weixin_34391854發表於2011-01-03

冪等(idempotent、idempotence)是一個數學或計算機學概念,常見於抽象代數中。
    冪等有以下幾種定義:
    1.對於單目運算,如果一個運算對於在範圍內的所有的一個數多次進行該運算所得的結果和進行一次該運算所得的結果是一樣的,那麼我們就稱該運算是冪等的。比如絕對值運算就是一個例子,在實數集中,有abs(a)=abs(abs(a))。
    2.對於雙目運算,則要求當參與運算的兩個值是等值的情況下,如果滿足運算結果與參與運算的兩個值相等,則稱該運算冪等,如求兩個數的最大值的函式,有在在實數集中冪等,即max(x,x)=x。

    冪等通常可以理解為多次操作會得到等效結果的情況。或者不同時間的操作對結果不會有影響。

冪等與Get和Post
    GET和POST之間有什麼區別,什麼時候使用它們。
    從理論上講,如果請求是冪等的就可以使用GET,所謂冪等是指多個請求返回相同的結果。實際上,相應的伺服器方法可能會以某種方式修改狀態,所以一般情況下這是不成立的。這只是一種標準。更實際的區別在於淨荷的大小,在許多情況下,瀏覽器和伺服器會限制URL的長度URL用於向伺服器傳送資料。 一般來講,可以使用GET從伺服器獲取資料;換句話說,要避免使用GET呼叫改變伺服器上的狀態。
    一般地,當改變伺服器上的狀態時應當使用POST方法。不同於GET,需要設定XML-HttpRequest物件的Content-Type首部,如下所示:
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");與GET不同,POST不會限制傳送給伺服器的淨荷的大小,而且POST請求不能保證是冪等的。
    你做的大多數請求可能都是GET請求,不過,如果需要,也完全可以使用POST。


淨荷域(payload)

    在網路含以上,一般是一個幀(包)中,除了幀頭和幀尾的控制資訊.中間用來傳輸使用者資料的區域.

    淨(負)荷是相對開銷而言的。即可以認識為有效荷載資料量。

相關文章