Какова максимальная длина URL-адреса в разных браузерах?

Какова максимальная длина URL-адреса в разных браузерах? Отличается ли он в разных браузерах?

Является ли максимальная длина URL частью спецификации HTTP?


person Sander Versluys    schedule 06.01.2009    source источник
comment
FWIW, для пользователей Windows, пути к серверу, превышающие 250 символов могут вызвать проблемы при построении URL-адресов, например, см. HttpContext.Current.Server.MapPath не работает для длинных имен файлов в forum.asp .net. Итог: если одно ограничение вас не устраивает, другое может.   -  person gerryLowry    schedule 03.08.2012
comment
@gerryLowry: у инструментов Windows уже есть проблемы с компиляцией даже с длинными именами файлов, поэтому обычно это не проблема, если вы используете MapPath только для фактических имен файлов. Можно надеяться, что сверхдлинные имена URL-адресов не связаны с сверхдлинными путями к файлам, поскольку последние приводят к беспорядку, непригодному для использования, тогда как первый может быть просто разработчиком, злоупотребляющим запросами на получение там, где он должен использовать почтовые запросы.   -  person Brian    schedule 18.02.2013
comment
Из support.microsoft.com/kb/208427 Максимальная длина URL-адреса составляет 2083 символы в Internet Explorer   -  person gavenkoa    schedule 27.02.2013
comment
Могу я спросить зачем вам это нужно было знать? Т.е. каков вариант использования длинного URL-адреса?   -  person o0'.    schedule 08.04.2013
comment
Связанный вопрос ServerFault о Tomcat: serverfault .com / questions / 56691 /.   -  person Raedwald    schedule 12.09.2013
comment
Связанный вопрос ServerFault о Jetty: serverfault.com/questions/136249/   -  person Raedwald    schedule 12.09.2013
comment
@Lohoris: если в форме используется get, а не post, то добавление в закладки страницы, на которую попала заполненная форма, будет фиксировать введенную информацию. В некоторых случаях это может быть плохо, но в других случаях может быть полезно. Однако для того, чтобы это работало, браузер должен иметь возможность обрабатывать URL-адрес, содержащий всю информацию.   -  person supercat    schedule 11.12.2013
comment
@Lohoris Когда мы пишем страницы для создания отчетов, мы использовали форму критериев. В некоторых отчетах полезно иметь возможность отправить URL-адрес по электронной почте кому-то со встроенными критериями. В зависимости от отчета мы иногда вынуждены использовать post, или критерии усекаются. Еще один вариант использования.   -  person buzzsawddog    schedule 06.02.2014
comment
Если ваш ввод должен быть в параметрах URL-адреса, вы можете захотеть это как можно дольше. Tableau позволяет встраивать веб-страницы в информационные панели и делать URL-адрес динамическим в зависимости от того, что пользователь нажимает. Я мог бы передать 100 страниц текста в качестве параметра URL-адреса, чтобы провести анализ тональности, а затем вернуть результат. Эти сотни страниц текста будут меняться в зависимости от того, на какую книгу нажимает пользователь.   -  person ThomasRones    schedule 29.09.2017
comment
@ o0 '. Параметры. Особенно определяемые пользователем.   -  person Jacob Ford    schedule 14.09.2019
comment
@ o0 '. Хороший пример длинного URL - это когда я прошу Clickatell отправить сообщение. Я должен включить само сообщение в формате URL (например, пробел% 20), а также другие параметры.   -  person Philip Kearns    schedule 06.03.2020


Ответы (17)


Краткий ответ - де-факто ограничение в 2000 символов

Если вы сохраните URL-адреса менее 2000 символов, они будут работать практически в любой комбинации клиентского и серверного программного обеспечения.

Если вы ориентируетесь на определенные браузеры, см. Ниже более подробную информацию о конкретных ограничениях.

Более длинный ответ - во-первых, стандарты ...

В разделе 3.2.1 RFC 2616 (протокол передачи гипертекста HTTP / 1.1) говорится

