Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
HTTP应用程序接受包含未编码特殊字符的查询字符串是否正确,而接受编码特殊字符的等效URL是否失败?_Url_Url Encoding - Fatal编程技术网

HTTP应用程序接受包含未编码特殊字符的查询字符串是否正确,而接受编码特殊字符的等效URL是否失败?

HTTP应用程序接受包含未编码特殊字符的查询字符串是否正确,而接受编码特殊字符的等效URL是否失败?,url,url-encoding,Url,Url Encoding,我遇到了这样一种情况:对URL的GET请求,其中查询字符串包含未编码的特殊字符,返回URL的200 OK,但在对特殊字符进行URL编码时返回400错误请求 此类URL的简化示例为:http://example.com/??foo/bar+foobar 请注意,双问号使得整个查询字符串是一个具有空值的单键值对 URL编码查询字符串键为我们提供:http://example.com/?%3Ffoo%2Fbar+foobar 包含编码字符的此URL的GET请求将返回400错误请求 处理这些url的应用

我遇到了这样一种情况:对URL的
GET
请求,其中查询字符串包含未编码的特殊字符,返回URL的
200 OK
,但在对特殊字符进行URL编码时返回
400错误请求

此类URL的简化示例为:
http://example.com/??foo/bar+foobar

请注意,双问号使得整个查询字符串是一个具有空值的单键值对

URL编码查询字符串键为我们提供:
http://example.com/?%3Ffoo%2Fbar+foobar

包含编码字符的此URL的
GET
请求将返回
400错误请求

处理这些url的应用程序(我不控制的第三方)似乎不喜欢查询字符串键包含url编码的非字母数字字符等价物

我假设
http://example.com/??foo/bar+foobar
http://example.com/?%3Ffoo%2Fbar+foobar
应该是等效的,因此可以互换。这可能是一个无效的假设

这两个URL是等效的,因此可以互换吗

是处理这些url的应用程序因为没有将这些url视为等效url而出错,还是我的应用程序因为应用url编码来查询字符串键和值而出错