HTTP协议中常用到的两种方法先简单介绍一下GET与POST方法,两者本质上都为TCP链接,做的事情也基本相同,但是使用时要注意使用条件,不能混用。
GET
获取资源
GET方法用来请求访问已经被URI识别的资源,指定的资源经过服务器解析后返回响应的内容(原样返回)。
POST
用来传输实体的主体
post的主要目的并不是获取响应的主题内容,而是传输。
GET与POST区别
- GET把参数包含在URL中,POST通过request body传递参数
- GET请求只能进行url编码,POST请求支持多种编码方式
- POST比GET安全,因为POST数据在地址栏上不可见,而GET数据参数直接暴露在URL中
- GET的URL会有长度上的限制,则POST的数据则没有限制
- GET产生一个TCP数据包,而POST产生两个TCP数据包
- 对于GET方法,浏览器会将http header和data一起打包发出去,得到服务器响应200
- 对于POST方法,浏览器先将http header发出,得到服务器响应continue 100,再将data发出,得到服务器响应200
- 在网络环境好的情况下,发一次包的时间和发两次包的时间差别基本可以无视。而在网络环境差的情况下,两次包的TCP在验证数据包完整性上,有非常大的优点
- 要注意服务器的版本差异等;