Протокол HTTP не устанавливает априорных ограничений на длину URI. Серверы ДОЛЖНЫ иметь возможность обрабатывать URI любого ресурса, который они обслуживают, и ДОЛЖНЫ иметь возможность обрабатывать URI неограниченной длины, если они предоставляют формы на основе GET, которые могут генерировать такие URI. Серверу СЛЕДУЕТ возвращать статус 414 (Request-URI Too Long), если URI длиннее, чем сервер может обработать (см. Раздел 10.4.15).

Этот RFC был отменен RFC7230, который является обновлением протокола HTTP / 1.1 спецификация. Он содержит похожие формулировки, но также предлагает следующее:

На практике встречаются различные специальные ограничения на длину строки запроса. РЕКОМЕНДУЕТСЯ, чтобы все отправители и получатели HTTP поддерживали как минимум длину строки запроса 8000 октетов.

... и реальность

Так говорят стандарты. Для реальности была статья на boutell.com (ссылка ведет к резервной копии Интернет-архива), в котором обсуждалось, какие индивидуальные реализации браузера и сервера будут поддерживать. Краткое изложение:

Чрезвычайно длинные URL-адреса обычно являются ошибкой. URL-адреса, длина которых превышает 2000 символов, не будут работать в самых популярных веб-браузерах. Не используйте их, если вы планируете, что ваш сайт будет работать для большинства пользователей Интернета.

(Примечание: это цитата из статьи, написанной в 2006, но в 2015 году сокращение использования IE означает, что более длинные URL-адреса действительно работают для большинства. Однако IE по-прежнему имеет ограничение ...)

Ограничения Internet Explorer ...

Максимальная длина URL-адреса IE8 составляет 2083 символа, и кажется, что IE9 имеет аналогичное ограничение.

Я тестировал IE10, и адресная строка принимает только 2083 символа. Вы можете щелкнуть по более длинному URL-адресу, но в адресной строке по-прежнему будет отображаться только 2083 символа этой ссылки.

В блоге IE Internals есть хорошая запись что входит в некоторую предысторию этого.

Существуют смешанные отчеты, в которых IE11 поддерживает более длинные URL-адреса - см. Комментарии ниже. Учитывая, что некоторые люди сообщают о проблемах, общий совет остается в силе.

Поисковые системы любят URL ‹2048 символов ...

Имейте в виду, что протокол карт сайта, который позволяет сайту информировать поисковые системы о доступных страницах, имеет ограничение в 2048 символов в URL-адресе. Если вы собираетесь использовать карты сайта, для вас определен лимит! (см. ответ Калина-Андрея Бурлойа ниже)

Также есть некоторые исследования 2010 года по максимальная длина URL, по которому выполняется поиск ch будут сканировать и индексировать. Они обнаружили, что ограничение составляет 2047 символов, что похоже на спецификацию протокола карты сайта. Однако они также обнаружили, что инструмент Google SERP не справляется с URL-адресами длиной более 1855 символов.

У CDN есть ограничения

CDN также накладывают ограничения на длину URI и возвращают 414 Too long request при достижении этих ограничений, например:

(кредит timrs2998 за предоставление этой информации в комментариях)

Дополнительный обзор браузера

Я протестировал следующее на сервере Apache 2.4, настроенном с очень большим LimitRequestLine и LimitRequestFieldSize.

Browser     Address bar   document.location
                          or anchor tag
------------------------------------------
Chrome          32779           >64k
Android          8192           >64k
Firefox          >64k           >64k
Safari           >64k           >64k
IE11             2047           5120
Edge 16          2047          10240

См. Также этот ответ от Матаса Вайткявичюса ниже.

Эта информация актуальна?

Это популярный вопрос, и, поскольку первоначальному исследованию уже около 14 лет, я постараюсь поддерживать его в актуальном состоянии: по состоянию на сентябрь 2020 г. совет все еще в силе. Несмотря на то, что IE11 может принимать более длинные URL-адреса, повсеместное распространение более старых установок IE плюс ограничения поисковой системы означают, что использование менее 2000 символов является лучшей общей политикой.

