總結get和post差別---面試用
- 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(傳回資料)。
用一句話總結:
GET和POST的差別,GET的安全性較POST方式要差些,包含機密資訊的話,建議用POST資料送出方式。在做資料查詢時,建議用GET方式;而在做資料添加、修改、删除時,建議用POST方式。
(據研究,在網絡環境好的情況下,發一次包的時間和發兩次包的時間差别基本可以無視。而在網絡環境差的情況下,兩次包的TCP在驗證資料包完整性上,有非常大的優點。)