常见的 HTTP 请求类型

深入理解常见的http请求类型和使用场景 当请求接口时,常见的数据请求类型有以下几种:GET请求:用于从服务器获取数据。GET请求将参数附加在URL中,以便将请求发送到服务器,并返回相应的数据。这是最常见的请求类型,适用于读取资源和查询数据。POST请求:用于向服务器提交数据。POST请求将参数包含在请求主体中,适合用于创建新资源、提交表单数据或执行某些操作。PUT请求:用于向服务器更新资源。PUT请求将更新的数据发送到特定URL,用于替换指定资源的全部内容。DELETE请求:用于从服务器删除资源。DELETE请求将删除指定URL上的资源。 阅读详情

URI、URL、URN
TCP、UDP、HTTP、SOCKET
TCP三次握手和四次挥手

一、5 种常见的请求类型

1️⃣GET:请求从服务器获取特定资源。
2️⃣POST:在服务器上创建一个新的资源。
3️⃣PUT:更新服务器上的资源(客户端提供更新后的整个资源)。
4️⃣DELETE:从服务器删除特定的资源。
5️⃣PATCH:更新服务器上的资源(客户端提供更改的属性,可以看做作是部分更新),使用的比较少。

二、GET 请求

@GetMapping(“users”) 等价于@RequestMapping(value="/users",method=RequestMethod.GET)

@GetMapping("/users")
public ResponseEntity<List<User>> getAllUsers() {
 return userRepository.findAll();
}

三、POST 请求

@PostMapping(“users”) 等价于@RequestMapping(value="/users",method=RequestMethod.POST)

@PostMapping("/users")
public ResponseEntity<User> insertUser(@Valid @RequestBody UserRequest userRequest) {
 return userRespository.save(user);
}

四、PUT 请求

@PutMapping("/users/{userId}") 等价于@RequestMapping(value="/users/{userId}",method=RequestMethod.PUT)

@PutMapping("/users/{userId}")
public ResponseEntity<User> updateUser(@PathVariable(value = "userId") Long userId,
@Valid @RequestBody UserRequest userRequest) {
  ......
}

五、DELETE 请求

@DeleteMapping("/users/{userId}")等价于@RequestMapping(value="/users/{userId}",method=RequestMethod.DELETE)

@DeleteMapping("/users/{userId}")
public ResponseEntity deleteUser(@PathVariable(value = "userId") Long userId){
  ......
}

六、PATCH 请求

一般实际项目中,都是 PUT 不够用了才用 PATCH 请求去更新数据。

@PatchMapping("/profile")
public ResponseEntity updateStudent(@RequestBody StudentRequest studentRequest) {
 studentRepository.updateDetail(studentRequest);
 return ResponseEntity.ok().build();
}

七、HTTP 中 GET 和 POST 的区别

GET 和 POST 是 HTTP 请求的两种基本方法。要说它们的区别,接触过 WEB 开发的人都能说出“标准答案”:

  1. GET在浏览器回退时是无害的,而POST会再次提交请求。
  2. GET产生的URL地址可以被Bookmark,而POST不可以。
  3. GET请求会被浏览器主动cache,而POST不会,除非手动设置。
  4. GET请求只能进行url编码,而POST支持多种编码方式。
  5. GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
  6. GET请求在URL中传送的参数是有长度限制的,而POST没有。
  7. 对参数的数据类型,GET只接受ASCII字符,而POST没有限制。
  8. GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。
  9. GET参数通过URL传递,POST放在Request body中。

八、GET和POST还有一个重大区别:GET产生一个TCP数据包;POST产生两个TCP数据包。

1️⃣GET请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);
2️⃣POST请求,浏览器先发送header,服务器响应100。浏览器再发送data,服务器响应200(返回数据)。

也就是说,GET汽车跑一趟就把货送到了,而POST得跑两趟,第一趟,先去和服务器打个招呼“我等下要货来,你们开门接下我”,然后再回头把货送过去。

因为POST需要两步,时间上消耗的要多一点,看起来GET比POST更有效。因此Yahoo团队有推荐用GET替换POST来优化网站性能。但是:

  1. GET与POST都有自己的语义,不能随便混用。
  2. 据研究,在网络环境好的情况下,发一次包的时间和发两次包的时间差别基本可以无视。而在网络环境差的情况下,两次包的TCP在验证数据包完整性上,有非常大的优点。
  3. 并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次。