person Paul Dixon    schedule 06.01.2009
comment
Обратите внимание, что IE11 не будет добавлять в закладки URL-адреса длиной более 260 символов. Я не уверен, есть ли у Edge такое же ограничение. - person Brian; 14.03.2016
comment
Сегодня IE11 сокращает мой URL до 2048 символов. - person AntiCZ; 13.06.2016
comment
в Chrome в 2016 году я смог открыть URL-адрес с 260300 символами ascii, используя команду osx open из простого скрипта, и мог подтвердить, что все символы были переданы на сервер. URL-адрес в браузере усекается до 32791 символа, завершается ... (% E2% 80% A6% E2% 80% A6) - person Rob Dawson; 27.09.2016
comment
Я заметил, что длинные URL-адреса не работают в веб-приложении, над которым я работаю. Все еще отлаживается, но я знаю, что он разбивается на 4000 символов, поэтому я предполагаю, что Edge 38 имеет те же ограничения, что и IE11 2048? - person JP DeVries; 01.10.2016
comment
@Paul Dixon Приятно видеть людей, которые готовы сделать все возможное, отвечая на вопросы на этом сайте. Очевидно, люди выражают свою благодарность, учитывая, что текущее количество голосов составляет 3734, но я хотел сказать спасибо! :) - person drognisep; 25.09.2017
comment
Включены ли параметры GET в это ограничение на 2000 URL? - person cytsunny; 06.10.2017
comment
@cytsunny да, они есть - person Paul Dixon; 06.10.2017
comment
Верно ли это для современных браузеров? stackoverflow.com/questions/46629900 / - person Lokesh Agrawal; 09.10.2017
comment
Включен ли лимит длины фрагментов URL? IOW, этот ответ говорит только о части URL-адреса перед '#' или говорит об общей длине URL-адреса (включая часть перед '#', '#' и часть после ' # ')? - person kaartic; 01.01.2018
comment
По состоянию на январь 2018 года IE 11 сокращает URL-адреса, замененные на window.location, до 4095 символов. - person Roman Bekkiev; 18.01.2018
comment
IE11: максимальная длина для привязки: 5120 байт, максимальная длина для адресной строки: 2047, максимальная длина для копирования в адресную строку: 2083 - person Stefan Steiger; 21.03.2018
comment
пробел (% 20) считается одним символом или 3 символами? - person Jun711; 28.05.2018
comment
Действительно популярный ответ ... Google полагает, что этот пост является авторитетным, основываясь на фрагменте, предоставленном перед результатами поиска при поиске максимальная длина URL. :) - person ashleedawg; 08.09.2018
comment
Гуглер Хон Мюллер сказал: Насколько мне известно, теоретического ограничения длины нет, но мы рекомендуем, чтобы URL-адреса были короче 2000 символов, чтобы все было управляемым. здесь productforums.google.com/forum/#!topic/webmasters / dPxWiO-cRnM / - person Ivan Kutas; 27.11.2018
comment
Похоже, что IE11 и MS Edge 42 (Win10) допускают большие URL-адреса, если вы перенаправляете на них .... Вы не можете редактировать их в браузере (если вы введете адресную строку, это ограничит вас), но вы можете перенаправить на большие URL-адреса (не менее 3,5k) - person Brad Parks; 23.01.2019
comment
Кроме того, если вы хотите проверить URL-адрес, общая длина которого составляет 4032 символа, с помощью перенаправления, просто перейдите на tinyurl.com/ezbigurl11, и он перенаправит вас на httpbin.org с дампом запроса, который только что был отправлен на этот сервер. - person Brad Parks; 24.01.2019
comment
Я заметил, что в Chrome mailto: ссылки длиной более 2048 символов не работают. В Firefox я, кажется, могу подняться до 32 КБ. - person Charles T; 17.06.2019
comment
По-прежнему действует по состоянию на сентябрь 2019 года. Просто достигните ограничения IE / Edge на особенно пикантном URL-адресе запроса Splunk. - person hiergiltdiestfu; 17.09.2019
comment
Это действительно хороший ответ, и я хотел бы добавить к нему. Даже если вы забудете про Internet Explorer и карты сайта, CDN также накладывают ограничения на длину URI. Большинство сетей CDN поддерживают минимально необходимую длину строки запроса в 8000 октетов и при достижении возвращают 414 Слишком длинный запрос. Быстро 8 КБ, CloudFront: 8192 байта, Cloudflare 32 КБ - person timrs2998; 02.01.2020
comment
Спасибо @ timrs2998, я добавил эту ссылку в текст ответа - person Paul Dixon; 06.01.2020
comment
Мой старый мобильный провайдер использовал какой-то кеш-шлюз MITM, который мешал мне получить доступ к определенным веб-сайтам, потому что URL-адрес стал слишком длинным. Он явно не был даже близко к 2000 чартерам и отлично работал с другими подключениями к Интернету. Так что это тоже ... - person PixelSupreme; 07.02.2020
comment
Упоминать любую версию IE в обновлении 2020 ... странно. - person Petr Nagy; 19.02.2020
comment
А как насчет HTTP / 2? Добавляет ли предстоящий HTTP / 3 что-то новое в эту тему? - person Stephan; 25.05.2020
comment
@PaulDixon С января 2019 года Microsoft переключила свой механизм рендеринга на Blink. Может ли это потребовать еще одной проверки ограничений? Edge теперь в версии 83 - person hitautodestruct; 25.05.2020
comment
Вы вернулись несколько дней назад, чтобы обновить ответ? Потрясающий материал - person Marvin; 02.09.2020
comment
@ Марвин, да! Я удивлен, что ему сейчас 11 лет - я думаю, что пришло время просмотреть всю представленную информацию, но я считаю, что основной совет все еще в силе. - person Paul Dixon; 03.09.2020
comment
Престижность до сих пор обновляет его в сентябре 2020 года! - person corroded; 17.09.2020
comment
@PetrNagy К сожалению, в корпоративных средах IE11 по-прежнему встречается довольно часто. - person jcaron; 26.11.2020
comment
Относится ли это только к URL-адресам, посещенным напрямую (например, адресной строке), или это также относится к XMLHttpRequests? (и получить?) - person Aaron Cicali; 21.05.2021

