在查询字符串中使用逗号可能产生的副作用?

Possible side effect using comma in querystring?

我想在 URL 查询字符串值中使用 ,,但 it is reserved character。然而,我们现在可以看到许多电子商务网站提供大量逗号查询字符串 url。

我们在querystring中使用,时要考虑什么?是否应始终将其编码为 %2c

请注意,我的服务器端框架是 ASP.NET WebApi、dJango 和 Node.js。

URI 标准没有为 query component 定义任何定界符。所以none的保留字符在那里有着特殊的作用,它们都代表数据。

查询组件may contain以下字符:

  • a-z, A-Z
  • 0-9
  • / ? : @ ! $ & ' ( ) * + , ; = - . _ ~
  • percent-encoded characters

所以你可以在查询组件中使用,and/or%2C注意,%2C 不等同于规范化目的(因为 , 保留 集的一部分)。

以上都是关于通用 URI 语法的。 URI 方案可以为某些组件定义额外的分隔符(来自 reserved 集),但 http/https URI 方案规范不会为查询组件执行此操作。

一个可能的副作用(就像许多其他允许的字符一样)是 some auto-linking algorithms might not work correctly.

(您使用的应用程序当然可以在查询字符串中对 , 做一些特定的事情,但这对这个字符来说没什么特别的,它也可能发生在任何其他字符上。)