-
get參數通過url傳遞,post放在request body中。
-
get請求在url中傳遞的參數是有長度限制的,而post沒有。
-
get比post更不安全,因為參數直接暴露在url中,所以不能用來傳遞敏感信息。
-
-
get請求只能進行url編碼,而post支持多種編碼方式
-
get請求會瀏覽器主動cache,而post支持多種編碼方式。
-
get請求參數會被完整保留在瀏覽歷史記錄里,而post中的參數不會被保留。
-
- GET和POST本質上就是TCP鏈接,並無差別。但是由於HTTP的規定和瀏覽器/服務器的限制,導致他們在應用過程中體現出一些不同。
- GET產生一個TCP數據包;POST產生兩個TCP數據包。
長的說:
對於GET方式的請求,瀏覽器會把http header和data一並發送出去,服務器響應200(返回數據);
而對於POST,瀏覽器先發送header,服務器響應100 continue,瀏覽器再發送data,服務器響應200 ok(返回數據)。
(據研究,在網絡環境好的情況下,發一次包的時間和發兩次包的時間差別基本可以無視。而在網絡環境差的情況下,兩次包的TCP在驗證數據包完整性上,有非常大的優點。)