Самые длинные URL-адреса, с которыми я столкнулся, - это URL-адреса данных

Пример URL изображения из результатов поиска изображений Google (11747 символов)

data:image/jpeg;base64,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
person CyberJunkie    schedule 18.07.2012
comment
Он говорит о том, что jpeg в кодировке base64 технически является URL-адресом, потому что он указан как data: *. Хотя он прав, заявляя, что это действительный URL-адрес, я не думаю, что вопрос задавался именно этим. - person Fitblip; 08.01.2013
comment
... или просто вставьте его в адресную строку. - person Gras Double; 27.06.2013
comment
Поскольку URL-адрес данных содержит данные протокола: и идентификатор, это все, что вам нужно для НАЙТИ этого файла (даже если файловая система - это пространство для всех возможных файлов). Следовательно, это URL-адрес, который также является URI. (Но точно не URL) - person MickLH; 24.05.2014
comment
@DoubleGras Google Chrome для Mac не позволяет мне вставлять такой длинный URL-адрес в адресную строку - person Max Nanasy; 28.05.2014
comment
Спасибо за информацию. Я только что успешно протестировал его в Firefox и Chrome, Windows. Так что ... это просто зависит;) - person Gras Double; 28.05.2014
comment
Хм. Это можно считать ответом, но кажется довольно очевидным, что OP спрашивал об URL-адресах с использованием схемы http или https ... - person SamB; 15.01.2015
comment
Снимок экрана веб-страницы расширения Chrome предварительно просматривает снимок экрана как URI данных. Страница высотой 32708 пикселей (1263 ширины) превратилась в PNG-файл размером 8 749 309 байт (8,34 МиБ). В base64 это 11 665 748 символов. Добавьте data:image/png;base64,, и вы получите URI данных длиной 11 665 770 символов. - person Cole Johnson; 03.03.2015
comment
Я даже не могу вставить это в текущий Chrome. - person The Onin; 14.12.2016
comment
Несколько версий Firefox назад я создал изображение URI размером 2 МБ. Вы могли отобразить его на странице, но вставка его в поле адреса \ открытие в новой вкладке приводило к сбою при каждой попытке. - person jahu; 06.06.2017
comment
@Nino Škopac Он работает в Chrome версии 76.0.3809.87 (официальная сборка) (64-бит). Если вставить его в адресную строку, появится изображение домашней страницы Google. - person George; 31.07.2019
comment
Аплодисменты. Актуальна ли эта информация? раздел! Я никогда раньше не видел этого, но это очень важно в быстро меняющихся технологиях. - person Brian Risk; 06.05.2020
comment
2021.02: URL-адрес изображения в этом ответе действительно работает в Chrome 88 на Mac - person Larry K; 25.02.2021
comment
Это .... Сергей и Ларри? - person rgshenoy; 06.04.2021

