Ответ
Спецификация HTTP не определяет жёсткого лимита, но ограничения накладываются браузерами, серверами и промежуточным ПО (прокси).
Типичные ограничения:
- Браузеры: ~2000–8000 символов (Chrome ~32КБ, Firefox ~64КБ, IE ~2048).
- Веб-серверы:
- Apache (
LimitRequestLine): по умолчанию 8190 байт (~8КБ). - Nginx (
large_client_header_buffers): по умолчанию 4КБ или 8КБ.
- Apache (
- Прокси-серверы: часто имеют лимит в 4КБ.
Рекомендация: Для передачи больших объёмов данных (например, JSON-тела) используйте метод POST (или PUT/PATCH), а не GET.
Пример обработки ошибки 414 (URI Too Long) в Java:
HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection();
int responseCode = connection.getResponseCode();
if (responseCode == 414) {
// URL превысил допустимую длину на сервере
}