原理:
  post和get都是与服务器交互的方法,还有put和delete。
  从http标准看来get,post,put,delete对应的就是对这个资源的查,改,增,删四个操作,因此我们可以理解为get一般是用来获取/查询服务器资源信息,post一般是用于更新服务器资源信息。即get是向服务器发送取数据的一种请求,而post是向服务器提交数据的一种请求,在FORM(表单)中,Method默认为"GET",实质上,GET和POST只是发送机制不同,并不是一个取一个发!
  我们再来解释一下什么是HTTP?HTTP是基于TCP/IP的关于数据如何在万维网中如何通信的协议。
  HTTP的底层是TCP/IP。所以GET和POST的底层也是TCP/IP,也就是说,GET/POST都是TCP链接。GET和POST能做的事情是一样一样的。你要给GET加上request body,给POST带上url参数,技术上是完全行的通的。
  这到底是都是什么?
  总结:
  我参考别人的博客,自己做了些总结,如下:
  运输需要车辆,而TCP就像行驶的许多车辆,如果车辆全部按自己的想法走,交通就会瘫痪,所以作为交通规则的HTTP诞生了。HTTP规定了TCP(运输车)行驶的方式:get、post、head、options、put等。当执行get请求时,车上贴get标签(Method=“GET”),货物放在上层运输。如果是post请求,车上贴post标签,货物放在下层运输。当然,get方式也可以把货物偷偷放在下层,但是这样是算get还是post呢?让人觉得傻乎乎的。所以,HTTP只是个行为准则,而TCP才是GET和POST怎么实现的基本。
  那么问题来了!区别到底是什么?
 
  其实作为程序小白我也不清楚,我扒了一段别人写的解释。感觉比较直观。
  GET和POST还有一个重大区别。
  
  简单的说:
  GET产生一个TCP数据包;POST产生两个TCP数据包。
  
  长的说: 
  对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);
  
  而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。
  
  也就是说,GET只需要汽车跑一趟就把货送到了,而POST得跑两趟,第一趟,先去和服务器打个招呼“嗨,我等下要送一批货来,你们打开门迎接我”,然后再回头把货送过去。
  
  因为POST需要两步,时间上消耗的要多一点,看起来GET比POST更有效。因此Yahoo团队有推荐用GET替换POST来优化网站性能。但这是一个坑!跳入需谨慎。为什么?

  1. GET与POST都有自己的语义,不能随便混用。

  2. 据研究,在网络环境好的情况下,发一次包的时间和发两次包的时间差别基本可以无视。而在网络环境差的情况下,两次包的TCP在验证数据包完整性上,有非常大的优点。

  3. 并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次。
     

Flask中post和get的区别相关推荐

  1. 在flask中使用jsonify和json.dumps的区别

    flask提供了jsonify函数供用户处理返回的序列化json数据,而python自带的json库中也有dumps方法可以序列化json对象,那么在flask的视图函数中return它们会有什么不同 ...

  2. flask中蓝图的使用

    Blueprint概念 简单来说,Blueprint 是一个存储操作方法的容器,这些操作在这个Blueprint 被注册到一个应用之后就可以被调用,Flask 可以通过Blueprint来组织URL以 ...

  3. Flask 中的上下文管理和请求钩子

    Flask 中的上下文管理和请求钩子 在使用 Flask 框架实现功能接口的时候,前端点击按钮发送请求的请求方式和 form 表单提交给后端的数据,后端都是通过 Flask 中的 request 对象 ...

  4. flask中文文档_「Flask系列」 初识Flask

    引子 作者有多年的编程打杂经验,之前一直参与基于Java的各种项目以及产品规划与设计,后因自己创业维持一家小公司,有些项目与产品,想降低开发成本,故在公司内部推行基于Python Flask的后端开发 ...

  5. flask开发桌面应用程序_使用Microsoft Authenticatio将多个破折号应用程序嵌入Flask中...

    flask开发桌面应用程序 Full disclosure: I am not an expert in developing web applications. I don't even consi ...

  6. Flask中current_app和g对象

    Flask中有两种上下文,请求上下文和应用上下文. 请求上下文(request context) request和session都属于请求上下文对象. request:封装了HTTP请求的内容,针对的 ...

  7. Flask 中的session 和 cookie

    文章目录 前言 什么是Cookie? Cookie 和 Session 什么是Seesion? 什么是token? Cookie和session的区别 token和session的区别 Flask中使 ...

  8. python中break和continue的区别

    python中break和continue的区别 break 结束for 或者while 循环  后面还没循环到的 不再循环 continue 当满足某种条件时结束当前值的循环 后面没有循环的继续循环 ...

  9. java中separator_java - File.separator和路径中的斜杠之间的区别

    java - File.separator和路径中的斜杠之间的区别 在Java Path-String中使用/和普通的File.separator有什么区别? 与双反斜杠相比,/平台独立似乎不是原因, ...

最新文章

  1. CVPR 2020 论文开源项目一页看尽,附代码论文
  2. ASP.NET配置错误页面浅析
  3. Java并发编程实例(synchronized)
  4. TreeView递归系统目录
  5. y7000怎么刷电池固件_redmi(红米)AC2100,刷老毛子固件
  6. Salesforce删除数据时出现Insufficient privileges的可能原因
  7. 吴裕雄--天生自然 JAVASCRIPT开发学习:弹窗
  8. 深度剖析阿里巴巴对Apache Flink的优化与改进
  9. 记事本编写java_如何使用记事本编写java程序
  10. 解决jupyter无法自动打开网页
  11. Linux——常用工具
  12. c++ append用法
  13. 无线降噪耳机推荐,热销火爆的四款降噪耳机推荐
  14. 19 01 18 dango 模型
  15. 动态规划-类数塔问题(在一个n* m的方格中,m为奇数,放置有n*m个数)
  16. 华为ac控制器web配置手册_31、堂堂华为企业级AP怎么还不如家用TP的速度”快“呢?(优化篇)...
  17. can收发器 rx_USB-CAN收发器
  18. 深圳首辆数字人民币主题观光巴士亮相
  19. mac 菜单栏图标删除_您可以在Mac菜单栏上显示的所有内置图标(可能)
  20. 暴笑小笑话集(全是最新经典!)

热门文章

  1. notebook购买日志
  2. 通知任务通知错群检讨
  3. 人到中年心事重的人,抓紧读懂曾国藩这4句话,莫让余生越混越差
  4. c语言制作java虚拟机_【C/C+】虚拟机实现:用C语言来写Java虚拟机
  5. JVM性能监控工具 - jhat
  6. 副本技能-exe4j将可运行Jar包转换为exe程序
  7. Word 里文字对齐的4种方法
  8. 小技巧--table表格td内容垂直居中方法
  9. linux的SSH(远程登录)服务
  10. 计算机科学导论:第五章 计算机组成