HTTP請求的GET與POST方式的區別


get與post:
1、get在瀏覽器后退/刷新時是無害的,post的數據會被重新提交
2、get產生的url可收藏為書簽,post不能
3、GET請求會被瀏覽器主動cache,而POST不會,除非手動設置。
4、GET請求只能進行url編碼(application/x-www-form-urlencoded),而POST支持多種編碼方式。
(application/x-www-form-urlencoded 或 multipart/form-data。)
5、GET請求參數會被完整保留在瀏覽器歷史記錄里,而POST中的參數不會被保留。
6、GET 方法向 URL 添加數據,URL的長度是受限制的(URL 的最大長度是 2048 個字符,2K),而POST沒有。
7、對於參數的數據類型,GET只接受ASCII字符,而POST沒有限制。
8、GET不如POST安全,因為參數直接暴露在URL上,所以不能用來傳遞敏感信息。
9、GET參數通過URL傳遞,POST放在Request body( HTTP 消息主體)中。
10、GET產生一個TCP數據包;POST產生兩個TCP數據包。
對於GET方式的請求,瀏覽器會把http header和data一並發送出去,服務器響應200(返回數據);
而對於POST,瀏覽器先發送header,服務器響應100 continue,瀏覽器再發送data,服務器響應200 ok(返回數據)。
(1)GET與POST都有自己的語義,不能隨便混用。
(2)據研究,在網絡環境好的情況下,發一次包的時間和發兩次包的時間差別基本可以無視。而在網絡環境差的情況下,兩次包的TCP在驗證數據包完整性上,有非常大的優點。
(3)並不是所有瀏覽器都會在POST中發送兩次包,Firefox就只發送一次。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM