新 HTTP 请求方法 QUERY 填补 GET 与 POST 空白,广泛推行尚需时日
新 HTTP 请求方法 QUERY 填补 GET 与 POST 空白推行尚需时日新方法 QUERYRFC 10008由互联网工程任务组IETF发布它填补了 GET 和 POST 之间的空白将 POST 的请求体与 GET 的安全性和幂等性相结合。来源Rock1997当 HTTP 请求过长或过于复杂无法使用 GET 方法在 URI 中编码时开发者长期以来一直采用 POST 方法作为变通方案。然而这可能会引发问题。GET 请求被定义为安全且幂等的但 POST 不一定具备这些特性。而 QUERY 融合了两者的优点兼具二者功能。IETF 标准文档指出安全方法被定义为 本质上 只读的方法即 客户端在对目标资源应用安全方法时不会请求也不期望源服务器发生任何状态变化。同样合理使用安全方法也不会对源服务器造成任何损害、财产损失或异常负担。而当一个请求具有幂等性时无论重试多少次使用该方法的多个相同请求对服务器产生的预期效果与单个请求的效果相同。POST 请求并不总是满足这些标准但 QUERY 请求可以。与 POST 一样QUERY 操作的输入是作为请求的内容传递的而不像 GET 那样作为请求 URI 的一部分。与 POST 不同的是QUERY 允许进行缓存和自动重试等操作这正是因为它具有安全性和幂等性。伪装的只读请求灰狗研究公司首席分析师 Sanchit Vir Gogia 表示RFC 10008 意义重大因为它为网络上常用的变通方案赋予了协议身份。二十年来开发者一直将只读请求伪装成 POST 命令QUERY 在请求体中携带请求信息同时声明可以安全地重试和缓存。其重要性在于机器可读的意图重试引擎、缓存和自主代理会根据方法的声明来执行操作而非依据文档的意图。在自动化环境下语义就变成了策略。Gogia 解释道当请求能够轻松地适应 URI 时GET 方法可以正常工作但一旦开发者需要深度过滤、长标识符集或整个查询文档时它就无法正常工作了。此外URI 还会通过历史记录、书签和访问日志暴露信息将每个输入组合编码到地址中会悄然使每个排列组合成为一个独特的资源。Gogia 还说POST 解决了大小问题但未能兑现承诺。它的通用语义允许创建、修改和产生副作用因此没有缓存、重试引擎或网关有权假设某个给定的 POST 请求是可重复或可复用的。虽然 QUERY 解决了长期以来使用 POST 进行搜索的问题但这种新方法也存在一些需要注意的地方。软件工程师 Rickvian Aldi 在一篇博客文章中指出谨慎来看它解决了语义问题但并非解决了所有部署工作。前端代码仍然需要稳定的查询键服务器仍然需要验证和缓存控制头基础设施仍然需要支持这种新方法。新标准的推行尚需时日推行新标准往往需要时间因为标准的采用通常较为缓慢。在 QUERY 被广泛使用之前其他标准如 HTML 表单标准需要进行更新。网络超文本应用技术工作组等组织已经在开展这项工作。开源开发者 Daniele Teti 在一篇博客文章中表示将 RFC 作为提议标准发布并不意味着整个生态系统第二天就会支持它。这只是 IETF 标准制定过程的第一步规范已经稳定并可以实施但浏览器、服务器、代理、CDN 和客户端库实际采用它还需要时间。目前主流浏览器都不支持 QUERY 方法不过在服务器端Node.js 和 Go 支持该方法。Gogia 指出RFC 10008 的作者来自 Cloudflare、Akamai 和 greenbytes 的工程师也意识到了这一点。Gogia 说标准本身就设计了回退机制。存在一个 位置桥接 机制当 QUERY 遇到不支持它的基础设施时就可以退回到 GET 方法。文档中也提到客户端可以在后续请求中切换到 GET 方法以简化处理。从这个角度看等效资源与其说是一种理论上的妥协不如说是一种应急方案而这一特性最有可能帮助该方法度过发展初期的难关。网络开发、开发方法、软件开发

相关新闻

柔性作业车间MK算例数据解析:从文本行到调度模型的实战指南

柔性作业车间MK算例数据解析:从文本行到调度模型的实战指南

1. MK算例数据解析基础 柔性作业车间调度问题(FJSP)是制造领域经典难题,而MK算例则是该领域广泛使用的基准测试数据集。我第一次接触MK01数据时,那串密密麻麻的数字简直像天书一样。但经过反复研究,发现这些数字背后隐…

2026/7/15 9:17:18阅读更多 →
从CSV到交互式地图:Nanocube数据建模与.map文件配置终极教程

从CSV到交互式地图:Nanocube数据建模与.map文件配置终极教程

从CSV到交互式地图:Nanocube数据建模与.map文件配置终极教程 【免费下载链接】nanocube 项目地址: https://gitcode.com/gh_mirrors/na/nanocube 想要将海量CSV数据快速转换为交互式地图可视化吗?Nanocube数据建模正是您需要的解决方案&#xff…

2026/7/15 9:17:18阅读更多 →
IDL实战:从零实现遥感影像的极大似然监督分类

IDL实战:从零实现遥感影像的极大似然监督分类

