get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。

get安全性非常低,get设计成传输数据,一般都在地址栏里面可以看到,post安全性较高,post传递数据比较隐私,所以在地址栏看不到,

如果没有加密,他们安全级别都是一样的,随便一个监听器都可以把所有的数据监听到。这也就是问什么通常get是从服务器上获取数据,post是向服务器传送数据

GET请求能够被缓存,GET请求会保存在浏览器的浏览记录中,所以GET请求的URL能够保存为浏览器书签,post请求不具有这些功能。

GET请求在URL中传送的参数是有长度限制的,而POST没有
GET请求把参数包含在URL中,将请求信息放在URL后面,POST请求通过request body传递参数,将请求信息放置在报文体中。

Get在浏览器回退时是无害的,而Post会再次提交请求。无害的意思只是数据不变
当从一个页面请求到另一个页面,再返回到当前的页面,get只是发生了一次,post发生了两次

幂等性
HTTP幂等方法,是指无论调用这个url多少次,结果都是相同的HTTP方法

GET请求只能进行url编码,而Post支持多种编码方式 
对于参数的数据类型,GET只接受ASCII字符,post没有限制

让我们扒下两者的外衣,坦诚相见吧(好吧,是本质区别)

HTTP的底层是TCP/IP,GET和POST的底层也是TCP/IP,也就是说,GET/POST都是TCP链接。它们的本质都是 TCP 链接,并无区别。

之所以区分get跟post。主要是为了方便区分。因为功能多了。总要区分嘛。浏览器也需要区分对待。不然统一处理的话难免会浪费一些资源啊。多消耗时间之类的。比如说get有长度限制。这都是浏览器限制的。
因此GET和POST能做的事情是一样一样的。你要给GET加上request body,给POST带上url参数,技术上是完全行的通的。虽然这样子做并不符合 HTTP 的规范。

它们不同的产生是由于 HTTP 的规定以及浏览器/服务器的限制,导致它们在应用过程中可能会有所不同。

 
GET产生一个TCP数据包,POST产生两个TCP数据包。
对于get请求方式,浏览器会把http header 和data一起发送出去,服务器响应200(返回数据)。
而对于post,浏览器先发送header,服务器响应100 continue,浏览器在发送data,服务器响应200返回数据。
据研究,在网络环境好的情况下,发一次包的时间和发两次包的时间差别基本可以无视。而在网络环境差的情况下,两次包的TCP在验证数据包完整性上,有非常大的优点。
并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次。
 

最新文章

  1. css3多列example
  2. UVa 129 Krypton Factor【回溯】
  3. Linux开机启动程序详解[转]
  4. 前端工程搭建NodeJs+gulp+bower
  5. php self
  6. Storm系列(十八)事务介绍
  7. PHP - 表单与验证
  8. 在maven仓库中查找jar
  9. J Dp
  10. Handler消息传递机制——Handler类简洁
  11. ROS初探:(一)ROS架构
  12. JAVA程序员面试宝典
  13. [LeetCode] 21. 合并两个有序链表
  14. springboot接口访问权限AOP实现
  15. 【转载】Excel 三维地图入门
  16. Jenkins+Git+Maven构建并部署war包到tomcat
  17. android AES 加密解密
  18. redis的优缺点
  19. Linux笔记 #08# shell编程从零开始到低配学生管理系统
  20. 路径不对 导致FileNotFoundError: [WinError 2] 系统找不到指定的文件, 问题解决办法

热门文章

  1. 【心得】Lattice EPC3 PCS使用经验
  2. JVM-9-调优工具
  3. day91_11_13Local与偏函数
  4. Least Common Multiple (HDU - 1019) 【简单数论】【LCM】【欧几里得辗转相除法】
  5. Linux设备树文件结构与解析深度分析
  6. 1+x证书Web前端开发HTML+CSS专项练习测试题(八)
  7. python接口自动化10-excel设计模式实战
  8. NRF51822/NRF51802/NRF52832/NRF52810/NRF52811/NRF52840内核对比
  9. python多项式求解
  10. rxjava介绍