WEB 开发同学一看 get 和 post 请求方法的区别,第一感觉都是 So easy!

学习ajax、fetch、axios时,发送网络请求携带参数时,都需要分别处理get和post的参数。所以我们需要学习get和post的区别,以便更好地进行前后端数据交互。get 和 post 区别你到底知道多少呢?

一、GET 和 POST的区别

GET

POST

后退按钮/刷新

无害

数据会被重新提交(浏览器应该告知用户数据会被重新提交)。

书签

可收藏为书签

不可收藏为书签

缓存

能被缓存

不能缓存

编码类型

application/x-www-form-urlencoded

application/x-www-form-urlencoded 或 multipart/form-data。为二进制数据使用多重编码。

历史

参数保留在浏览器历史中。

参数不会保存在浏览器历史中。

对数据长度的限制

是的。当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大长度是 2048 个字符)。

无限制。

对数据类型的限制

只允许 ASCII 字符。

没有限制。也允许二进制数据。

安全性

与 POST 相比,GET 的安全性较差,因为所发送的数据是 URL 的一部分。在发送密码或其他敏感信息时绝不要使用 GET !

POST 比 GET 更安全,因为参数不会被保存在浏览器历史或 web 服务器日志中。

可见性

数据在 URL 中对所有人都是可见的。

数据不会显示在 URL 中。

二、本质区别

2.1http协议

浏览器和服务器之间是通过http协议进行数据通信的,而get和post是http协议其中的两个方法。想要更多了解http协议,请点击《网络请求详解》。

http协议底层是 TCP/IP ,把TCP比作汽车,用TCP给浏览器和服务器之间运输数据,它很可靠,从不会发生数据丢失现象,但是如果路上跑的全是一模一样的TCP车辆,那这个世界就非常混乱,整个系统就会瘫痪。为了避免这种情况发生,http 定义了交通规则,给汽车运输设定了好几个服务类别,有 GET、 POST、 PUT、 DELETE 等等。它们的作用分别为:

  • GET:从服务器上获取数据,仅仅查询服务器上的数据,不进行修改。
  • POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。
  • PUT:从客户端向服务器传送的数据,也就是添加数据。
  • DELETE:字面意思删除,客户端请求服务器删除指定的内容。

当执行GET请求时,汽车贴上get标签,而且要求把货物放到车顶(url)方便记录,当执行POST请求时,贴上post标签,将货物放置车厢内(body)。

2.2、为什么说 get 比 post 更快?

get 产生一个TCP数据包,而 post 产生两个数据包。

get 发送数据的时候,url把header和data数据带着一起传送到服务器,然后返回结果。但是 post 会先发送 header 到服务器,服务器响应 100 之后,继续向浏览器发送data,服务器接收完之后,会验证数据完整性,然后返回结果。

post 要比 get 多进行一次数据传输,所以 get 比post更快。好多人想着,为了提升网站速度,把所有post改成get方式,这样合适吗?

  • 网速快的时候,发一次数据和发两次数据时间差一点点,基本可以忽略,但是网速慢的时候,post 可以验证数据完整性,有非常大的优点。
  • get 和 post都有自己的语义,不能随便混用。
  • 并不是所有浏览器 post 都会发送两次数据,火狐浏览器只发一次。

三、面试怎么回答?

  1. post更安全。
  2. post可以发送更大数据。
  3. post能发送更多数据类型。
  4. post比get慢。
  5. post用于修改和写入数据,get一般用于分享搜索筛选之类操作。