Я написал этот тест, который продолжает добавлять 'a' к параметру, пока браузер не выйдет из строя.

Часть C #:

[AcceptVerbs(HttpVerbs.Get)]
public ActionResult ParamTest(string x)
{
    ViewBag.TestLength = 0;
    if (!string.IsNullOrEmpty(x))
    {
        System.IO.File.WriteAllLines("c:/result.txt",
                       new[] {Request.UserAgent, x.Length.ToString()});
        ViewBag.TestLength = x.Length + 1;
    }

    return View();
}

Просмотр:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

<script type="text/javascript">
    $(function() {
        var text = "a";
        for (var i = 0; i < parseInt(@ViewBag.TestLength)-1; i++) {
            text += "a";
        }

        document.location.href = "http://localhost:50766/Home/ParamTest?x=" + text;
    });
</script>

ЧАСТЬ 1

В Chrome я получил:

Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36
2046

Затем он взорвался:

Ошибка HTTP 404.15 - не найдено. Модуль фильтрации запросов настроен на отклонение запроса, в котором строка запроса слишком длинная.

То же самое в Internet Explorer 8 и Firefox

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)
2046

Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0
2046

ЧАСТЬ 2

Я перешел в простой режим и добавил дополнительные ограничения в IISExpress applicationhost.config и web.config настройку maxQueryStringLength="32768".

Chrome failed with message 'Bad Request - Request Too Long

HTTP Error 400. The size of the request headers is too long.

после 7744 знаков.

Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36
7744

ЧАСТЬ 3

Добавлено

<headerLimits>
    <add header="Content-type" sizeLimit="32768" />
</headerLimits>

что совсем не помогло. Я наконец решил использовать скрипач, чтобы удалить реферер из заголовка.

static function OnBeforeRequest(oSession: Session) {
    if (oSession.url.Contains("localhost:50766")) {
        oSession.RequestHeaders.Remove("Referer");
    }

Что хорошо сработало.

Chrome: до 15613 символов. (Я думаю, это ограничение на 16 КБ для IIS)

И это снова не удалось:

<BODY><h2>Bad Request - Request Too Long</h2>
<hr><p>HTTP Error 400. The size of the request headers is too long.</p>


Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36
15613

Firefox:

Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0
15708

Internet Explorer 8 завершился с ошибкой iexplore.exe.

Введите описание изображения здесь

После 2505 г.

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)
2505

Эмулятор Android

Mozilla/5.0 (Linux; Android 5.1; Android SDK built for x86 Build/LKY45) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/39.0.0.0 Mobile Safari/537.36
7377

Internet Explorer 11

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)
4043

Internet Explorer 10

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)
4043

Internet Explorer 9

Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
4043
person Matas Vaitkevicius    schedule 06.07.2015
comment
Так что, по сути, мое предположение о 512 символах в значительной степени неверно ^ _ ^ Спасибо за тест. Меня больше не волнует длина параметра запроса .. - person Gogol; 17.09.2015
comment
Это должен быть принятый ответ ... первый на самом деле не обеспечивает жестких ограничений для каждого браузера, что и задают вопросы. - person GrayedFox; 08.04.2016
comment
Возможно, стоит также изучить Safari. Safari - единственный браузер, который не поддерживает загрузки, создаваемые клиентом. Обходные пути: a) откройте URI BLOB (короткий, временный URI, который указывает на Blob в памяти) в новом окне, b) откройте URI данных в кодировке base-64 в новом окне (может быть очень длинным, но поддерживает пантомиму). Подробности здесь: github.com/eligrey/FileSaver.js/issues/12 - person Mat Gessel; 28.09.2016
comment
@Vaitkevicius вы знаете, считается ли пробел (% 20) одним символом или 3? - person Jun711; 28.05.2018
comment
@Jun зависит от того, где ... нажмите F12 и вставьте следующее в консоль console.log("%20".length +" "+decodeURI("%20").length) это должно объяснить это - person Matas Vaitkevicius; 29.05.2018