九、GET和POST本质上并没有区别?

GET和POST是HTTP协议中的两种发送请求的方法。HTTP是基于TCP/IP的关于数据在万维网中如何通信的协议,HTTP的底层是TCP/IP。所以GET和POST的底层也是TCP/IP,也就是说,GET/POST都是TCP连接。GET和POST能做的事情是一样的。要给GET加上request body,给POST带上url参数,技术上是完全行的通的。

那么,“标准答案”里的那些区别是怎么回事?

万维网中,TCP就像汽车,用TCP来运输数据,它很可靠,从来不会发生丢件少件的现象。但是如果路上跑的全是看起来一模一样的汽车,那这个世界看起来是一团混乱,送急件的汽车可能被前面满载货物的汽车拦堵在路上,整个交通系统一定会瘫痪。为了避免这种情况发生,交通规则HTTP诞生了。HTTP给汽车运输设定了好几个服务类别,有GET、POST、PUT、DELETE等等。HTTP规定,当执行GET请求的时候,要给汽车贴上GET的标签(设置method为GET),而且要求把传送的数据放在车顶上(url中)以方便记录。如果是POST请求,就要在车上贴上POST的标签,并把货物放在车厢里。当然,也可以在GET的时候往车厢内偷偷藏点货物,但是这很不光彩;也可以在POST的时候在车顶上也放一些数据,让人觉得傻乎乎的。HTTP只是个行为准则,而TCP才是GET和POST怎么实现的基本。

但是,只看到HTTP对GET和POST参数的传送渠道(url还是requrest body)提出了要求。“标准答案”里关于参数大小的限制又是从哪来的呢?

万维网中,还有另一个重要的角色:运输公司。不同的浏览器(发起http请求)和服务器(接受http请求)就是不同的运输公司。 理论上,可以在车顶上无限的堆货物(url中无限加参数)。但是运输公司可不傻,装货和卸货也是有很大成本的,他们会限制单次运输量来控制风险,数据量太大对浏览器和服务器都是很大负担。业界不成文的规定是,(大多数)浏览器通常都会限制url长度在2K个字节,而(大多数)服务器最多处理64K大小的url。超过的部分,恕不处理。如果用GET服务,在request body偷偷藏了数据,不同服务器的处理方式也是不同的,有些服务器会帮你卸货,读出数据,有些服务器直接忽略。所以,虽然GET可以带request body,也不能保证一定能被接收。

综述,GET和POST本质上就是TCP链接,并无差别。但是由于HTTP的规定和浏览器/服务器的限制,导致它们在应用过程中体现出一些不同。

HTTP请求数据格式及响应数据格式 HTTP简介及请求和响应数据的格式 阅读详情

相关推荐

深入理解HTTP请求中常见的数据类型包括表单数据、JSON、XML和文件上传等。

表单数据是HTTP请求中最常见的数据类型之一,通常用于向服务器提交用户输入的表单数据。在Web开发中,HTTP是一种常用的通信协议,用于客户端和服务器之间的数据交互。HTTP请求中的数据类型决定了如何传输和解析请求中的数据。虽然在现代Web开发中,JSON更为常见,但某些场景仍然使用XML作为HTTP请求的数据类型。例如,纯文本数据适用于简单的消息传递,而Protobuf和MsgPack则适用于高效的数据序列化和反序列化。本文将介绍HTTP请求中常见的数据类型,包括表单数据、JSON、XML和文件上传等。

小墨蛇的博客 4705

HTTP 9 种请求方式

HTTP 9 种请求方式

杏子 1万+

学习心得——COMSOL Multiphysics with MATLAB联合仿真及寻优计算

学习心得——COMSOL Multiphysics with MATLAB联合仿真及寻优计算

weixin_41678956的博客 8657

HTTP的8种请求方式及常用请求方式的解析

HTTP,即超文本传输协议,是一种实现客户端和服务器之间通信的响应协议,它是用作客户端和服务器之间的请求。客户端(浏览器)会向服务器提交HTTP请求;然后服务器向客户端返回响应;其中响应包含有关请求的状态信息,还可能包含请求的内容。HTTP/1.1协议中共定义了八种方法(有时也叫“动作”),来表明Request-URL指定的资源不同的操作方式 其中: HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。 HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TR

