2017-01-29 82 views
0

我們可以通過執行完成同樣的事情:爲什麼我應該使用POST等方法而不是URL參數?

localhost:3000/endpoint?var1=val1&var2=val2 

,我們可以通過使用POSTJSON身體做。

那麼,爲什麼要使用PUT/POST/PATCH,如果他們可以通過使用url參數獲得相同的目標?即使使用身份驗證,您可以使用參數來傳遞身份驗證令牌的信息,而不是頭文件?

+0

那麼,每次你必須來回傳遞數據時,Ajax不需要重新加載頁面。 – Enfyve

+0

爲Ajax,調用使用單獨的連接(有或沒有長輪詢),這也可能是GET或POST,我認爲 - 不應該涉及GET/POST在首頁調用的決定。 –

回答

0

原因之一是GET參數必須是URL編碼的。 然後,我認爲在RFC中記錄了URL長度的限制。 這會讓傳輸大量數據變得困難(例如文件上傳,...)

此外,開發人員可能希望隱藏用戶的一些信息,以防止用戶使用所有這些參數爲頁面添加書籤...

絕對沒有任何POST參數的原因是傳輸層的安全性。在這兩種情況下,數據都是HTTP中的純文本,並且在使用安全的HTTPS連接時,兩者(也稱爲URL)都是端對端編碼。

0

它更安全,因爲您的數據已加密併發送到請求的標頭中。

相關問題