卡码笔记
首页
计算机基础
C++
Java
面经
笔记广场 (opens new window)
代码随想录 (opens new window)
首页
计算机基础
C++
Java
面经
笔记广场 (opens new window)
代码随想录 (opens new window)
  • 操作系统

  • 网络

    • 基础概念

      • TCP和UDP的区别是什么?
      • HTTP请求方式有哪些?
      • GET请求和POST请求的区别?
        • 简要回答
        • 详细回答
        • 知识拓展
      • HTTP中常见的状态码有哪些?分别是什么含义?
      • HTTP请求中的头部字段有哪些常见的类型?它们各自的作用是什么?
    • TCP 深入

    • HTTP 进阶

    • 安全与缓存

    • 综合应用

  • 数据库

# GET请求和POST请求的区别?

# 简要回答

# GET请求和POST请求的概念

  1. GET请求:
    • 作用:请求指定资源,参数通过URL传递。
    • 特点:安全(不修改服务器资源)、幂等(多次请求结果一致)、可缓存(响应可被浏览器或代理缓存)
    • 场景:数据查询、页面加载。
  2. POST请求:
    • 作用:提交数据(请求体携带数据)。
    • 特点:不安全(可能修改服务器状态,eg: 新增订单)、不幂等(重复提交可能产生不同结果,eg: 多次创建订单)。
    • 场景:表单提交、触发业务逻辑。

# GET请求和POST请求的区别

  • 如下表所示:

    对比角度 GET POST
    用途 获取资源 提交数据
    数据传输 参数附加在URL中 数据放在请求体中
    数据大小 受URL长度限制 理论上无限制
    安全性 参数可见,不适合敏感信息 数据不可见,相对更安全
    缓存 可被缓存 通常不被缓存
    幂等性 幂等 非幂等
    编码类型 只允许ASCII字符 支持多种编码类型

# 详细回答

# GET请求和POST请求的概念

  1. GET请求:
    • 作用:请求指定资源,参数通过URL传递。
    • 特点:
      (1) 浏览器地址栏中的地址是:action 属性 [ + ? + 请求参数];其中,请求参数的格式是:name=value&name=value。
      (2) 不安全(传输数据的信息直接暴露在了浏览器的地址栏)
      (3) 数据长度受限制 (不同的浏览器规定不一样,一般 2k 个字符)
    • 场景:数据查询、页面加载。
  2. POST请求:
    • 作用:提交数据(请求体携带数据)。
    • 特点:
      (1) 浏览器地址栏中只有 action 属性值 , 提交的数据是携带在 http 请求中 , 不会展示在地址栏。数据真正存放在请求头后面的请求体中(原始请求中,请求头和请求体是在一起的)。请求体一般在载荷中(以Google浏览器为例)。
      (2) 相对于 GET请求 要安全(数据不会直接显示在浏览器的地址栏)
      (3) 理论上没有数据长度的限制
    • 场景:表单提交、触发业务逻辑。

# GET请求和POST请求的区别

  1. 用途和语义:
    • GET主要用于从服务器获取资源,如网页内容、图片或API数据。它应该是安全和幂等的,意味着多次相同的GET请求应该返回相同的结果,且不会改变服务器状态。
    • POST主要用于向服务器提交数据,如提交表单或上传文件。它可能会改变服务器状态,因此不是幂等的。
  2. 数据传输方式:
    • GET请求将参数附加在URL中。
    • POST请求将数据封装在HTTP请求的请求体中,不会出现在URL中。
  3. 数据大小限制:
    • GET请求受URL长度的限制,具体限制因浏览器和服务器而异,通常在2048-8192字符之间。
    • POST请求理论上没有数据大小的限制,实际限制取决于服务器的配置。
  4. 安全性:
    • 若从数据暴露的安全性考虑,GET参数在URL中可见,不适合传输敏感信息,如密码。若从服务器状态修改的安全性考虑,GET请求是幂等的,不修改服务器资源,因此安全。
    • 若从数据暴露的安全性考虑,POST数据不会显示在URL中,相对更安全;但注意,两者都不是绝对安全的,敏感数据应该使用HTTPS传输。若从服务器状态修改的安全性考虑,POST请求可能修改服务器状态,不安全。
  5. 缓存:
    • GET请求可以被浏览器缓存,也可以被中间代理服务器缓存,有利于提高效率。
    • POST请求通常不被缓存,每次都会向服务器发送新的请求。
  6. 幂等性:
    • GET是幂等的,多次相同的GET请求应该返回相同的结果,不会改变服务器状态。
    • POST不是幂等的,多次相同的POST请求可能会导致多次修改服务器状态或多次提交数据。
  7. 编码类型:
    • GET只允许ASCII字符,对于非ASCII字符需要进行URL编码。
    • POST支持多种编码类型,可以发送复杂的数据结构,如JSON或XML。

# 知识拓展

  1. 一图胜千言:
    image
  2. RESTful API设计:REST(Representational State Transfer) 是一种软件架构风格,其与HTTP请求方式的关系如下:
    • GET通常用于读取(Read)操作
    • POST用于创建(Create)操作
    • PUT用于更新(Update)操作
    • DELETE用于删除(Delete)操作
  3. GET和POST的安全性:对于CSRF(跨站请求伪造)攻击,POST请求相对更安全;对于XSS(跨站脚本)攻击,两种方法都需要注意输入验证;不论是用GET还是POST,使用HTTPS加密传输可以提高安全性。
  4. GET和POST的性能优化:GET请求的缓存特性可用于提高应用性能;合理使用HTTP/2的多路复用特性可以优化两种类型的请求。
Last Updated: 3/10/2026, 6:08:48 PM

← HTTP请求方式有哪些? HTTP中常见的状态码有哪些?分别是什么含义? →

评论

验证登录状态...

侧边栏
夜间
卡码简历
代码随想录
卡码投递表🔥
2026群
添加客服微信 PS:通过微信后,请发送姓名-学校-年级-2026实习/校招
支持卡码笔记
鼓励/支持/赞赏Carl
1. 如果感觉本站对你很有帮助,也可以请Carl喝杯奶茶,金额大小不重要,心意已经收下
2. 希望大家都能梦想成真,有好的前程,加油💪