Какое максимальное количество символов допустимо в URL?

«Какое максимальное количество символов допустимо в URL?» — вопрос из категории HTTP и веб-протоколы, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

Ограничения браузеров (для GET-запросов):

Браузеры ограничивают длину URL в адресной строке и при отправке запросов.

  • Chrome, Firefox, Safari: ~ 32 000 символов (фактический лимит очень высок, но для адресной строки ~2000).
  • Internet Explorer (исторически): 2 083 символа — самый строгий лимит, который долгое время был ориентиром для совместимости.

Ограничения серверов:

Серверное ПО может иметь свои лимиты на длину HTTP-запроса.

  • Apache (LimitRequestLine): По умолчанию 8 192 символов.
  • Nginx (large_client_header_buffers): По умолчанию 4-8 КБ (4 096 - 8 192 символов).
  • Microsoft IIS: 16 384 символов.

Рекомендация:

Для обеспечения максимальной совместимости не рекомендуется превышать длину URL в 2 000 символов. Для передачи больших объемов данных используйте POST-запросы с телом (body).

Пример проверки на клиенте (JavaScript):

// Предупреждение о потенциально слишком длинном URL для GET-параметров
const currentUrl = window.location.href;
if (currentUrl.length > 2000) {
    console.warn("URL превышает рекомендуемую длину для надежной совместимости.");
}