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是很重要的~