是否有正式限制可以使用哪些字符作为URL参数名称?
我一直在阅读RFC3986(“统一资源标识符(URI):通用语法”),但没有得出明确的结论。
我知道有实际限制,但如果我正确转义,是否真的禁止像这样做:
param with\funny<chars>=some_value
只要我正确转义它:
param%20with%1cfunny%3cchars%3e=some_value
是否有正式限制可以使用哪些字符作为URL参数名称?
我一直在阅读RFC3986(“统一资源标识符(URI):通用语法”),但没有得出明确的结论。
我知道有实际限制,但如果我正确转义,是否真的禁止像这样做:
param with\funny<chars>=some_value
只要我正确转义它:
param%20with%1cfunny%3cchars%3e=some_value
在URI规范中,转义参数名称没有任何限制。但是你使用的服务器端软件可能存在限制。如果您使用“自制”脚本来解释URI,则尤其如此。
您还应该阅读RFC2396。它似乎比RFC3986更具信息性。
/ ? : @ - . _ ~ ! $ & ' ( ) * + , ; =
。 - OfirDURLs有保留字符,但只要你进行转义(urlencode),就应该没问题。
根据所使用的框架,如果您尝试提交可疑值,则可能会出现异常。 ASP.NET具有内容过滤功能,如果您尝试提交“不安全”的数据(如脚本或HTML),则会抛出异常。 这是框架的一个特性,而不是URL语法强制执行的限制或规则。
&
作为分隔符只是一种约定;其他的也可以使用,例如曾经经常使用的,
和;
。此外,许多服务器引擎(如 PHP、Rails 等)支持嵌套参数,因此这将是一个带有查询的合法 URI:http://example.com/?a=b;c[1]=x;c[2]=y … 许多 Web 应用程序实际上使用此查询表示法来获取类似数组的数据的表单数据(选项、复选框等)。 - Konrad Rudolph2017-10-15.jpg
,当我使用showplot.htm?dt=2017-10-15
并使用Javascript行document.write('<img src="' + dt + '.jpg"/>')
时,我希望它能够显示出来 - 但它没有工作。它显示除了我尝试像这样连接的行之外的所有内容。这是因为它无法处理连字符吗? - SDsolar