前端HTTP请求方式之GET、POST与其他请求方法详解

 更新时间:2026年04月04日 09:52:33   作者:tsumikistep  
GET和POST是HTTP协议最常用的两种请求方法,下面这篇文章主要介绍了前端HTTP请求方式之GET、POST与其他请求方法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

前言

在前后端分离开发中,最常见的问题之一就是:

  • GET 和 POST 有什么区别?
  • PUT、DELETE、PATCH 是干什么的?
  • 为什么有的接口用 POST 不能用 GET?
  • 为什么有时候 GET 能成功,POST 却报错?

本文系统整理 HTTP 请求方式的区别、原理与使用场景,结合 Vue + Axios 实际开发说明。

定义概念 + 缩写

一、HTTP 是什么?

HTTP(HyperText Transfer Protocol)

超文本传输协议,是浏览器与服务器之间通信的规则。

二、常见请求方式

方法作用是否修改数据
GET获取数据
POST提交数据
PUT更新数据(整体替换)
PATCH局部更新
DELETE删除数据
HEAD只获取响应头
OPTIONS查询支持的请求方式

性质

一、GET 请求

特点

  • 用于获取数据
  • 参数放在 URL 中
  • 可被缓存
  • 幂等(多次请求结果相同)

示例

axios.get('/api/user/list', {
  params: {
    page: 1,
    pageSize: 10
  }
})

生成的请求:

GET /api/user/list?page=1&pageSize=10

适用场景

  • 查询列表
  • 查询详情
  • 查询分页数据

二、POST 请求

特点

  • 用于提交数据
  • 数据放在请求体(body)
  • 不会被浏览器缓存
  • 常用于创建资源

示例

axios.post('/api/user/login', {
  username: 'admin',
  password: '123456'
})

数据不会出现在 URL 中。

适用场景

  • 登录
  • 表单提交
  • 创建资源
  • 复杂查询条件

三、PUT 请求

特点

  • 用于更新资源
  • 通常是“整体替换”
  • 幂等

示例

axios.put('/api/user', {
  id: 1,
  name: '张三',
  phone: '123456'
})

四、PATCH 请求

特点

  • 局部更新
  • 只修改某个字段
axios.patch('/api/user/1', {
  phone: '999999'
})

五、DELETE 请求

特点

  • 删除资源
  • 一般通过 id 删除
axios.delete('/api/user', {
  params: { id: 1 }
})

六、GET 与 POST 核心区别总结

对比项GETPOST
参数位置URLBody
安全性较低较高
数据长度有限制基本无限制
是否缓存
是否幂等
用途查询提交

使用步骤

一、在 Axios 中的标准写法

统一写法(推荐)

axios({
  method: 'post',
  url: '/api/user/login',
  data: {
    username: 'admin',
    password: '123456'
  }
})

二、什么时候用 GET?

✔ 查询

✔ 不修改服务器数据

✔ 参数简单

例如:

GET /admin/category/page?page=1&pageSize=10

三、什么时候用 POST?

✔ 登录

✔ 提交表单

✔ 创建数据

✔ 查询条件复杂

例如:

POST /admin/employee/login

四、为什么不能乱用 GET?

如果用 GET 做登录:

GET /login?username=admin&password=123456

密码会暴露在浏览器地址栏:

  • 不安全
  • 会被浏览器记录
  • 会被代理服务器记录

所以登录必须用 POST。

五、RESTful 设计规范建议

操作方法
查询列表GET
查询单个GET
新增POST
修改PUT
局部修改PATCH
删除DELETE

总结

  1. GET 用于查询,不修改数据
  2. POST 用于提交,修改服务器数据
  3. PUT 是整体更新
  4. PATCH 是局部更新
  5. DELETE 是删除
  6. GET 参数在 URL,POST 参数在 body
  7. 登录、密码、敏感数据一定用 POST

一句话总结:

GET 是“看”,POST 是“改”

参考文献

[1] HTTP/1.1 协议规范
[2] Axios 官方文档

到此这篇关于前端HTTP请求方式之GET、POST与其他请求方法的文章就介绍到这了,更多相关HTTP GET、POST与其他请求方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

相关文章

  • IE下使用cloneNode注意事项分享

    IE下使用cloneNode注意事项分享

    在开发百度“地裂特效”时,发现了一些匪夷所思的 bug,第一反应是特效本身的代码与页面上原有的脚本发生了冲突,经过调试发现,问题出现在 cloneNode 的应用上
    2012-11-11
  • 总结AJAX相关JS代码片段和浏览器模型

    总结AJAX相关JS代码片段和浏览器模型

    总结AJAX相关JS代码片段和浏览器模型...
    2007-08-08
  • javaScript call 函数的用法说明

    javaScript call 函数的用法说明

    javaScript 中的 call() 是一个奇妙的方法,但也是一个让人迷惑的方法,先看一下官方的解释。
    2010-04-04
  • JS 页面自动加载函数(兼容多浏览器)

    JS 页面自动加载函数(兼容多浏览器)

    兼容多个浏览器的自动加载函数。
    2009-05-05
  • 当json键为数字时的取值方法解析

    当json键为数字时的取值方法解析

    对于数字键名或者非正常变量字符(比如有空格),必须使用 aa[x]的方式
    2013-11-11
  • 浅谈几种常用的JS类定义方法

    浅谈几种常用的JS类定义方法

    下面小编就为大家带来一篇浅谈几种常用的JS类定义方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • javascript数组去重小结

    javascript数组去重小结

    本文给大家汇总介绍了javascript中数组去重的4种方法,分别是循环匹配去重,JSON去重/对象去重/字典去重,队列递归去重,INDEXOF去重方式,非常的细致全面,有需要的小伙伴可以参考下。
    2016-03-03
  • 浅谈Javascript数组(推荐)

    浅谈Javascript数组(推荐)

    数组,即Array类型,是开发中最常用的类型之一。这篇文章主要介绍了浅谈Javascript数组的相关资料,需要的朋友可以参考下
    2016-05-05
  • js数据类型转换与流程控制操作实例分析

    js数据类型转换与流程控制操作实例分析

    这篇文章主要介绍了js数据类型转换与流程控制操作,结合实例形式分析了JavaScript数据类型转换与流程控制相关原理、操作技巧与使用注意事项,需要的朋友可以参考下
    2019-12-12
  • 第二篇Bootstrap起步

    第二篇Bootstrap起步

    这篇文章主要介绍了第二篇Bootstrap起步的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-06-06

最新评论