我們可以通過執行完成同樣的事情:爲什麼我應該使用POST等方法而不是URL參數?
localhost:3000/endpoint?var1=val1&var2=val2
,我們可以通過使用POST
用JSON
身體做。
那麼,爲什麼要使用PUT/POST/PATCH,如果他們可以通過使用url參數獲得相同的目標?即使使用身份驗證,您可以使用參數來傳遞身份驗證令牌的信息,而不是頭文件?
我們可以通過執行完成同樣的事情:爲什麼我應該使用POST等方法而不是URL參數?
localhost:3000/endpoint?var1=val1&var2=val2
,我們可以通過使用POST
用JSON
身體做。
那麼,爲什麼要使用PUT/POST/PATCH,如果他們可以通過使用url參數獲得相同的目標?即使使用身份驗證,您可以使用參數來傳遞身份驗證令牌的信息,而不是頭文件?
原因之一是GET參數必須是URL編碼的。 然後,我認爲在RFC中記錄了URL長度的限制。 這會讓傳輸大量數據變得困難(例如文件上傳,...)
此外,開發人員可能希望隱藏用戶的一些信息,以防止用戶使用所有這些參數爲頁面添加書籤...
絕對沒有任何POST參數的原因是傳輸層的安全性。在這兩種情況下,數據都是HTTP中的純文本,並且在使用安全的HTTPS連接時,兩者(也稱爲URL)都是端對端編碼。
它更安全,因爲您的數據已加密併發送到請求的標頭中。
那麼,每次你必須來回傳遞數據時,Ajax不需要重新加載頁面。 – Enfyve
爲Ajax,調用使用單獨的連接(有或沒有長輪詢),這也可能是GET或POST,我認爲 - 不應該涉及GET/POST在首頁調用的決定。 –