Сжатие параметров в URL

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

От моего поиска в Интернете я нашел предложения при использовании коротких URL, и затем свяжите тот один с длинным URL. Идентификатор предпочитает не использовать это решение, потому что я должен был бы сделать дополнительную проверку базы данных для преобразования между длинным и коротким URL.

Это оставляет в моей голове 3 опции:

  1. Хеширование, я не думаю, что это - опция. Если Вы хотите безопасный алгоритм хеширования, его попытка быть длинными.
  2. Сжатие строки URL, в основном наличие сервера снижают строку когда, когда это получает параметры URL.
  3. Изменяя URL так не описательный, это плохо, потому что он сделал бы разработку тяжелее для меня (Это - 1 проект человека).

Считая огромное количество возможной суммой ОС/браузеров там, я изобразил идентификатор, как будто кто-либо еще попробовал это или имеет некоторые умные предложения.

Если это матери параметры URL может достигнуть 100 + символы.

Пример:

mysite.com/Reports/Ability.aspx?PlayerID=7737&GuildID=132&AbilityID=1140&EventID=1609&EncounterID=-1&ServerID=17&IsPlayer=True

Править:

Позвольте мне разъяснить банкомат, это НЕ повреждает сайт. Больше обо мне учащийся находить хорошее решение (я хорошо знаю, что это - микро оптимизация, мой сайт является очень быстрым банкоматом), и создание моего сайта еще быстрее (Чтобы бросить вызов мне и стать лучшим кодером).

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

5
задан meagar 31 December 2013 в 04:45
поделиться

8 ответов

См. этот поток:

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

Тщательно проверьте, какой JRE используется в сеансе отладки.

Также проверьте развертывание классов, скомпилированных с набором атрибутов отладки. (см. этот поток )

Наконец, как указано в :

вы отключили функцию « Project- > Автоматическое построение »?
Горячая замена кода работает (только?), если включена автоматическая сборка...

http://www.webreference.com/programming/javascript/rg7/Build-Automatically.gif

-121--1210901-

Я сталкивался с подобными ситуациями в прошлом, хотя мои причины для оптимизации были для SEO. Для меня это зависит от того, что вы делаете с переменными URL страницы, они добавляются на всех/большинстве страниц? Если они для меня, то почти всегда есть гораздо лучший способ, хотя если вы далеко по пути развития, то, вероятно, уже поздно.

Мне нравится иметь возможность «читать» URL, особенно когда я попадаю в неизвестный сайт 2 или более слоев глубоко в навигации, и там сайт разработан плохо, это часто самый простой и быстрый способ для продвинутого пользователя найти, где они находятся на сайте.

Если вы заинтересованы в этом с точки зрения SEO, обычно лучше иметь иерархию, которая содержит только :/- _ Поисковые системы попытаются прочитать URL, смотрите это видео Мэтта Каттса (не могу вспомнить, как далеко в видео он упоминает его, но это все равно хорошие часы...)

-121--4950915-

Несколько вариантов добавления к другим ответам:

  • Использование подкласса LinkButton для навигации. Это держит дополнительные данные (PlayerId, например) в его viewstate как свойства. Это не очень поможет, если вы даете URL-адреса людям по электронной почте.
  • Используйте подсистему маршрутизации MVC для создания несколько улучшенных URL-адресов - без ключей для строки запроса. Например, mysite.com/Reports/Ability/7737/132/1140/1609/-1/17/True
  • Создайте собственный укороченный URL-адрес , например tinyurl.com. Сохраните URL-адрес в базе данных вместе с каждым из значений строки запроса для поиска.
  • Просто настройте некоторые удобные URL-адреса для наиболее популярных отчетов, например mysite.com/Reports/JanuaryReport . Это также можно сделать с помощью механизма маршрутизации MVC.

Подсистема маршрутизации MVC является автономной и может работать без использования сайта MVC.

1
ответ дан 14 December 2019 в 13:37
поделиться