weixin_48520816的博客 6万+

PX4实战指南:通过遥控器通道映射实现多舵机PWM精准控制

本文详细介绍了通过PX4飞控的AUX PWM接口实现遥控器通道映射控制多舵机的实战指南。内容包括硬件选型与连接、软件参数配置、通道映射方法以及常见问题排查,帮助开发者精准实现无人机舵机PWM控制,适用于云台、机械臂等扩展功能开发。

ee345的博客 304

win11本地部署openclaw实操第1集

OpenClaw 是一款开源、本地优先、可自托管的 AI 智能体(AI Agent)网关 / 自动化框架,核心是让 AI 从 “只聊天、给建议” 变成 “能在你电脑上真做事” 的数字助手。

weixin_44626085的博客 7126

HTTP 请求有以下几种常见的参数类型

这些数据可以包含多个字段,用于向服务器传递详细的资源信息。服务器会根据请求体中的数据来处理相应的业务逻辑,如创建、更新资源等。查询参数主要用于请求的过滤、排序、分页等操作,它们不会影响 URL 的路径结构,只是对资源的进一步描述。路径参数是嵌入在 URL 路径中的参数。它们是 URL 路径的一部分,用于标识特定的资源。路径参数通常是必填的,因为它们用于确定资源的唯一性。这是最为常见的参数类型之一。查询参数是附在 URL 后面的参数,用于向服务器传递一些额外的信息。头参数是包含在 HTTP 请求头中的参数。

xuukai的博客 730

彻底禁用有道云笔记自动更新:手动修改配置文件的终极方案

本文详细介绍了如何通过修改配置文件彻底禁用有道云笔记的自动更新功能,解决v7.2.8版本的兼容性问题。通过定位并修改`app-update.yml`文件,用户可以一劳永逸地阻止强制更新,保持稳定的v7.2.7版本。文章还提供了常见问题排查和进阶防护措施,确保操作的有效性和安全性。

weixin_29258297的博客 463

【HTTP请求】前端HTTP请求,常见get、post接口类型和body、query参数类型,常见传参组合、搭配的函数定义和实际接口(基于axios或request)

前端对接后端接口时,后端提供了接口类型和参数类型,可以参考本文章分类在.js文件里写http请求,包括常见get、post接口类型和body、query参数类型等,基于axios或request。

LXMoon_的博客 2020

华三模拟器实战:IPSec VPN穿越NAT的完整配置与调试(附常见问题排查)

本文详细解析了华三模拟器中IPSec VPN穿越NAT的完整配置与调试方法,包括基础环境准备、分步配置、ACL协调策略及高级故障排查。通过实战案例和关键参数解析,帮助网络工程师解决IPSec与NAT协同工作的典型问题,提升企业网络安全性。

weixin_33724046的博客 460

TCN+iTransformer时间序列预测实战:从风电功率预测到源码解析(附完整代码)

本文深入探讨了TCN与iTransformer融合模型在时间序列预测,特别是风电功率预测中的应用。通过解析iTransformer‘倒置’视角的创新架构与TCN强大的局部时序捕捉能力,文章提供了完整的融合方案设计、源码实现及实战调优经验,旨在构建更强大的下一代预测引擎。

weixin_29062671的博客 265

http常见请求头、响应头、content-type内容类型

http请求分为三部分:请求行,请求头, 请求体 请求头 报文头包含若干个属性 格式为“属性名:属性值”, 服务端据此获取客户端的基本信息 常见的请求头 Accept: 览器支持的 MIME 媒体类型, 比如 text/html,application/json,image/webp,/等 Accept-Encoding: 浏览器发给服务器,声明浏览器支持的编码类型,gzip, deflate Accept-Language: 客户端接受的语言格式,比如 zh-CN Connection:.

vincent_wen0766的博客 8809

LPDDR6 Efficiency Mode 技术探讨

LPDDR6 Efficiency Mode 技术探讨

zilan23的博客 1158

HTTP请求中,几种常见的Content-Type类型

