get和post的区别
zhonghuasheng opened this issue · comments
get和post的区别
GET | POST | |
---|---|---|
后退按钮/刷新 | 无害 | 数据会被重新提交(浏览器应该通知用户数据会被重新提交) |
书签 | 可收藏为书签 | 不可收藏为书签 |
缓存 | 能被缓存 | 不能被缓存 |
编码类型 | application/x-www-form-urlencoded | application/x-www-form-urlencoded或multipart/form-data。为二进制数据使用多重编码 |
历史 | 参数保留在浏览器历史中 | 参数不会保存在浏览器历史中 |
对数据长度的限制 | GET方法向URL添加数据,URL的长度是受限制的,最大可为2K | 没有限制,允许二进制数据 |
对数据类型的限制 | 只允许ASCII字符 | 没有限制,也允许二进制数据 |
安全性 | 与POST相比,GET的安全性较差,参数显示在URL中 | POST比GET更安全,因为参数不会被保存在浏览器历史或Web服务器日志中 |
可见性 | 数据在URL中对所有人都是可见的 | 数据不会显示在URL中 |
其实GET和POST本质上就是TCP链接,并无差别,由于HTTP的规定和浏览器/服务器的限制导致他们在应用过程中体现出一些不同。