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(返回数据)