前后端数据交互(八)——请求方法 GET 和 POST 区别相关推荐

  1. 前后端数据交互方法 汇总

    这篇文章给大家介绍几种常用的前后端数据交互方法,并给出使用建议.以提高前后端协同开发的效率.非常的详细,推荐给小伙伴们,有需要的小伙伴可以参考下. 1.HTML赋值 输出到 Element 的 val ...

  2. ajax连接前后端原理,前后端数据交互方法和原理

    前后端数据交互方法和原理 发布时间:2018-10-28 11:25, 浏览次数:742 对于想要搞web的新手而言,会用html+css+javascript实现一个页面没什么太大的困难,但是想要前 ...

  3. 干货 | 万字长文全面解析GraphQL,携程微服务背景下的前后端数据交互方案

    作者简介 古映杰,携程研发高级经理,负责前端框架和基础设施的设计.研发与维护.开源项目react-lite和react-imvc作者. 前言 随着多终端.多平台.多业务形态.多技术选型等各方面的发展, ...

  4. 前后端数据交互|分页查询|表格-双向绑定|get和post的区别

    目录 1 前后端数据交互 1.1 前端代码 部署在 前端服务器 1.2 前端代码 在 浏览器展示(只展示页面,没有数据)----自给自足 1.3 前端/浏览器 请求 后端数据 (后端死数据)----给 ...

  5. 软件测试的交互,软件测试--前后端数据交互

    作为一个合格的软件测试人员, 能够熟练定位bug的位置是属于前端还是后端,是必备技能之一.所以就需要明白前后端数据是怎么进行交互的. 一.网站数据处理主要分为三层 第一层,表示层,这部分可以用HTML ...

  6. 超详细总结:前后端数据交互原理

    最近开始接触前后端的一些知识,查了很多资料,今天把互联网产品的前后端数据交互做个总结留做笔记. 互联网产品的前后端数据交互是通过一个通讯协议完成.前后台交互的协议主要包括HTTP,FTP,SMTP,T ...

  7. 前后端数据交互——ajax(原生及jquery)

    目录 前后端数据交互--ajax 1. 介绍 2.原生ajax用法 3.jquery的ajax 4.ajax原理说明 前后端数据交互--ajax 1. 介绍 1.1 定义 Ajax(Asynchron ...

  8. Android---SpringBoot实现前后端数据交互

    Android-SpringBoot实现前后端数据交互 星光不问赶路人,时间不负有心人 这篇是针对android传数据到后台springboot,使用Xutils框架 使用Xutils框架 关于xut ...

  9. 详解 AJAX-SpringBoot 前后端数据交互

    详解 AJAX-SpringBoot 前后端数据交互 1. Ajax 概述 Ajax 的英文全称是 "Asynchronous JavaScript and XML",即 &quo ...

  10. 前后端数据交互——ajax技术

    在实际开发过程中,前端页面通常需要根据后台数据实现动态生成和实时更新,因此如何实现前后端数据交互成了开发过程中的难题. 现将使用ajax技术解决前后端数据的交互: (1)ajax技术介绍: ajax一 ...

最新文章

  1. .net 调用命令行进行解压缩
  2. 成功解决FileNotFoundError: [Errno 2] No such file or directory: '/home/bai/Myprojects/Tfexamples/data/kn
  3. qoq是什么意思的缩写_“yjgj他的pyq很zqsg”,90后从未觉得自己老,直到看到00后缩写的那一秒……...
  4. 使用 std::shared_ptr 和 std::unique_ptr 测试 boost/pointer_cast.hpp
  5. 螺旋方阵 | 蛇形填数
  6. xfce4设置屏保/锁屏时间
  7. linux下时间同步的两种方法分享
  8. ng-bind-html在ng-repeat中问题的解决办法
  9. PHP编写时的灵活性
  10. 压力变送器自动检测系统 技术设计说明书
  11. html如何自动获取屏幕高度,css如何获取屏幕高度?
  12. __stdcall使用
  13. 后端实践:Nginx日志配置(超详细)
  14. 计算机毕业论文致谢,计算机软件毕业论文致谢词
  15. linux系统怎么调节分辨率,直观:Linux下的高分辨率屏幕设置
  16. 海尔智家罗马尼亚冰箱工厂将投产;长沙世茂希尔顿酒店今夏揭幕​;现代与LG新能源打造环保汽车电池 | 美通企业周刊...
  17. 私有专辑 java,这是什么“专辑歌手”标签iTunes使用?任何方式使用java设置?
  18. OJ1343——First Blood
  19. 网件 R6400 TTL 救砖详细 教程
  20. java+mysql 基于jsp810校园二手书交易系统

热门文章

  1. 网站访问数据统计工具
  2. 图解密码技术(一)密码
  3. centos下ftp服务器搭建
  4. 工程实践,淘宝直播高画质低延时技术探索
  5. cass道路设计教程_cass道路设计
  6. 软考中级-软件设计师涉及的知识点和笔记
  7. 极化码理论及算法研究5-SC算法及matlab仿真
  8. Http权威指南笔记(三)——HTTP报文
  9. Adafruit_SSD1306库学习
  10. 手撕包菜 mysql_新版手撕包菜安装教程