Я не уверен, что понимаю, какова ваша проблема с длинными URL? Как правило, я бы попытаюсь избежать их, но если это необходимо, то вы не будете зависеть от того, что пользователь вспоминает его в любом случае, так зачем пройти все проблемы с сжиманием? Даже с URL 1000 символов (~ 2 КБ) запрос страницы не будет медленным.

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

1
ответ дан 14 December 2019 в 13:37
поделиться

Существуют теоретические проблемы с расширенными URL. Точный предел зависит от браузера (примерно 2к в сортировке версий IE) и Server (4-8k в Apache, варьирующийся в версии и конфигурации) и не официально не указан в любом RFC, который я знаю.

Я бы согласился с Synhershko и замените URL-адрес с параметрами Post Post, если вы обеспокоены тем, что ваши URL растут слишком долго.

0
ответ дан 14 December 2019 в 13:37
поделиться

Большинство браузеров могут обрабатывать 2048 символов в URL; Если вам не хотелось бы использовать длинный список параметров, вы всегда можете пропускать параметры через почтовые запросы.

0
ответ дан 14 December 2019 в 13:37
поделиться

Я столкнулся с подобными ситуациями в прошлом, хотя мои причины оптимизации были для SEO. Мне это зависит от того, что вы делаете со страницей URL-переменными, они прилагаются на все / большинство страниц? Если они тогда мне, есть почти всегда намного лучше, хотя если вы далеко по пути развития, это, вероятно, слишком поздно.

Мне нравится быть способным «прочитать» URL, особенно когда я падаю в неизвестный сайт 2 или более слоев глубоко в навигации, и там сайт будет плохо, это часто самый простой и быстрый способ для продвинутого пользователя где они на сайте.

Если вы заинтересованы в этом с точки зрения SEO, это нормально лучше, чтобы иметь иерархию, которая содержит только: / - _ Поисковые системы постараются прочитать URL-адрес, Смотрите это видео с помощью Matt Matts (не могу вспомнить, насколько далеко в видео он упоминает это, но это хорошие часы ...)

0
ответ дан 14 December 2019 в 13:37
поделиться

У вас есть некоторые противоречивые требования, так как вы хотите сократить/сжать url, не делая его менее описательным. По самой природе сокращения URL-адреса, Вы сделаете его менее описательным.

Насколько я понимаю, Ваша цель - оптимизировать URL, посылая меньше через запрос. Вы упоминаете 100+ символов вместо 1000+, что, как я полагаю, означает, что они не получат такого размера? В таком случае, я бы расценил это как ненужную микро-оптимизацию.

Чтобы добавить к предыдущим предложениям по использованию POST, простой вещью было бы просто сократить ключи вместо использования полных имён, если Вы не хотите делать полное url-сокращение, например:

mysite.com/Reports/Ability.aspx?pid=7737&GID=132&AID=1140&EID=1609&EnID=-1&SID=17&IsP=True

Они явно менее описательны.

Но как я уже говорил, есть ли у Вас реальные проблемы с длинными URL-адресами?

2
ответ дан 14 December 2019 в 13:37
поделиться

Любая форма сжатия URL (хеширование, сжимания, не описательная) собирается:

  1. сделать URL-адреса труднее читать, запомнить и введите правильно
  2. , иметь влияние на производительность, поскольку вам придется Расшифровать / декомпресс / преобразовать URL, прежде чем вы сможете работать с ним.

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

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

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

0
ответ дан 14 December 2019 в 13:37
поделиться

Рекомендуется здесь несколько раз, чтобы использовать пост вместо того, чтобы получить. Я настоятельно рекомендую от выбора вашего HTTP действий, как выглядит URL. Есть больше для этого выбора, чем то, как он отображается в браузере.

Быстрый обзор:

http://www.w3.org/2001/tag/doc/whentouseget.html#checklist

1
ответ дан 14 December 2019 в 13:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: