放弃该放弃的是无奈,放弃不该放弃的是无能,不放弃该放弃的是无知,不放弃不该放弃的是执着。
愿自己能在自己所热爱的道路上越走越远。
下面的几条关于GET和POST请求之间的区别, 是在别的博客看见并记录了下来,但是想不起来是从哪个博客看的了, 所以在这里脸皮厚的就说下面是我自己总结的了~
- GET是不安全的,因为在传输过程中,数据被放在URL中,POST请求的所有操作对用来说都是不可见的.
- GET传输数据量较小,主要是因为URL长度限制,POST传送的数据量一般不受限制.
- GET限制Form表单的数据必须是ASCII字符,而POST支持整个ISO10646字符集.
- GET执行效率比POST方法好, GET也是Form提交的默认方法.
- GET产生一个TCP数据包,Post产生两个数据包(在某些情况下POST回产生两个数据包,下文将会介绍为什么).
- 严格的来说,对于GET请求,浏览器会把HttpHeader和data一并发送出去,服务器响应200放回数据。而对于POST来说,浏览器会先发送header服务器响应continue,浏览器再次发送data,服务器响应200,那么本次POST提交数据是成功的.
- GET请求默认会被浏览器主动缓存,而POST不会被浏览器主动进行缓存.
- GET请求的参数会保存在浏览器中, 而POST请求的参数不会保存在浏览器中.
- GET的执行效率要比POST的好.
关于Get和Post常见的问题.
- Post方法比Get方法安全?
Post相对比较与Get是稍微安全一些的,因为数据在地址栏是不可见的。 然而从传输的角度来说,他们都是不安全的,因为HTTP在网络上都是明文传输逇,只要在网络节点上捉包,就能完整的获取数据报文.
想要安全的传输,就只有加密使用HTTPS. - Get方法的参数限制是怎么回事?
关于Get方法参数限制的问题, 我觉得我们应该首先要明白HTTP协议和浏览器解析URL限制的一些问题.
关于HTTP协议其是没有body和URL的长度限制的,并且对URL限制的大多数是浏览器和服务器的原因。服务器是因为处理厂URL要消耗比较多的资源,为了性能和安全(防止恶意构造长的URL来攻击),所以服务器才会对URL长度加以限制. - 为什么Post方法会产生两个TCP数据包.
我们在网上的有些文章中能看其会说明POST发送的时候是将header和body分开发送, 先发送header,服务端返回100状态码然后在发送body。
但是HTTP协议中没有明确说明POST会产生两个TCP数据包,而是实际测试Chrome发现,header和body不会分开发送,所以说POST在发送请求的时候header和body分开发送都是部分浏览器或者框架的请求方法,不属于POST必然的行为.