HTTP请求方式:GET和POST的区别和使用场景

区别:

  • GET在浏览器回退时是无害的,无持续性的副作用,如进行搜索;而POST会再次提交请求,有副作用,如数据库内添加新的数据行。

  • GET产生的URL地址可以被Bookmark,而POST不可以。

  • GET请求会被浏览器主动cache,而POST不会,除非手动设置。

  • GET请求只能进行url编码,而POST支持多种编码方式。

  • GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。

  • GET请求在URL中传送的参数是有长度限制的,而POST没有有。

  • 对参数的数据类型,GET只接受ASCII字符,而POST没有限制。

  • GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。

  • GET比POST更快。

使用场景:

  GET请求:

  • 希望请求中的URL可以被手动输入

  • 希望请求中的URL可以被存在书签里,或者历史里,或者快速拨号里面,或者分享给别人。

  • 希望请求中的URL是可以被搜索引擎收录的。

  • 希望带云压缩的浏览器,比如Opera mini/Turbo 2, 只有GET才能在服务器端被预取的。

  • 希望请求中的URL可以被缓存

  POST请求:

  • 表单提交。

  • 请求参数中有敏感信息。

  • 请求参数很长,可能超过浏览器或服务器的限制。

总的来说,GET适合于查询操作,POST适合于新增、修改、删除操作。

猜你喜欢

转载自blog.csdn.net/liangmengbk/article/details/108948776