更新於 2024/01/14閱讀時間約 1 分鐘

前端 為何要用POST而非GET

發送表單用get跟post看起來好像都無所謂,然而事實並非如此,使用GET的風險如下:

安全性問題

機密資訊為何不宜用GET,是因為由GET方法提交的表單會將欄位的key,value顯示於URL上,想像一下如果小明借用你的電腦,查看你的網頁歷史紀錄時就可以看到你的帳密了,多可怕!

再來就是如果有用log存下url紀錄,那你送出的資訊也就會在log中展露無遺。


大小限制

URL在不同瀏覽器上都有其長度限制,在伺服器也一樣,像是nginx的url長度限制:

error code: 414, uri too large


當然用POST還不夠,如果沒有加密的話那如果有人在監聽還是能看到body中的內容,這就是為何需要HTTPS,確保發送的表單內容只有發送者跟接收者能夠解密看到正確明文,避免有人從中偷窺。


那什麼時候該用GET呢?

在做查詢的時候就用GET,這符合restful API,像是產品搜尋或google搜尋。

不過要注意的是查詢帶的querystring會不會太龐大,是不是可能會超過url長度的限制

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.