1. GET在瀏覽器回退時是無害的,而POST會再次提交請求。
2. GET產生的URL地址可以被Bookmark,而POST不可以。
3. GET請求會被瀏覽器主動cache,而POST不會,除非手動設置。
4. GET請求只能進行url編碼,而POST支持多種編碼方式。
5. GET請求參數會被完整保留在瀏覽器歷史記錄里,而POST中的參數不會被保留。
6. GET請求在URL中傳送的參數是有長度限制的,而POST么有。
7. 對參數的數據類型,GET只接受ASCII字符,而POST沒有限制。
8. GET比POST更不安全,因為參數直接暴露在URL上,所以不能用來傳遞敏感信息。
9. GET參數通過URL傳遞,POST放在Request body中。
GET和POST使用場景:
若符合下列任一情況,則推薦用POST方法:
請求的結果有持續性的副作用,例如,數據庫內添加新的數據行。若使用GET方法,則表單上收集的數據可能讓URL過長。要傳送的數據不是采用7位的ASCII編碼。
若符合下列任一情況,則推薦用GET方法:
請求是為了查找資源,HTML表單數據僅用來幫助搜索。請求結果無持續性的副作用。收集的數據及HTML表單內的輸入字段名稱的總長不超過1024個字符。