1. 遥感影像分类基础入门第一次接触遥感影像分类时,我盯着屏幕上五彩斑斓的卫星图完全无从下手。后来才明白,这就像教计算机玩"找不同"游戏——只不过我们要找的是地表上的农田、森林、水域等地物类型。极大似然监督分类就是其中最经典的"…

2026/7/15 9:12:18阅读更多 →
耳夹式耳机实测:300元到1200元,价格差异到底值不值?

耳夹式耳机实测:300元到1200元,价格差异到底值不值?

最近在耳机市场,耳夹式耳机突然火了起来。从几十块的入门款到上千元的高端型号,价格跨度之大让人眼花缭乱。作为一个长期被传统入耳式耳机“折磨”的用户——戴久了耳朵疼、运动时容易掉、通勤时隔绝环境音不安全——我对这种新型耳机充满了期待。但问题…

2026/7/15 10:32:36阅读更多 →
终极解决方案:5步诊断与修复YimMenu GTA V增强工具的3类核心技术故障

终极解决方案:5步诊断与修复YimMenu GTA V增强工具的3类核心技术故障

终极解决方案:5步诊断与修复YimMenu GTA V增强工具的3类核心技术故障 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Tr…

2026/7/15 10:32:36阅读更多 →
经典算法实例:旋转字符串(一)

经典算法实例:旋转字符串(一)

我们先来看题目描述:给定两个字符串, s 和 goal 。如果在若干次旋转操作之后,s 能变成 goal ,那么返回 true 。s 的 旋转操作 就是将 s 最左边的字符移动到最右边。例如, 若 s abcde,在旋转一次之后结果就是 bcdea 。示例 1&…

2026/7/15 10:32:36阅读更多 →
eval5核心API详解:Interpreter类与evaluate方法的终极使用指南

eval5核心API详解:Interpreter类与evaluate方法的终极使用指南

eval5核心API详解:Interpreter类与evaluate方法的终极使用指南 【免费下载链接】eval5 A JavaScript interpreter written in TypeScript - Support ES5 项目地址: https://gitcode.com/gh_mirrors/ev/eval5 eval5是一个基于TypeScript编写的JavaScript解释器…

2026/7/15 10:32:36阅读更多 →
gibMacOS终极指南:从Apple官方服务器直接下载macOS组件的专业工具

gibMacOS终极指南:从Apple官方服务器直接下载macOS组件的专业工具

gibMacOS终极指南:从Apple官方服务器直接下载macOS组件的专业工具 【免费下载链接】gibMacOS Py2/py3 script that can download macOS components direct from Apple 项目地址: https://gitcode.com/gh_mirrors/gi/gibMacOS gibMacOS是一款专业的跨平台Pyth…

2026/7/15 10:32:36阅读更多 →
用Groovy构建桌面应用:awesome-groovy推荐的Griffon与GroovyFX框架

用Groovy构建桌面应用:awesome-groovy推荐的Griffon与GroovyFX框架

用Groovy构建桌面应用:awesome-groovy推荐的Griffon与GroovyFX框架 【免费下载链接】awesome-groovy A curated list of awesome groovy libraries, frameworks and resources 项目地址: https://gitcode.com/gh_mirrors/aw/awesome-groovy Groovy作为JVM平台…

2026/7/15 10:27:32阅读更多 →
VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异当你在VSCode中启动一个新的TypeScript项目时,第一个技术决策往往从安装方式开始。这个看似简单的选择——全局安装还是项目本地安装——实际上会深刻影响你的开发流程、团队协作和…

2026/7/15 6:42:19阅读更多 →
智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 智慧树刷课插件是一款专为智慧树在线教育平台设计的Chrome浏…

2026/7/15 6:12:45阅读更多 →
Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在GOG或Epic Games Store购买了心仪的游戏…

2026/7/14 6:17:41阅读更多 →
AI框架决定企业AI能走多远

AI框架决定企业AI能走多远

企业AI建设的第一性原理 企业搞AI,最关键的决定是什么?不是选哪家大模型,不是先做哪个场景,不是招多少AI人才——而是选哪个AI开发框架。 为什么?因为框架决定了企业AI能力的"天花板"。选对了框架&#xff0…

2026/7/15 0:01:30阅读更多 →
Java企业为什么需要AI框架

Java企业为什么需要AI框架

Java企业在AI时代的尴尬处境 Java是全球企业级应用开发的主流语言——全球超过一半的企业系统跑在Java上。但在AI浪潮面前,很多Java企业感到尴尬:大模型的接口是各种语言的,AI开发社区以其他语言为主流,似乎Java在AI时代"掉队…

2026/7/15 0:01:30阅读更多 →
CC3230x嵌入式开发实战:SD主机、定时器与低功耗模式深度解析

CC3230x嵌入式开发实战:SD主机、定时器与低功耗模式深度解析

1. 项目概述:为什么需要关注CC3230x的SD主机、定时器与低功耗?在物联网和嵌入式设备开发领域,我们常常面临一个核心矛盾:设备需要具备强大的连接能力、可靠的数据存储和实时控制功能,同时又必须严格控制功耗以延长电池…

2026/7/15 0:01:30阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/14 15:07:30阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/15 8:52:38阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/14 2:42:17阅读更多 →