HTTP请求中,几种常见的Content-Type类型 POST请求的消息主体放在entity body中,服务端根据请求头中的Content-Type字段来获取消息主体的编码方式,进而进行解析数据。 一、application/x-www-form-urlencoded 最常见的 POST 提交数据的方式,原生Form表单,如果不设置 enctype 属性,默认为application/x-www-form-urlencoded 方式提交数据。 首先,Content-Type被指定为 applic

欢迎 513

2025年7月5日全国青少年信息素养大赛Python编程初中组复赛真题+答案解析

2025年7月5日全国青少年信息素养大赛Python编程初中组复赛真题+答案解析

伶俐角少儿编程 464

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Http请求中,常见的 MIME 类型列表.

Http请求中,常见的 MIME 类型列表.

dear_Alice_moon的专栏 4718

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

HTTP请求常见的Content-Type类型

HTTP请求常见的Content-Type类型前言application/x-www-form-urlencodedmultipart/form-dataapplication/jsonapplication/octet-stream总结 前言 在现在ajax库已经完善的前提下,Content-Type有哪几种类型其实无所谓,按住application/json用就完了。但是,保不齐面试要考,所以还是全面了解一下为好。 application/x-www-form-urlencoded 最常见的 POST

qq_43478625的博客 1038

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

18天 - 常见的 HTTP 状态码有哪些?HTTP 请求包含哪些内容,请求头和请求体有哪些类型?HTTP 中 GET 和 POST 的区别是什么?

GET适合用于获取资源、传递少量数据、可缓存的场景。POST适合用于提交数据、传递大量数据、需要改变服务器状态的场景。选择使用 GET 还是 POST,需要根据具体需求和场景来决定,以确保数据的安全性和请求的效率。

shouji6175的博客 871

常见的http请求类型有哪些

这些请求类型在HTTP/1.1规范中定义,它们为客户端提供了不同的方式来与服务器上的资源进行交互。每种请求类型都有其特定的用途和语义,开发者应根据具体的应用场景选择合适的请求类型。HTTP请求类型,也称为HTTP方法,定义了客户端和服务器之间不同的交互方式。

2501_90506587的博客 276

HTTP请求头详解及常见类型

HTTP 请求头是客户端(如浏览器)向服务器发送请求时附加的元数据,用于传递请求的上下文信息。这些请求头帮助服务器理解客户端需求,优化响应行为(如压缩、缓存),并实现安全控制(如身份验证、跨域限制)。具体使用场景需根据实际需求选择。

牛马日常踩坑记录 615

如何处理常见的 HTTP 请求类型?HTTP代理要怎么选?

要处理常见的HTTP请求类型,首先我们要来了解HTTP请求具体有哪些?有什么特性?

xiaozhang888888的博客 1540

Java 处理常见的 HTTP 请求类型

5 种常见的请求类型: GET:请求从服务器获取特定资源。举个例子:GET /users(获取所有学生) POST:在服务器上创建一个新的资源。举个例子:POST /users(创建学生) PUT:更新服务器上的资源(客户端提供更新后的整个资源)。举个例子:PUT /users/12(更新编号为 12 的学生) DELETE:从服务器删除特定的资源。举个例子:DELETE /users/12(删除编号为 12 的学生) PATCH:更新服务器上的资源(客户端提供更改的属性,可以看做作是部...

qfchenjunbo的博客 1129

HTTP请求过程 常见协议 请求类型 状态码 websocket

HTTP(HyperText Transfer Protocol)超文本传输协议,是一种用于分布式、协作式和超媒体信息系统的应用层协议。 HTTP 是一个简单的请求-响应协议,是客户端和服务端之间请求和应答的标准,它通常运行在 TCP(传输控制协议)之上,由统一资源标识符(Uniform Resource Identifiers,URI 包含 URL 和 URN )来标识。 HTTP 通过使用浏览器、网络爬虫或者其它的工具,客户端发起一个HTTP请求到服务器上指定端口。它指定了客户端可能发送给服务器什么样的

cxuyuanLch的博客 4996

http请求常用类型及各类型常见传参形式

接口自动化测试基础,http请求常用类型及各类型常见传参形式,熟记这几种类型基本够用了~

桃子同学的博客 3233
上一篇: TCP、UDP、HTTP、SOCKET
下一篇: 位运算:按位与、按位或、按位异或、取反、左移、右移
JFS_Study
博客等级 码龄6年 363粉丝 359原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JFS_Study

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值