GET和POST的区别

206 阅读1分钟

GET和POST的区别

一般回答:

1.get url传递参数,post body传参
2.get 传参有长度限制,post没有
3.get 传参不安全,post 安全
4.对参数的数据类型,get ASCII字符,post的无限制
5.get浏览器会自动缓存,post需要手动设置
6.get可以安全的回退,post回退需要再次请求
7.get的url参数会保存在浏览器记录里面,post不会

反思:这个对吗?或者说面试官想听到这个吗?

回答:首先,这个是http和浏览器规范下的产物,也就是说,这个回答不是太对。

正确的回答:

首先,get、post这些请求,都是基于http的,http的底层是tcp/ip,所以说,get、post的底层也是tcp/ip,那么问题来了,既然,他们的底层一样,那他们有什么区别呢。
上面所说的,那些区别,只是,http和浏览器给的限制或者说是规范下的产物。最终,他们的区别:
    1.语义不同
    2.get只发送一次tcp包,会把header和data一起发出去,服务器响应200(返回数据)
    3.post会发送两次tcp包,第一次:会把header发出去,服务器响应100 continue,再发送data,服务器响应200 ok(返回数据)