Часто задаваемые вопросы в WWW: что максимальная длина URL-адреса? есть собственный ответ, основанный на эмпирическом тестировании и исследованиях. Короткий ответ заключается в том, что превышение 2048 символов вызывает недовольство Internet Explorer, и поэтому вам следует использовать это ограничение. См. Страницу для подробного ответа.

person Brian    schedule 06.01.2009

На самом деле не существует универсальной максимальной длины URL. Максимальная длина определяется только тем, что клиентский браузер выбирает для поддержки, что сильно варьируется. Ограничение 2083 присутствует только в Internet Explorer (все версии до 7.0). Максимальная длина в Firefox и Safari кажется неограниченной, хотя нестабильность возникает с URL-адресами, достигающими около 65 000 символов. Opera, похоже, не имеет максимальной длины URL-адреса и не страдает нестабильностью при очень большой длине.

person web marketing strategies provi    schedule 05.08.2010
comment
Если нестабильность составляет около 65k, вероятно, около 65535 (2 ^ 16 - 1). Может быть, они перебирают символы с помощью короткого i? Просто мысль. Интересно, какой URL они тестировали для 65k + o_o ;; - person Garet Claborn; 18.03.2011
comment
Этот ответ, возможно, следует принять, поскольку он дает конкретные ответы: 2k для IE, 65k для Safari / Firefox, еще для Opera. - person eis; 15.04.2013
comment
Мне любопытно. Является ли URL-адрес 65k URI схемы данных или действительно URL-адресом в классическом смысле? - person SaAtomic; 14.09.2017
comment
Я предполагаю, что нестабильность вызвана / была вызвана API, используемым для отображения адресной строки. Многие библиотеки ОС не могут справиться с слишком длинными строками, отображаемыми на дисплее с приемлемой производительностью. - person Mikko Rantalainen; 21.05.2021

На платформах Apple (iOS / macOS / tvOS / watchOS) ограничением может быть схема длинных URL 2 ГБ, как видно из этот комментарий в исходном коде Swift:

// Make sure the URL string isn't too long.
// We're limiting it to 2GB for backwards compatibility with 32-bit executables using NS/CFURL
if ( (urlStringLength > 0) && (urlStringLength <= INT_MAX) )
{
...

На iOS я протестировал и подтвердил, что допустимы даже URL-адреса длиной более 300 МБ. Вы можете попробовать такой длинный URL-адрес в Objective-C:

NSString *path = [@"a:" stringByPaddingToLength:314572800 withString:@"a" startingAtIndex:0];
NSString *js = [NSString stringWithFormat:@"window.location.href = \"%@\";", path];
[self.webView stringByEvaluatingJavaScriptFromString:js];

И поймать, если получится:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSLog(@"length: %@", @(request.URL.absoluteString.length));
    return YES;
}
person Cœur    schedule 27.06.2016
comment
Вы, сэр, заслуживаете +1 только за попытку попробовать URL-адрес 300 МБ - person Дамян Станчев; 10.11.2016
comment
iOS не является браузером сама по себе. Это было в Safari для iOS? - person Randall; 07.08.2017
comment
Схемы @Randall обрабатываются ОС, а затем отправляются в приложение, которое может их открыть. Таким образом, все приложения на iOS, включая Safari, могут обрабатывать длинные URI. - person Cœur; 07.08.2017
comment
Спасибо за разъяснения. Предположительно, однако, это не мешает произвольному приложению (например, браузеру на базе Tor) вводить собственное ограничение длины, верно? - person Randall; 07.08.2017

