GET和POST区别

一、传输数据方式

二、安全性

POST将请求数据放在请求体中,GET放在URL中,HTTP是明文传输,所以从攻击角度,为了安全要用HTTPS协议

三、请求数据大小

在HTTP协议中,并未对GET请求限制大小,是浏览器限制,并且不同浏览器限制不同。
POST无此限制,但理论上,IIS4中最大量为80KB,IIS5中为100KB。
为什么GET浏览器会限制?
URL这种东西必须当作一个整体看待,无法一块一块处理,于是就处理一个请求时必须分配一整块足够大的内存。如果URL太长,而并发又很高,就容易挤爆服务器的内存;

四、缓存

  • GET:可以看做DB的select操作,不会对服务端数据产生影响。可以做缓存(客户端、代理服务器Nginx、服务器Etag)
  • POST:可以看做DB的update、insert、select,是必须访问数据库行为,所以不做缓存。

五、请求次数

http 100-continue用于客户端在发送POST数据给服务器前,征询服务器情况,看服务器是否处理POST的数据,如果不处理,客户端则不上传POST数据,如果处理,则POST上传数据。在现实应用中,通过在POST大数据时,才会使用100-continue协议(加入头{“Expect”:“100-continue”})。
【但这并不是协议规定的,所以也可以像GET直接发数据】

六、管道传输

  • get支持管道化传输,而post不支持
    在长连接中,是顺序请求和响应:请求1->响应1->请求2>响应2
    管道化:请求1 -> 请求2 -> 请求3 -> 响应1 -> 响应2 -> 响应3
    在这里插入图片描述
    HTTP1.1要求服务器支持管线化,但并不要求服务器对响应进行管线化处理,只是要求对于管线化的请求不失败,而且现在服务端和代理程序对管线化的支持并不好,Chrome和Firefox默认并未开启管线化支持。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值