ajax post提交数据_JavaEE学习——为什么get请求方式比post请求方式效率高

a852b006e92a79bc10453d87d8225e86.png

首先是

form表单的get方式请求和post方式请求的区别:

测试:

get请求的方式提交表单:

b1181ea4abb78a0d75280153571e3caa.png

我们可以看到URL地址栏的变化:

f370f79c53602e6430c78705c34549a5.png

请求servlet的时候,请求的参数也在地址栏中显示了。

post方式提交表单:

0209d643485ed75fc764b8c4dc47fd79.png

我们来看URL地址栏:

79bd818fe42a10936f87854476db389e.png

没有请求的数据,我们请求的数据在哪里呢?

dd6d9f554fc7aaf3b0182cc1a13fed09.png

上面只是简单的测试了一下,这里作一个总结吧:

1. get 是不安全的,因为在传输过程,数据被放在请求的 URL 中;post 的 所有操作对用户来说都是不可见的,数据在请求正文中。

2. get 传送的数据量较小,这主要是因为受 URL 长度限制;post 传送的数 据量较大,一般被默认为不受限制。

3. get 限制 Form 表单的数据集的值必须为 ASCII 字符;而 post 支持整个ISO10646 字符集。

4. get 是 form 提交的默认方法。

上网查阅了一下,还有人说:

get 执行效率却比 post 方法好?也就是说get请求比post请求快,

我网络协议学的不好,不知所云,不明白快在哪里,表现在哪些方面有没有???

7bde53bc3f13e3d22d04af4ea1864380.png

参考别人总结的:

1.post请求包含更多的请求头

  因为post需要在请求的body部分包含数据,所以会多了几个数据描述部分的首部字段(如content-type),这其实是微乎其微的

2.最重要的一条,post在真正接受数据之前会先将请求头发送给服务器进行确认,然后才真正发送数据

  post请求的过程:

1.浏览器请求tcp连接(第一次握手)

  2.服务器答应进行tcp连接(第二次握手)

  3.浏览器确认,并发送post请求头(第三次握手,这个报文比较小,所以http会在此时进行第一次数据发送)

  4.服务器返回100 continue响应

  5.浏览器开始发送数据

  6.服务器返回200 ok响应

3.get会将数据缓存起来,而post不会

可以做个简短的测试,使用ajax采用get方式请求静态数据(比如html页面,图片)的时候,如果两次传输的数据相同,第二次以后耗费的时间将在10ms以内(chrome测试),而post每次耗费的时间都差不多……

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值