有没有一种方法可以获取以句点段结尾的URL



我的目标是获取一个以句点结尾的URL,因此一个以文字句点结束的URL:.

示例:

我预计下面的fetch调用会在站点的基本URI上产生HTTP GET请求,路径为/api/users/.(注意末尾的文字点(

await fetch("/api/users/.")

相反,它会导致请求路径<base URI>/api/users/(注意缺少点(

RFC 3986的这一节描述了删除点段的行为:https://datatracker.ietf.org/doc/html/rfc3986#section-5.2.4

现在,我尝试用%2e对点进行URI转义,给出了以下请求路径:/api/users/%2e

不幸的是,同样的行为也发生了,在Firefox和Chrome上进行了测试。

我很困惑如何使用浏览器的fetchAPI在基于浏览器的环境中实现这一点。

我知道使用cURL就像指定一个额外的参数一样简单(否则使用cURL也会发生同样的行为(:

curl --path-as-is "http://localhost:8080/api/users/."

然而,我还没有发现fetch有任何这样的配置可能性。

使用%2e对点段进行编码的解决方法确实解决了这个问题。

混乱的来源是:服务器可能决定将<url>/.重定向到<url>,因此可能会在网络面板上检查302 Found,其中提供了不同的链接作为标头。

一开始我没有注意到这种行为,再加上其他一些问题,我很困惑,认为解决方法不起作用。

最新更新