You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS API Gateway HTTP API是否允许查询字符串含未转义冒号?

AWS API Gateway HTTP API 查询字符串未转义冒号触发默认路由疑问

问题场景

我维护的API需要接收start和end两个查询参数,参数值要求是带冒号的ISO 8601格式日期时间字符串(比如YYYY-MM-DDTHH:MM:SSZ)。
用AWS API Gateway HTTP API作为前端网关时,发现一个问题:当请求里的start或end参数包含未转义的冒号时,请求会被API Gateway路由到$default路由;但把冒号URL编码成%3A后,就能正常匹配到预期的路由。

规范依据

根据RFC 3986的定义,查询字符串允许使用未转义的冒号:

query = *( pchar / "/" / "?" )
pchar = unreserved / pct-encoded / sub-delims / ":" / "@"

从规范来看,未转义冒号属于合法的查询字符串字符,不应被拦截或触发路由异常。

行业对比

像GitHub Issues API这类提供日期时间过滤功能的主流API,都支持在查询字符串中直接使用未转义的冒号,没有类似的路由问题。

文档排查情况

我查阅了AWS官方文档,但没找到明确说明HTTP API禁止查询字符串使用未转义冒号的内容:

  • HTTP API的已知问题页面里,没有提及查询字符串的禁用字符;
  • 只有REST API的相关说明中提到了部分字符限制(比如管道符|、大括号{}、分号;),但完全没提到冒号的限制。

疑问

想明确两个问题:

  1. AWS API Gateway HTTP API不允许查询字符串包含未转义冒号是否是有意设计的限制?
  2. 是否存在官方文档明确说明了这一限制?

内容的提问来源于stack exchange,提问作者grumbler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 01:47:13