get和post的区别

简介: get和post的区别

GET和POST是什么

基本概念

GET和POST是 HTTP协议中的两种发送请求的方法


HTTP是什么

HTTP是hypertext transfer protocol(超文本传输协议)的简写, 它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程。

客户端连上服务器后,向服务器请求某个web资源,称之为客户端向服务器发送了一个HTTP请求。 一个完整的HTTP请求包括如下内容:一个请求行、若干消息头、以及实体内容

请求方式有:POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT


HTTP协议实际上是基于RFC规范的,实际上GET和POST请求的语法是完全相同的,但是在RFC规范中,给GET请求和POST请求规定了语义,规定GET用来获取信息,POST用来发送信息

get与post的区别

如果什么前提都没有,也就是不用任何规范限制的话,我们只考虑语法来说,这两个方式是没有任何区别的,只有名字不一样

如果考虑浏览器实现的RFC,或者说Web环境下的RFC的话,那么区别就很明显了

get方式

  1. GET方式是通过URL请求传递用户所输入的内容,其提交的内容会全部显示的浏览器的地址栏中;其安全性很低。如果用户输入的内容包含密码之类的私人信息时很容易被其他人获取
  2. GET方式提交需要用到Request.QueryString来取得变量的值
  3. GET提交具有长度限制,最长不能超过2048字节
  4. GET是从服务器上获取数据
  5. GET是把参数数据队列加到提交表单的action属性所指的URL中,值和表单内容一一对应,在URL中可以看到
  6. 在页面重新刷新载入时,没有提示框询问“是否重新发送请求”
  7. 在做请求时,GET是将表单内容放到信息的请求头中

post方式

  1. POST提交不会将用户所输入的个人信息显示在浏览器的地址栏中且地址栏中没有什么变化
  2. POST方式提交需要用到Request.Form来取得变量的值
  3. POST没有提交长度限制
  4. POST是向服务器传送数据
  5. POST是通过HTTP post机制,将表单内容 中各个字段与其内容旋转在HTML HEADER内一起传送到action属性所批的URL地址。用户是看不到这一过程的
  6. 在页面重新刷新载入时,会有提示框询问“是否重新发送请求”

幂等

幂等的概念

如果一个操作没有副作用,或者多次操作对资源产生的副作用相同,我们就说这个操作是幂等的

区别

get方法用户获取资源,没有副作用,所以是幂等的;

post用于创建资源,是有副作用的,且副作用不同,所以post不是幂等的。(两次相同的POST请求会在服务器端创建两份资源,它们具有不同的URI)

目录
相关文章
|
存储 前端开发 安全
GET 和 POST 请求:理解它们之间的区别和适用场景
GET 和 POST 请求:理解它们之间的区别和适用场景
|
存储 算法 Java
HashMap 之底层数据结构和扩容机制
HashMap 之底层数据结构和扩容机制
1608 1
|
XML 域名解析 JSON
【RESTful】RESTful API 接口设计规范 | 示例
【RESTful】RESTful API 接口设计规范 | 示例
12312 0
【RESTful】RESTful API 接口设计规范 | 示例
|
9月前
|
SQL 缓存 关系型数据库
如何解决MySQL 的深度分页问题?
在构建高性能Web应用程序时,数据库查询性能至关重要。本文深入探讨了MySQL中`LIMIT ... OFFSET ...`语法的性能瓶颈,并介绍了一种更高效的分页方法——游标分页(Cursor Pagination)。通过记录每页最后一个记录的唯一标识,游标分页能显著提升查询效率,将时间复杂度从O(n + m)降低到O(log n + m),特别适用于大规模数据的分页查询场景。此外,文章还介绍了其他优化方法,如覆盖索引分页、分区表、缓存和基于时间戳的分页,并提供了实践中的最佳建议,帮助开发者选择最适合的分页策略,提升系统性能和用户体验。
516 9
|
缓存 NoSQL 数据库
如何保证缓存(redis)与数据库(MySQL)的一致性
【说明】  对于热点数据(经常被查询,但不经常被修改的数据),我们可以将其放入redis缓存中,以增加查询效率,但需要保证从redis中读取的数据与数据库中存储的数据最终是一致的。本文基于“孤独烟”与“58沈剑”两位的文章,针对一致性的问题进行了汇总总结,两位的原文链接见文末。
25657 3
|
4月前
|
文字识别 监控 Java
顺丰同城抢单辅助脚本,顺丰骑士抢单辅助免封号,自动抢单神器【java版开源】
这是一套OCR实时检测订单列表并自动右滑的完整代码方案,适用于学习研究。代码包含四个主要模块:OCR处理(文字识别)、价格分析
|
7月前
|
存储 缓存 安全
理解GET和POST区别的全面指南
![理解GET和POST区别的全面指南](https://assets.echoapi.com/upload/user/222825349921521664/log/fb5d7a29-f85c-46e0-835c-a8fdc925ec73.webp) 本文详细解析了REST API中GET和POST方法的区别。GET用于从服务器获取数据,参数在URL中传递,适合查询;POST用于发送数据以创建或更新资源,数据放在请求体中,适合提交表单。两者在安全性、缓存、幂等性等方面有显著差异,理解这些区别有助于设计高效且安全的API。
|
11月前
|
安全 网络安全 数据安全/隐私保护
WAF防护功能的实现方案
WAF防护功能的实现方案
216 0
|
SQL 存储 数据管理
掌握SQL Server Integration Services (SSIS)精髓:从零开始构建自动化数据提取、转换与加载(ETL)流程,实现高效数据迁移与集成——轻松上手SSIS打造企业级数据管理利器
【8月更文挑战第31天】SQL Server Integration Services (SSIS) 是 Microsoft 提供的企业级数据集成平台,用于高效完成数据提取、转换和加载(ETL)任务。本文通过简单示例介绍 SSIS 的基本使用方法,包括创建数据包、配置数据源与目标以及自动化执行流程。首先确保安装了 SQL Server Data Tools (SSDT),然后在 Visual Studio 中创建新的 SSIS 项目,通过添加控制流和数据流组件,实现从 CSV 文件到 SQL Server 数据库的数据迁移。
3656 0