小编典典

如果 url 查询参数没有值,它是否有效?

all

像这样的网址http://example.com/foo?bar有效吗?

我正在寻找指向某种官方说法的链接。一个简单的是/否答案或轶事证据不会削减它。


阅读 103

收藏
2022-07-31

共1个答案

小编典典

  • 对 URI RFC 有效
  • 您的服务器端框架/代码可能可以接受

URI RFC不要求查询字符串的格式。尽管人们认识到查询字符串通常会携带名称-
值对,但这不是必需的(例如,它通常会包含另一个 URI)。

3.4. 询问

查询组件包含非分层数据,这些数据与路径组件(第 3.3 节)中的数据一起用于标识 URI 方案和命名权限(如果有)范围内的资源。…

…但是,由于查询组件通常用于以“key=value”对的形式携带识别信息,并且一个常用值是对另一个 URI 的引用,…

HTML规定,通过 HTTP GET 提交的表单应将表单值编码为“?key1=value1&key2=value2…”形式的名称-
值对(正确编码)。查询字符串的解析取决于服务器端代码(例如 Java servlet 引擎)。

您无法确定您使用的服务器端框架(如果有),但您的服务器端框架可能会假设查询字符串将始终位于名称-
值对中,并且它可能会阻塞在不是以这种格式(例如?bar)。如果它是您自己的自定义代码解析查询字符串,您只需确保处理该查询字符串格式。如果它是一个框架,您将需要查阅您的文档或简单地对其进行测试以了解它是如何处理的。

2022-07-31