put與post的區(qū)別 GET請求和POST請求的區(qū)別?
GET請求和POST請求的區(qū)別?從HTTP消息級別,get請求將信息放在URL中,post請求將信息放在請求正文中。這使得get請求攜帶的數(shù)據(jù)量受到限制,因為URL本身的長度是有限的,而post請求的
GET請求和POST請求的區(qū)別?
從HTTP消息級別,get請求將信息放在URL中,post請求將信息放在請求正文中。這使得get請求攜帶的數(shù)據(jù)量受到限制,因為URL本身的長度是有限的,而post請求的數(shù)據(jù)是以報紙樣式存儲的,因此大小沒有限制。從形式上講,get請求將數(shù)據(jù)放在URL上并不安全,而post請求將數(shù)據(jù)放在請求體中似乎更安全。事實上,post請求的內容很容易獲取,所以兩者在安全性上沒有太大區(qū)別。為了實現(xiàn)安全的信息傳輸,我們必須依賴HTTPS。
從數(shù)據(jù)庫級別來看,get是冪等且安全的,而post不是。這實際上與get/post請求的功能有關。根據(jù)HTTP協(xié)議,get-request用于查看信息,不改變服務器上的信息,post-request用于改變服務器上的信息。正因為get請求只查看信息而不更改信息,所以對數(shù)據(jù)庫執(zhí)行一次或多次操作得到的結果是一致的,這被認為是冪等的。安全性是指數(shù)據(jù)庫操作不改變數(shù)據(jù)庫中的數(shù)據(jù)。
從其他方面來看,get請求可以緩存,get請求可以保存在瀏覽器的瀏覽記錄中,get請求URL可以保存為瀏覽器書簽。這些在post請求中不可用。緩存是get請求被廣泛使用的根本原因。它可以緩存,因為它的冪等性和安全性。除了返回結果外,沒有其他冗余操作。因此,大部分get請求都是由CDN緩存的,這大大減輕了web服務器的負擔。
HTTP提交方式之PUT詳細介紹及POST和PUT的區(qū)別?
Get:請求指定的頁面信息并返回實體正文。
Head:只請求頁面的第一部分。
Post:請求服務器接受指定的文檔作為已標識URI的新從屬實體。
Put:從客戶端傳輸?shù)椒掌鞯臄?shù)據(jù)將替換指定文檔的內容。
刪除:請求服務器刪除指定頁面。
Get和post更常見。Get請求將提交的數(shù)據(jù)放在HTTP請求協(xié)議頭中
post將提交的數(shù)據(jù)放在實體數(shù)據(jù)中
post用于提交數(shù)據(jù)。提交的數(shù)據(jù)放在HTTP請求的主體中。目的是提交數(shù)據(jù)并將其用于服務器端存儲。不允許用戶對相應的數(shù)據(jù)進行太多的修改(主要是相對于URL的修改)。
put操作是冪等的。所謂冪等,是指無論做多少次運算,結果都是一樣的。比如我用put修改一篇文章,然后做同樣的操作,每次操作的結果都不一樣
post操作既不安全也不冪等,比如常見的post重復加載問題:當我們多次發(fā)送同一post請求時,結果是創(chuàng)建了多個資源。
安全性和冪等性的意義在于,當操作沒有達到預期目標時,我們可以繼續(xù)重試,而不會對資源產生副作用。從這個意義上說,術后往往是有害的,但很多時候我們仍然要使用它。
另一件需要注意的事情是,您可以使用post或put來創(chuàng)建操作。區(qū)別在于post操作作用于資源集合(/articles),而put操作作用于特定資源(/articles/123)。更流行的是,如果可以在客戶端確定URL,那么使用put。如果是在服務器端確定的,則使用post。例如,許多資源使用數(shù)據(jù)庫自增主鍵作為標識信息,而創(chuàng)建的資源使用的是只能由服務器提供的標識信息。此時,必須使用post。