get和post的区别

想要做接口测试,要对get和post的原理有深入的理解,百度了一些答案,按照自己的理解,梳理get和post请求知识

get:请求指定的页面信息,并返回实体主体。

post:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。

 

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参数通过URL传递,POST放在Request body中。
  • get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB
  • get是从服务器上获取数据,post是向服务器传送数据。

get和post的工作模式:

  • GET产生一个TCP数据包;POST产生两个TCP数据包
  • 对于GET方式的请求,把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到
  • 而对于POST,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程

什么时候使用get,什么时候使用post?

  • 包含机密信息时,用post
  • 做数据查询,用get
  • 数据添加、修改、删除时,用post

 

posted @ 2018-11-21 10:42  JJLiu  阅读(202)  评论(0)    收藏  举报