GET和POST的区别
2019-04-18
GET和POST的区别
在没有专门了解这俩之前,我觉得GET和POST基本上就是语义的区别和传输长度的区别,实在是羞愧啊。在网上搜集了一些资料,真的区别基本上可以概括:
GET:
- GET 请求可被缓存
- GET 请求保留在浏览器历史记录中
- GET 请求可被浏览器收藏为书签
- GET 请求不应在处理敏感数据时使用
- GET 请求有长度限制(url最长2048字符)
- GET 请求只应当用于取回数据
POST:
- POST 请求不会被缓存
- POST 请求不会保留在浏览器历史记录中
- POST 不能被收藏为书签
- POST 请求对数据长度没有要求
最关键的几点就是:
- 语义
- 长度限制
- 可缓存
- 可被浏览器记录为历史和书签
例如,一个页面用GET请求了一个资源,当这个页面经历后退前进重新显示,假设没有清理缓存和资源不允许缓存设置,是可以不再次发出网络请求的,直接取缓存即可。而POST则必定会再次发送。
所以,按REST语义使用GET和POST是很重要的~