Какова максимальная максимальная длина сегмента в пути 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-адреса.
Ответы
Ответ 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 существует только путем реализации. Сегмент, привязанный к ограничению имени файла, относится только к случаю (старое обычное использование). Теперь дни почти все запросы проходят через один файл с помощью правила перезаписи, поэтому длина сегмента не имеет значения.
После этого сегмент хранится в переменной, которая может быть действительно большой в настоящее время, поэтому никаких ограничений.