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