一段时间以前,我在特定网站上遇到了问题。它提供了许多到其他站点的超链接。例如这样的URL之一是:
http://http//example.com/a9noaa.asp
这显然是不正确的(
http
出现两次)URL,因此,单击它时会出现页面错误,例如“找不到地址”。但是,当一个人复制链接位置并将其粘贴到浏览器的位置栏中时,它会正确加载该新页面。因此,这是在超链接中提及错误网址的问题。
是否可以使浏览器检查所访问URL的基本完整性,例如检查:
http
仅出现一次,还是在地址栏中键入URL并自动更正其中的错误?
可以使用任何客户端代码来使Internet浏览器实现此功能吗?可能吗?
还是已经有流行浏览器(Firefox,IE)的插件可以实现此目的?
谢谢。
-广告。
最佳答案
首先,http://http//example.com/a9noaa.asp
是有效的URI,以http
作为方案,第二个http
作为主机名,//example.com/a9noaa.asp
作为路径。因此,如果它不是无效的,则浏览器无需更正它。
现在,让我们看一下位置栏。如果输入的位置无效,大多数用户友好的浏览器都会进行一些错误纠正。纠正措施之一是在字符串前面加上http://
(如果不存在)。因此,您只需键入example.com
即可请求http://example.com
。
另一个更正措施是在输入的字符串前后添加http://www.
和.com
来完成未知的主机名。因此,您只需要键入example
,按回车即可请求http://www.example.com
。
但是,特别是在超链接中,位置栏之外的任何错误纠正都可能至关重要。例如:访客在访客簿条目中输入其网站URI,但是省略了http://
。现在在超链接中使用了该值,但是缺少的http://
没有前缀。因此,链接可能如下所示:
<a href="example.com">Website</a>
如果您点击这样的链接,该链接的相对URI将以当前文档的URI为基础解析为绝对URI。因此,链接可能会扩展为
http://some.example/guestbook/example.com
。谁没有经历过?但是更正浏览器中缺少的
http://
是致命的。因为身份验证者可能打算引用http://some.example/guestbook/example.com
而不是浏览器期望的http://example.com
。因此,请进行总结:在缺少某些内容(例如
http://
)的情况下,更正用户的位置栏输入。但是并不是在每个链接上都这样做。
关于url - 浏览器可以自动更正 “mangled url”吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1082104/