Подтвердить что ты не робот

Какова максимальная максимальная длина сегмента в пути URL должна быть?

Многие спрашивают: "Какова максимальная длина URL?" но насколько я вижу, никто не задает вопрос:

Какова максимальная максимальная длина сегмента в пути URL должна быть?

Я думаю, что этот вопрос не менее важен.

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

В С# вы можете получить список сегментов URL-адреса из входящего запроса, с установленными модулями безопасности, что считается максимальной длиной сегмента в пути URL-адреса для этого сценария?

Я читал на следующей странице, что сегменты URL-адреса более 260 символов могут вызвать проблемы в пользовательских модулях ASP.NET:

В веб-браузерах вы вводите сегменты URL независимо от того, на каком веб-сайте вы посещаете, / - это сегмент URL-адреса, который обычно отображается на домашнюю страницу. Как Internet Explorer, Chrome и Firefox являются популярными браузерами, какова максимальная длина длины сегмента URL-адреса, которую они поддерживают?

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

Но это путь, а не сегмент пути.

Я также знаю, что при переписывании путей вступает в игру длина пути к файловой системе, а фигура с шаровым парком, которую я вижу, поддерживает около 255 символов в операционной системе * nix.

Другие соображения включают максимальную длину сегмента пути URL в таблице базы данных. Например, в MySQL столбец varchar может содержать до 255 символов, но есть ли случай для этого: люди хранят сегменты путей в таблицах в MySQL или люди хранят полный URL-адрес в столбцах varchar? Может ли это означать, что 255 символов слишком длинны для сегмента URL-адреса?

Есть ли какая-либо спецификация W3C о том, как долго может быть сегмент URL-адреса, поскольку я ничего не вижу?

Я прочитал спецификацию W3C в URI, но снова я не заметил ничего полезного:

Я довольно озадачен тем, что нет стандартного набора длины сегмента URL-адреса, поэтому, может быть, я чего-то не хватает?

Я действительно ищу как можно больше информации о том, что поддерживают разные системы, и что считается безопасной длиной для сегмента URL-адреса.

4b9b3361

Ответ 1

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

Короче

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

У Chrome есть ограничение на 2 МБ для URL-адресов, IE8 и 9 имеют ограничение на 2084 символа. Таким образом, все указывает на то, что ваши URL-адреса ограничены ок. 2000 символов.

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

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

Ответ 2

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

Nit: URI определяются IETF, а не W3C, а текущая спецификация - RFC 3986.

Ответ 3

Максимальная длина URL-адреса не должна превышать 2K (обычная практика). Длина сегмента может иметь любой размер. Длина домена не должна превышать 255 символов rfc3986.txt. Предел a существует только путем реализации. Сегмент, привязанный к ограничению имени файла, относится только к случаю (старое обычное использование). Теперь дни почти все запросы проходят через один файл с помощью правила перезаписи, поэтому длина сегмента не имеет значения. После этого сегмент хранится в переменной, которая может быть действительно большой в настоящее время, поэтому никаких ограничений.