Get请求与Post请求的区别

今天去参加了一次面试,面试官让我说一下Get请求与Post请求的区别,我只答出来了:Get请求不安全,Post请求安全,Get请求会把信息全部放到Url中,而Post不会……惭愧惭愧,这个问题居然没有完美的回答出来,故此回来温习一下来记录:

1、Get请求是从服务器拿数据,Post请求是向服务器发送数据

2、Get提交的数据会在地址栏中显示出来,而Post提交,地址栏不会改变

3、Get的参数有长度控制,而Post理论上没有

640.png
标准答案:

  • GET在浏览器回退时是无害的,而POST会再次提交请求。
  • GET产生的URL地址可以被Bookmark,而POST不可以。
  • GET请求会被浏览器主动cache,而POST不会,除非手动设置。
  • GET请求只能进行url编码,而POST支持多种编码方式。
  • GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
  • GET请求在URL中传送的参数是有长度限制的,而POST么有。
  • 对参数的数据类型,GET只接受ASCII字符,而POST没有限制。
  • GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。
  • GET参数通过URL传递,POST放在Request body中。
    (本标准答案参考自w3schools)

吃一堑长一智吧,且行且珍惜啊