简易版

Network - get 和 post 请求有哪些区别_缓存

数据/参数在哪里:

  • GET 是通过 URL 方式请求,可以直接看到,明文传输
  • POST 参数数据被包含在请求体中。通过 header 传输,同样是明文。但比直接显示在URL中安全多了

对数据长度的限制:

  • GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大长度是 2048 个字符)。
  • http 协议并未规定 get 和post  的长度限制
  • get 的最大长度限制是因为浏览器和 web 服务器限制了 URL 的长度
  • 不同的浏览器和web服务器,限制的最大长度不一样
  • 超出了最大长度,大部分的服务器直接截断,有些服务器会报414错误
  • POST 没有限制

是否会缓存:

  • 浏览器会缓存和记录 GET 请求及参数(这一点不是很安全,如参数中包含敏感信息可能被其他从浏览器的缓存和浏览记录获取)
  • 不缓存 POST 的请求的参数

是否会修改服务器内容(= 幂等性 Idempotent ?):

  • GET 只读服务器数据不会修改; 幂等简单理解就是每次请求结果和产生的影响都一样
  • POST 请求可能会导致新的资源的建立和/或已有资源的修改