HTTP报文GET和POST两种请求方法的区别

GET请求方法:

POST请求方法:

 

二者最直观的区别就是 

1.get方法会把数据都放在头部url里而post会放在请求体中,因为get方法数据都暴露在url中因此post方法比get更加安全

2.get方法在浏览器回退时是无害的而post会再次提交表单

3.get方法产生的url可以被bookmark,post不会

4.get方法会被浏览器主动cache,post不会除非手动设置

5.get方法只能进行url编码,post支持多种编码

6.get方法参数会完整保留在历史记录里而post中的参数不会

7.get方法在url中传颂的参数是有长度限制的,post没有

8.对参数的数据类型get只接受ASCll字符,post不是

但其中本质上有一个重大区别

由于get方法会把请求头和数据一并发送服务器响应200只会产生一个tcp包,而post会先发送一个请求头服务器响应100continue之后再发送数据服务器响应200因此会产生两个tcp包

所以

1.get方法和post方法有各自的语义不可以混用

2.网络环境好的情况下,发一次包和发两次包的时间差不多可以忽略不计,但是在差的网络环境中发两次包在tcp完整性验证上具有非常大的优点

3.并不是所有浏览器post方法都会发两次包,火狐就只发一次

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值