Post 和 Get 是 HTTP 請(qǐng)求的兩種方法,其區(qū)別如下:應(yīng)用場(chǎng)景: GET 請(qǐng)求是一個(gè)冪等的請(qǐng)求,一般 Get 請(qǐng)求用于對(duì)服務(wù)器資源不會(huì)產(chǎn)生影響的場(chǎng)景,比如說(shuō)請(qǐng)求一個(gè)網(wǎng)頁(yè)的資源。而 Post 不是一個(gè)冪等的請(qǐng)求,一般用于對(duì)服務(wù)器資源會(huì)產(chǎn)生影響的情景,比如注冊(cè)用戶(hù)這一類(lèi)的操作。
是否緩存: 因?yàn)閮烧邞?yīng)用場(chǎng)景不同,瀏覽器一般會(huì)對(duì) Get 請(qǐng)求緩存,但很少對(duì) Post 請(qǐng)求緩存。
發(fā)送的報(bào)文格式: Get 請(qǐng)求的報(bào)文中實(shí)體部分為空,Post 請(qǐng)求的報(bào)文中實(shí)體部分一般為向服務(wù)器發(fā)送的數(shù)據(jù)。
安全性: Get 請(qǐng)求可以將請(qǐng)求的參數(shù)放入 url 中向服務(wù)器發(fā)送,這樣的做法相對(duì)于 Post 請(qǐng)求來(lái)說(shuō)是不太安全的,因?yàn)檎?qǐng)求的 url 會(huì)被保留在歷史記錄中。
請(qǐng)求長(zhǎng)度: 瀏覽器由于對(duì) url 長(zhǎng)度的限制,所以會(huì)影響 get 請(qǐng)求發(fā)送數(shù)據(jù)時(shí)的長(zhǎng)度。這個(gè)限制是瀏覽器規(guī)定的,并不是 RFC 規(guī)定的。
參數(shù)類(lèi)型: post 的參數(shù)傳遞支持更多的數(shù)據(jù)類(lèi)型。