1. 程式人生 > >post 相比get 有很多優點,為什麼現在的HTTP通訊中大多數請求還是使用get?

post 相比get 有很多優點,為什麼現在的HTTP通訊中大多數請求還是使用get?

好吧, 除了哲學方式的回答以外,下面是一個瀏覽器從業人員的看法

事實上GET 和 POST 在實踐上面有非常大的區別,這兩種方法在語義上面並非能互相取代。

POST 是否比 GET 安全

是的, POST要比GET安全一點點,注意,是一點點。。。

說這兩者都是明文傳送當然是沒有錯的了,但是這裡有一個細節,就是GET的URL會被放在瀏覽器歷史和WEB 伺服器日誌裡面。

POST 發完基本就木有了。。

所以如果你把關鍵資料放在GET裡面,被人偷窺了瀏覽器,或者WEB伺服器被入侵日誌被人倒去了,基本洩露可能性100%。而POST來說,日誌沒有記錄,只要資料庫伺服器不被入侵,基本還是安全的。

當然如果被抓了包,這一切都沒有什麼卵用,所以,HTTPS該用還是得用。


GET 相對 POST 的優勢是什麼

最大的優勢是, GET 的URL可以人肉手輸啊。。。你在位址列打個POST給我看看。本質上面, GET 的所有資訊都在URL, 所以很方便的記錄下來重複使用。

所以如果你希望
- 請求中的URL可以被手動輸入
- 請求中的URL可以被存在書籤裡,或者歷史裡,或者快速撥號裡面,或者分享給別人。
- 請求中的URL是可以被搜尋引擎收錄的。
- 帶雲壓縮的瀏覽器,比如Opera mini/Turbo 2, 只有GET才能在伺服器端被預取的。
- 請求中的URL可以被快取。

請使用GET.

大家有沒有注意到,其實這裡面很多方面的要求是和網站的運營相關的,而不是技術相關的。任何的技術行為中,其實多多少少都能看到商業的影子。

反之,就用POST. 特別是有一些東西你是不想讓人家可以在瀏覽器位址列裡面可以輸入的。比如,如果你設計一個blog系統, 設計這樣一個URL來刪掉所有帖子。