当前位置: 首页 > java >正文

GET和POST史上最全总结

直接先看文章GET和POST区别

以下是个人三点补充(后续可能还会继续补充)

1 POST只是用来做修改,GET只能用来做查询?
其实这种思维是很死板的,只能说对post,get,put…不同类型请求的应用最好符合http协议规范,http协议推荐我们使用get做资源获取操作,post做资源添加操作,但并不是说非这样不可。举例:用get做资源添加操作

GET请求http://127.0.0.1:8011/demo4/test7?id=1&name=wzh&age=10请求如下接口(demo4是我在springboot配置的项目名)@GetMapping("/test7")public void addPerson(Integer id,String name,Integer age) throws IOException {Person person = new Person();person.builder().id(id).name(name).age(age).build();saveToDB(person);//模拟插入数据库的方法}

此外那么我们可以把复杂的参数转化为json字符串的形式,然后再接口中一个个的取,也不会很复杂啊。

但是get在各大浏览器和服务器中的参数长度的都被做了限制,而且大部分情况下参数附加到url后面也不会很安全

此外GET 是会被浏览器主动缓存的,如果下一次传输的数据相同,那么就会返回缓存中的内容,以求更快地展示数据,而且做参数往往只需要几个字段作为查询条件不会收到请求参数长度限制的影响。

2 get方式的请求参数只能放在url后面吗?
我们常见的get请求参数基本都长这个样子,如下

http://127.0.0.1:8011/demo4/test7?id=1&name=wzh&age=10

所以我们都潜意识的认为get请求的参数必须是附加到url后面,事实上大部分用法的确如此,因为主流web服务器如tomcat,本质是就是一个java servlet,在javaweb服务器中不支持对get请求请求体参数的处理,所以我们通常做java开发中都会把请求参数附加到url后面,但在http规范中肯定不会说get请求参数不能放到请求体里面,这完全是可以的,如下,举一个elasticsearch的例子啊,比较经典
在这里插入图片描述

3 安全性问题
参考文章中作者认为 POST 比 GET 更安全这个说法是有问题的。因为他觉得随便抓下包 POST 中的请求报文就暴露无疑了,但实际上,POST相比GET的确是安全的,POST中请求体的数据我们至少还要抓下包才能获取到,而GET中的数据我们大眼一看就能得到,如果你在某个登录或者注册时发现那个网站是用get方式来请求接口的,那么你账号密码身份证…都被当做参数附加在url上了而且还没加密,难以想象。

4 POST和GET的应用时机

GET请应用时机

  • 凡是浏览器请求都是get请求,因为浏览器就是做浏览的,浏览器的任务就是在互联网中找到资源然后返回给你,至于说什么互联网资源的增删改和人家浏览器有什么关系?
  • 点击链接跳转
  • 表单默认提交方式

发送post请求的情况

  • 设置表单method = “post”
http://www.xdnf.cn/news/11243.html

相关文章:

  • PropertyUtils的使用
  • Elasticsearch 技术分析(九):全文搜索引擎Elasticsearch,这篇文章给讲透了!
  • 粉丝答疑:如何实现高效免杀?
  • 智能聊天助手:数据分析的新兴英雄
  • 千兆光模块和万兆光模块的安装和维护指南
  • 使用U盘安装Fedora14 32bit操作系统(参考自www.osyunwei.com)
  • 如何给网页和代码做HTML加密?
  • 国家授时中心服务器IP地址
  • mega linux教程,LINUX 安装MegaRAID Storage Manager (MSM)安装使用教程
  • wordpress主题_2020年使用的15个顶级WordPress主题
  • 网络安全应急响应----4、DDoS攻击应急响应
  • 使用Teleport Pro离线下载网页所有内容
  • Ubuntu7.04使用中遇到的问题及从网上搜集的解决办法(截止2007-11-3日) 收藏
  • 协方差矩阵与相关系数矩阵
  • 联想y430完全拆机图解_y430p拆机详细步骤及如何安装mSATA接口的固态硬盘?
  • 磁盘碎片原理分析
  • 同一网络(局域网)下远程控制另一台电脑
  • [免费源码]个人引导页毛玻璃页面html源码
  • java操作JSON
  • 蠕虫病毒代码(纯属参考,请勿用于非法事件)
  • 游戏发展演变:何谓第三代网游?
  • 蜀门linux服务端架设,蜀门私服常用修改配置大全
  • 【干货】零基础30分钟让你拥有一个完整属于自己的短视频APP系统
  • 文心一言APP国区可下载!免费体验120+玩法,PPT大纲Excel公式一键生成
  • 各国搜索引擎大全
  • 使用Python截取nc文件数据保存到CSV文件
  • 忘记Gmail谷歌账号密码或者密码错误怎么办?用这种方法轻松搞定
  • 2024年Go最全PHP从基础到高级详细教程(完整版)_php高级教程(1),重要概念一网打尽
  • Linux学习记录--内核|内核模块编译
  • VMware 8安装Mac OS X 10.7 Lion