Post请求和Get请求的区别
1.参数
最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。
其次:Post传输的数据量大,可以达到2M,而Get方法由于受到URL长度限制,只能传递大约1024字节。
2.用途
GET用于从服务器端获取数据,包括静态资源(HTML|JS|CSS|Image等等)、动态数据展示(列表数据、详情数据等等)。
POST用于向服务器提交数据,比如增删改数据,提交一个表单新建一个用户、或修改一个用户等。
3.缓存
GET时默认可以复用前面的请求数据作为缓存结果返回,此时以完整的URL作为缓存数据的KEY。所以有时候为了强制每次请求都是新数据,我们可以在URL后面加上一个随机参数Math.random或时间戳new Date().getTime()、或版本号。POST一般则不会被这些缓存因素影响。
4.安全性
默认对于nginx的access log,会自动记录get或post的完整URL,包括其中带的参数。
对于POST来说,请求的报文却不会被记录,这些对于敏感数据来说,POST更安全一些。
6.GET和POST对服务器的状态
根据http的设计,大家在看到get的时候,都期望这个请求对服务器没有修改,看到post的时候,都认为这对服务器产生了修改。
7.GET幂等,POST不幂等
1.按照RFC规范,PUT,DELETE和安全方法都是幂等的。虽说是规范,但服务端实现是否幂等是无法确保的。
2.引入幂等主要是为了处理同一个请求重复发送的情况,比如在请求响应前失去连接,如果方法是幂等的,就可以放心地重发一次请求。这也是浏览器在后退/刷新时遇到POST会给用户提示的原因:POST语义不是幂等的,重复请求可能会带来意想不到的后果。
3.比如在微博这个场景里,GET的语义会被用在「看看我的Timeline上最新的20条微博」这样的场景,而POST的语义会被用在「发微博、评论、点赞」这样的场景中。
Post请求和Get请求的区别相关推荐
- JSP、Servlet中get请求和post请求的区别总结
在学习JavaWeb最初的开始阶段,大家都会遇到HttpServlet中的doGet和doPost方法.前两天看<Head First Servlets & JSP>看到其中讲关于 ...
- java中的post的作用,JSP、Servlet中get请求和post请求的区别总结
在学习JavaWeb最初的开始阶段,大家都会遇到HttpServlet中的doGet和doPost方法.前两天看<Head First Servlets & JSP>看到其中讲关于 ...
- 客户端(前端)Ajax中Get请求和Post请求的区别
我们在使用Ajax时,当我们向服务器发送数据时,我们可以采用Get方式请求服务器,也可以使用Post方式请求服务器.那么,Get请求和Post请求的区别到底在哪呢? GET请求 get是最常见的请 ...
- 接口定义,常见的接口,常见的接口请求方式,put请求和patch请求的区别
接口定义:应用程序编程接口,指前后端数据交互的一套标准,包括软件内部之间的接口,硬件之间的接口或者是软件对外的接口. 常见的接口类型: 1,Webservice接口,主要用于服务端的接 ...
- WEB中get请求和post请求的区别
参考:https://blog.csdn.net/weixin_39361808/article/details/81136865 GET请求和POST请求是HTTP协议发送请求的两种基本方法. W3 ...
- get请求和post请求的区别(简洁易懂)
一.GET和POST是什么? HTTP协议中的两种发送请求的方法,本质上都是在进行TCP连接. 二. GET请求和POST请求的区别是什么? GET请求参数是通过URL进行传递的,POST请求的参数包 ...
- post请求和get请求的区别面试题
** GET请求 和 POST 请求 ** get和post是 HTTP 请求的两种基本方法,至于区别大致分为以下六个方面 ** 1.url可见性: get,参数url可见: post,url参数不可 ...
- 简洁!get请求和post请求的区别——Web网络系列学习笔记
一次网络交互分为以下三个部分 用户向服务器发送请求 服务器处理请求 服务器向用户返回响应 Get和Post是不同的用户请求方式 Get请求到达服务器后不会修改服务器上的数据, 以CSDN为例,点击查看 ...
- POST请求和PUT请求的区别
结论: PUT请求:当两次请求相同时,第二次请求会覆盖第一次,一般用来更新资源 POST请求:第二次请求不会覆盖第一次,一般用来新增资源
最新文章
- 怎么用linux设计一个小程序,“Linux”小程序发布一个月后,我们发现了什么
- 01-从零开始学习VTK
- C# 加载 SQLite DLL问题
- Angular新建组件失败More than one module matches........
- java 十六进制转十进制_JAVA知识-分析JAVA中的重点和难点
- android opencv 银行卡识别,NDK 开发之使用 OpenCV 实现银行卡号识别
- A*算法(三)算法实现
- 清北学堂模拟赛day7 错排问题
- 【CF-Round-458:D】Bash and a Tough Math Puzzle(判断是否可以通过修改区间内的一个数使区间gcd=x)
- Win11如何给系统盘瘦身?Win11系统盘瘦身方法
- 署五笔软件测试初学者,三天学会五笔打字练习(新手教程)
- 小D课堂-nexus
- ICCV2021 多目标跟踪(MOT)汇总
- 腾讯云:开发者实验室
- 短视频搬运神器,二次剪辑神器,涨粉热门必备软件,黑科技----效果杠杠的
- 导出word中图片的方法
- JAVA经典算法40题(供面试所用)
- mysql cpu 占比过高问题解决
- AI探索太阳系:从检测月球巨石,到挑战火星“恐怖七分钟”
- 密歇根大学最新成果:教会无人车预测行人运动趋势