2015-04-05 11 views
26

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

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

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

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

В C# вы можете получить список сегментов 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-адреса.

+0

Возможный дубликат [Максимальная длина URL-адреса в разных браузерах?] (Https://stackoverflow.com/questions/417142/what-is-the-maximum-length-of-a-url- в разных браузерах) –

+1

Сегмент URL-адреса отличается от URL-адреса. –

+0

Извините, вы правы, я не обращал достаточного внимания. –

ответ

29

Возможно, связанное со What is the maximum length of a URL in different browsers?

Короче

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

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

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

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

+0

Сегмент является лишь частью URL-адреса. –

+0

Да, так что макс. длина сегмента будет макс. Длина URL - 255 (для имени домена). Я уточню свой ответ. –

4

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

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

+0

Вот что мне нужно, список ограничений реализации. –

0

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