Internet Explorer 9可以使用多长时间的URL?

And*_*nks 29 url internet-explorer internet-explorer-9

以前版本的Internet Explorer在超过2,083个字符的Web地址上出现错误(请参阅http://support.microsoft.com/kb/208427).同时,Firefox,Opera和Safari可以处理至少80,000个.

版本9带来了许多改进.URL长度是其中之一吗?

Far*_*ray 18

不是最准确的答案,但它看起来像地址栏中的2083个字符和链接后的5165个字符.

(不是官方的,只是将带有41,000个字符的URL插入到测试HTM文件中,并使用Javascript查询URL长度.)

更新:

要重现测试,请创建一个包含HREF属性长度为6000个字符的锚元素的HTML文件.在浏览器中打开文件,然后单击链接.然后弹出控制台并检查window.location.href.length.

今天在IE9中执行此过程后,它将长度报告为5165个字符.如果我通过地址栏手动加载相同的URL,它会报告2083个字符.

为了它的价值,IE似乎在发送请求之前截断了URL.如果我在锚点的HREF属性中放置了24,000个字符的URL,IE将跟随该链接,但结果页面报告的URL长度为5165个字符.在Chrome中使用相同的链接会导致我的测试服务器发出HTTP 414响应.


fun*_*487 9

我在网络浏览器9的网址中获得了5120个字符.

绝不是一个明确的测试,但下面演示了一个快速检查锚标记中href属性的url长度.

<html>
    <head>
        <script type="text/javascript">
            function init() {
                var anchor = document.getElementById('anc');
                var valid = true;
                var url = 'http://google.com/?search=';
                var count = url.length;

                while(valid) {
                    url = url + '1';
                    anchor.href = url;
                    count++;
                    valid = anchor.href == url;

                    if(count > 100000) {
                        alert('Test reached 100,000, stopping...');
                        valid = false;
                    }
                }
                alert('Complete, count = ' + count);
            }
        </script>
    </head>
    <body onload="init()">
        <a id="anc" href="http://google.com/">Test</a>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

  • 听起来似乎有道理 - IE9发行说明包括以下内容:"IE9改进了对"Bookmarklets"的支持 - -URL长度限制被放宽了." 不幸的是没有具体细节.RE您的测试 - 页内HREF的最大长度不一定与浏览器将传输的URL的最大长度相同(例如,通过地址栏).需要通过提交和检查服务器日志进行验证,以查看截断发生的时间点(或错误?).任何人都有IE9的权威信息? (2认同)