登錄是get請(qǐng)求還是post GET請(qǐng)求和POST請(qǐng)求的區(qū)別?
GET請(qǐng)求和POST請(qǐng)求的區(qū)別?從 HTTP 報(bào)文層面來(lái)看,GET 請(qǐng)求將信息放在 URL,POST 將請(qǐng)求信息放在請(qǐng)求體中。這一點(diǎn)使得 GET 請(qǐng)求攜帶的數(shù)據(jù)量有限,因?yàn)?URL 本身是有長(zhǎng)度限制的
GET請(qǐng)求和POST請(qǐng)求的區(qū)別?
從 HTTP 報(bào)文層面來(lái)看,GET 請(qǐng)求將信息放在 URL,POST 將請(qǐng)求信息放在請(qǐng)求體中。這一點(diǎn)使得 GET 請(qǐng)求攜帶的數(shù)據(jù)量有限,因?yàn)?URL 本身是有長(zhǎng)度限制的,而 POST 請(qǐng)求的數(shù)據(jù)存放在報(bào)文體中,因此對(duì)大小沒(méi)有限制。而且從形式上看,GET 請(qǐng)求把數(shù)據(jù)放 URL 上感覺(jué)不太安全,而 POST 請(qǐng)求把數(shù)據(jù)放在請(qǐng)求體里似乎安全一些。實(shí)際上想要獲取 POST 請(qǐng)求中的內(nèi)容還是很容易的,因此兩者在安全性上其實(shí)沒(méi)有太大差異,想要實(shí)現(xiàn)安全的信息傳輸還是得靠 HTTPS。
從數(shù)據(jù)庫(kù)層面來(lái)看,GET 符合冪等性和安全性,而 POST 請(qǐng)求不符合。這個(gè)其實(shí)和 GET/POST 請(qǐng)求的作用有關(guān)。按照 HTTP 的約定,GET 請(qǐng)求用于查看信息,不會(huì)改變服務(wù)器上的信息;而 POST 請(qǐng)求用來(lái)改變服務(wù)器上的信息。正因?yàn)?GET 請(qǐng)求只查看信息,不改變信息,對(duì)數(shù)據(jù)庫(kù)的一次或多次操作獲得的結(jié)果是一致的,認(rèn)為它符合冪等性。安全性是指對(duì)數(shù)據(jù)庫(kù)操作沒(méi)有改變數(shù)據(jù)庫(kù)中的數(shù)據(jù)。
從其他層面來(lái)看,GET 請(qǐng)求能夠被緩存,GET 請(qǐng)求能夠保存在瀏覽器的瀏覽記錄里,GET 請(qǐng)求的 URL 能夠保存為瀏覽器書簽。這些都是 POST 請(qǐng)求所不具備的。緩存是 GET 請(qǐng)求被廣泛應(yīng)用的根本,他能夠被緩存也是因?yàn)樗膬绲刃院桶踩?,除了返回結(jié)果沒(méi)有其他多余的動(dòng)作,因此絕大部分的 GET 請(qǐng)求都被 CDN 緩存起來(lái)了,大大減少了 Web 服務(wù)器的負(fù)擔(dān)。