![a852b006e92a79bc10453d87d8225e86.png](https://i-blog.csdnimg.cn/blog_migrate/047e2e41830ebe674a7ed8753867c0c2.jpeg)
首先是
form表单的get方式请求和post方式请求的区别:
测试:
get请求的方式提交表单:
![b1181ea4abb78a0d75280153571e3caa.png](https://i-blog.csdnimg.cn/blog_migrate/a19901ba89b47b49b11e11df63660496.png)
我们可以看到URL地址栏的变化:
![f370f79c53602e6430c78705c34549a5.png](https://i-blog.csdnimg.cn/blog_migrate/a532507f635f4c6b6d4a12e97b67ce19.png)
请求servlet的时候,请求的参数也在地址栏中显示了。
post方式提交表单:
![0209d643485ed75fc764b8c4dc47fd79.png](https://i-blog.csdnimg.cn/blog_migrate/eac51c9dffcf7280a81899e3ef81d3e7.jpeg)
我们来看URL地址栏:
![79bd818fe42a10936f87854476db389e.png](https://i-blog.csdnimg.cn/blog_migrate/9bfe9e3289458601387537acaf73515d.png)
没有请求的数据,我们请求的数据在哪里呢?
![dd6d9f554fc7aaf3b0182cc1a13fed09.png](https://i-blog.csdnimg.cn/blog_migrate/63ec68040113baff9a3e6c98bd51e573.png)
上面只是简单的测试了一下,这里作一个总结吧:
1. get 是不安全的,因为在传输过程,数据被放在请求的 URL 中;post 的 所有操作对用户来说都是不可见的,数据在请求正文中。
2. get 传送的数据量较小,这主要是因为受 URL 长度限制;post 传送的数 据量较大,一般被默认为不受限制。
3. get 限制 Form 表单的数据集的值必须为 ASCII 字符;而 post 支持整个ISO10646 字符集。
4. get 是 form 提交的默认方法。
上网查阅了一下,还有人说:
get 执行效率却比 post 方法好?也就是说get请求比post请求快,
我网络协议学的不好,不知所云,不明白快在哪里,表现在哪些方面有没有???
![7bde53bc3f13e3d22d04af4ea1864380.png](https://i-blog.csdnimg.cn/blog_migrate/97cc00c765d22f3e8ca9d55e5dc70920.jpeg)
参考别人总结的:
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每次耗费的时间都差不多……