Однако URI RFC (из которых URL-адреса являются подмножеством) не определяет максимальную длину, однако он рекомендует, чтобы длина части имени хоста URI (если применимо) не превышала 255 символов:

Производители URI должны использовать имена, соответствующие синтаксису DNS, даже если использование DNS не является очевидным, и должны ограничивать эти имена длиной не более 255 символов.

Однако, как отмечалось в других сообщениях, некоторые браузеры имеют практическое ограничение на длину URL-адреса.

person casperOne    schedule 06.01.2009

В спецификации HTTP 1.1 говорится:

URI в HTTP могут быть представлены в абсолютной форме или относительно некоторого известного базового URI [11], в зависимости от контекста их использования. Две формы
отличаются тем, что абсолютные URI всегда начинаются
с имени схемы, за которым следует двоеточие. Для получения полной информации о синтаксисе и семантике URL-адресов см. «Uniform Resource Identifiers (URI): Generic Syntax and Semantics», RFC 2396 [42] (который заменяет RFC 1738 [4] и RFC 1808 [11]). Эта спецификация принимает определения «URI-ссылка», «absoluteURI», «relativeURI», «порт»,
«хост», «abs_path», «rel_path» и «авторитет» из этой спецификации.

Протокол HTTP не накладывает никаких априорных ограничений на длину URI. Серверы ДОЛЖНЫ иметь возможность обрабатывать URI любого ресурса, который они обслуживают, и ДОЛЖНЫ иметь возможность обрабатывать URI неограниченной длины, если они предоставляют формы на основе GET, которые могут генерировать такие URI. * Сервер ДОЛЖЕН возвращать 414 (Request- URI Too Long), если URI длиннее, чем сервер может обработать (см. Раздел 10.4.15).

Примечание. Серверы должны быть осторожны в зависимости от длины URI выше 255 байтов, потому что некоторые более старые реализации клиента или прокси могут не поддерживать эту длину должным образом.

Как упомянул @Brian, HTTP-клиенты (например, браузеры) могут иметь свои собственные ограничения, а HTTP-серверы будут иметь другие ограничения.

person Greg    schedule 06.01.2009

Служба поддержки Microsoft сообщает: «Максимальная длина URL-адреса в Internet Explorer составляет 2083 символа».

IE имеет проблемы с URL-адресами длиннее этого. Firefox, похоже, отлично работает с символами> 4k.

person MegaTux    schedule 26.05.2010

В URL как UI Якоб Нильсен рекомендует:

социальный интерфейс в Интернете полагается на электронную почту, когда пользователи хотят порекомендовать веб-страницы друг другу, а электронная почта является вторым наиболее распространенным способом перехода пользователей на новые сайты (поисковые системы являются наиболее распространенными): убедитесь, что все URL-адреса на вашем site имеют длину менее 78 символов, поэтому они не переносятся через перевод строки.

Это не максимум, но я бы счел это практическим максимумом, если вы хотите, чтобы ваш URL был общедоступным.

person Paul Morgan    schedule 08.01.2013
comment
Интересно, откуда 78? Может быть, эта оригинальная статья 1999 года была написана исходя из предположения, что люди читают свою электронную почту в окнах терминала 80x24? Тем не менее, хороший совет! - person Jon Schneider; 29.01.2015
comment
Хорошо. Перфокарты IBM также состояли из 80 столбцов. С двумя символами, занятыми возвратом каретки и переводом строки, вы получите 78. - person Paul Morgan; 29.01.2015
comment
Ха-ха. :-) Я на самом деле рассматривал возможность сослаться на мониторы 80x25 CGA времен 1981 года в своем комментарии, но вы зашли еще дальше! ... Меня не было в эпоху перфокарт, но было ли у них 80 байт в поперечнике или только 80 бит? - person Jon Schneider; 29.01.2015
comment
Не совсем байт (8 бит). Он закодировал по одному символу в каждом столбце. - person Paul Morgan; 29.01.2015
comment
@JonSchneider - 78 довольно специфичен и может относиться к удобочитаемости текста (с точки зрения удобства использования, учитывая опыт Нильсена), что лучше всего между 50–60, но не более 75. - person Jay Rainey; 16.03.2016

