本質上的區別:
GET請求、處理、響應過程中只是產生一個TCP數據包,而POST請求會產生兩個TCP數據包。 更具體地說,GET請求過程中頭和請求正文數據一起到服務器端,而POST請求過程中,先發一個請求頭,服務器會先響應一次,然后瀏覽器再發送一次請求過程中會將正文數據帶到服務器端,然后被服務器處理,然后再產生一個狀態碼,返回對應的狀態描述。
(GET相當於一次請求,POST相當於兩次請求)
所以,顯然GET方式請求更加快。
另外,GET請求過程中它的主要作用是訪問服務器,並從服務器上查詢和獲取數據,而POST除了查詢和獲取數據外,它是可以向服務器發送修改的請求的。
(GET用於數據的查詢和獲取,而POST用於查詢和獲取外,還可用於數據的修改)
從表面上來看:
GET請求的長度限制為4k,而POST沒有這方面的限制,另外,GET會將請求參數等相關信息暴露出來,所以相比之下不安全。
使用場景:
一般對於登錄、注冊等表單請求,不建議用GET方式請求,一般用POST,因為一些參數信息暴露出來會不安全。另外,對於博客、論壇、數據的上傳下載等也最好用POST,因為論壇或者上傳下載等前后都可能會產生數據的變化,故用POST。 而一般對於有響應速度要求,並且對信息相對不敏感的,比如查詢、搜索等,可以使用GET。
另外,對於ajax,get和post請求方式是有區別的?記得好像在一般情況向它是不能跨域的,特殊方法和處理下是可以的;