我将URL存储在数据库中,我希望能够知道两个URL是否相同.
通常,末尾的尾部斜杠不会更改您从服务器获得的响应.(即http://www.google.com/与http://www.google.com相同)
我是否可以盲目地从任何URL中删除尾部斜杠,而不查看任何内容?
这样安全吗?
我的意思是"不看任何东西"就是我要删除斜杠:http://www.google.com/q? xxx = something &yyy = something
/
我知道Web服务器理论上可以根据需要返回完全不同的东西,而且我知道有时会在不使用斜杠的情况下转到URL,而是重定向到斜杠.我唯一的目的是确定两个URL是否相同.
这种方法安全吗?
它可能是安全的,你会得到相同的响应,有或没有尾随斜线(我不能保证这是真的),但它们肯定意味着不同的东西.考虑引用目录的URL,或者站点作为目录呈现的内容.使用URL
http://www.somesite.com/directory/
Run Code Online (Sandbox Code Playgroud)
...明确表示你要求一个目录.如果你砍掉斜杠:
http://www.somesite.com/directory
Run Code Online (Sandbox Code Playgroud)
...该网站将把它作为一个名为"目录"的文件的请求,让所有人感到困惑.它可能会将此解释为对目录的请求,但其含义并不相同,您可能无法得到您期望的结果.
有关详细信息,请参阅此文章.