протокол Sitemaps, который позволяет веб-мастерам информировать поисковые системы о страницах своих сайтов (также используется Google в Инструменты для веб-мастеров), поддерживает URL-адреса длиной менее 2048 символов. Поэтому, если вы планируете использовать эту функцию для поисковой оптимизации, примите это во внимание.

person Calin-Andrei Burloiu    schedule 14.08.2011
comment
Это немного сбивает с толку. Протоколы Sitemap поддерживают URL-адреса длиной менее 2048 символов. Я представлял себе такой сайт, как example.com, будет работать. Думаю, это вопрос скорее о максимуме? - person HoldOffHunger; 17.08.2018

Службы отчетов ASP.NET 2 и SQL Server 2005 имеют ограничение в 2028. Я обнаружил это на собственном горьком опыте, когда мой динамический генератор URL-адресов не передавал некоторые параметры в отчет за пределами этой точки. Это было в Internet Explorer 8.

person Fandango68    schedule 23.07.2013

Почему ограничение Internet Explorer составляет 2 КБ, а в IIS - 16 КБ? Я не думаю, что это имеет смысл.

Итак, я хочу начать эксперимент с ограничениями размера URL-адреса Ajax-запроса.

Я установил maxHttpHeaderSize = "1048576" в моем HTTP-коннекторе Tomcat. И подготовил очень длинный URL.

Затем я отправляю запрос с длинным URL-адресом, например следующим:

var url="/ajax/url-length.jsp";
jQuery.ajax(url,{data:{q:"0".repeat(1048000-url.length-4)}});

Готовые отчеты jQuery. Tomcat сообщает, что запрошенный URL-адрес составляет 1048015 байт. Он был протестирован с Chrome 50 и Internet Explorer 11.

Таким образом, веб-браузеры не будут намеренно обрезать или ограничивать ваш URL-адрес при отправке запросов Ajax.

person fuweichin    schedule 04.05.2016
comment
Различия между Internet Explorer и IIS имеют смысл, если учесть, что не все запросы к веб-серверу выполняются через браузер. - person TroySteven; 12.01.2018

Директива ограничения строки запроса устанавливает максимальную длину URL-адреса. По умолчанию он установлен на 8190, что дает вам много места. Однако другие серверы и некоторые браузеры ограничивают длину больше.

Поскольку все параметры передаются в строке URL-адреса, элементы, которые были в пароле скрытых полей, также будут отображаться в URL-адресе. Ни один из мобильных устройств не должен использоваться для реальных мер безопасности и должен считаться в лучшем случае косметической защитой.

person webslatesoftware    schedule 28.08.2013

Похоже, Chrome хотя бы поднял этот лимит. Я вставил в букмарклет 20 000 символов, и он взял его.

person wibberding    schedule 14.12.2014

У меня есть опыт работы с SharePoint 2007, 2010, и существует ограничение на длину URL-адреса, которую вы можете создать на стороне сервера в этом случае SharePoint, поэтому это зависит в основном от: 1) клиента (браузер, версия и ОС) и 2) серверные технологии, IIS, Apache и др.

person Leonidas Menendez    schedule 15.01.2015
comment
Поскольку SharePoint предоставляет веб-URL-адреса как пути к файлам, возникает отдельное ограничение: ограничение на длину пути к файлу Windows в 260 символов (или 248 символов при использовании API). Дополнительные сведения об этом ограничении см. В разделе «Ограничение максимальной длины пути» здесь: msdn.microsoft.com/en-us/library/aa365247 (VS.85) .aspx - person Thriggle; 20.05.2015

Согласно спецификации HTTP, длина URL-адреса не ограничена. В URL-адресах должно быть не более 2048 символов; это обеспечит работу URL-адресов во всех конфигурациях клиентов и серверов. Кроме того, поисковые системы предпочитают, чтобы URL-адреса не превышали 2000 символов.

person Anoop Gupta    schedule 21.09.2019