(春招面试)GET和POST的区别

了解历史
get 和post是HTTP与服务器交互的方式, 
说到方式,其实总共有四种:put,delete,post,get。 
他们的作用分别是对服务器资源的增,删,改,查。 
所以, get是获取数据,post是修改数据。
但是 ,现在大家都不这么干了! 
只用一个方式就可以做增删查减的操作。 


区别分析
get 把请求的数据放在url上,即HTTP协议头上,其格式为: 
以?分割URL和传输数据,参数之间以&相连。 
数据如果是英文字母/数字,原样发送, 
如果是空格,转换为+, 
如果是中文/其他字符,则直接把字符串用BASE64加密,及“%”加上“字符串的16进制ASCII码”。 
post 把数据放在HTTP的包体内(requrest body)。
get 提交的数据最大是2k(原则上url长度无限制,那么get提交的数据也没有限制咯?限制实际上取决于浏览器,(大多数)浏览器通常都会限制url长度在2K个字节,即使(大多数)服务器最多处理64K大小的url。也没有卵用。)。 
post 理论上没有限制。实际上IIS4中最大量为80KB,IIS5中为100KB。
GET 产生一个TCP数据包,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);
POST 产生两个TCP数据包,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。
GET 在浏览器回退时是无害的, POST 会再次提交请求。
GET 产生的URL地址可以被Bookmark,而 POST 不可以。
GET 请求会被浏览器主动cache,而 POST 不会,除非手动设置。
GET 请求只能进行url编码,而 POST 支持多种编码方式。
GET 请求参数会被完整保留在浏览器历史记录里,而 POST 中的参数不会被保留。
GET 只接受ASCII字符的参数的数据类型,而 POST 没有限制
那么 ,post那么好为什么还用get? get 效率高!
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值