LINUX.ORG.RU
ФорумTalks

Миллион символов в адресной строке - что за безумие?

 ,


0

1

В последнее время некоторые сайты стали жутко злоупотреблять GET параметрами (?var1=1&var2=2&var3=3) и именованными ссылками (#blablabla), из-за чего история браузера растёт неимоверно.

Особенно ужасны извращения практически всех поисковиков: Google и Yandex - ярые примеры. Yahoo не отстаёт.

Объясните, зачем такие извращения? Почему нельзя использовать webstorage/cookies? Понятно, что POST не подходит, ибо браузеры бесятся, когда ходят между страницами, передающими POST параметры.

В последнее время некоторые сайты

С разморозкой!

Почему нельзя использовать webstorage/cookies?

Данные из вебсторыча не передаются на сервак сами по себе. Кукисы можно отключить, затруднив тем самым работу большому брату. Ну и про рефералы не стоит забывать.

Apple-ch ★★
()

в чем проблема выпилить suggest из адресной строки? заходи в настройки браузера и выключай, делов-то.

reprimand ★★★★★
()

зачем такие извращения?

Для того, чтобы были ссылки на поисковые запросы, например, если кто-то не осилсл гугл. И не миллион там а максимум 256.

crutch_master ★★★★★
()

Тащемта поисковики так передают твой запрос. А что ты предлагаешь? Класть запрос в куку при переходе со страницы на страницу?

vurdalak ★★★★★
()

..или вот еще я - часто просираю вклаку с результатами поиска, а потом ищу её в истории браузера.

crutch_master ★★★★★
()
Ответ на: комментарий от vurdalak

Сэр, вам лишь бы потрепаться?

Пример:

xttps://www.google.com/search?q=cute+kittens&es_sm=91&tbm=vid&source=lnms&sa=X&ei=fef32e79aeb2a6806&ved=V9asdf_S65dzDf&biw=RESX&bih=RESY&dpr=1#q=cute+kittens

Теперь объясните мне зачем в URL:

ei и ved? нельзя трекать человека иначе? Куками?

biw и bih? Зачем передавать разрешение экрана через GET?

#q=cute+kittens? Зачем дублировать GET[«q»]?

За каким лешим тут es_sm, source, sa и dpr? В чём тайный смысл параметров, которые не меняются?

thespiritofbirdie
() автор топика
Ответ на: комментарий от crutch_master

И не миллион там а максимум 256.

RFC 2068 говорит насчёт https?://: «The HTTP protocol does not place any a priori limit on the length of a URI.». В RFC 1738 тоже навскидку ничего про максимальную длину URL не обнаружил.

ksa242
()

Это ты ещё не видел как гугл картинки в строку вставляет.

ritsufag ★★★★★
()
Ответ на: комментарий от crutch_master

..или вот еще я - часто просираю вклаку с результатами поиска, а потом ищу её в истории браузера.

не проще снова запрос набрать?

Harald ★★★★★
()
Ответ на: комментарий от ksa242

ткнул по поиску ещё раз и получил

https://duckduckgo.com/?q=cute%2Bkittens

alltiptop ★★★★★
()
Последнее исправление: alltiptop (всего исправлений: 1)
Ответ на: комментарий от thespiritofbirdie

зачем в URL

Затем, что разработчикам конкретного сервиса было удобно сделать именно так. Где-то виновата архитектура приложения, где-то - неочевидные для нас нюансы, связанные с кроссбраузерностью и производительностью, а ещё где-то просто исторически так сложилось, и сейчас переписывать нет желания/времени/возможности/необходимости.

risenshnobel ★★★
()
Ответ на: комментарий от risenshnobel

Google, когда появился, имел такой GET:

google.com/search?q=test [and optionally a page number]

И всё работало отлично. Вопрос лишь зачем они столько дер*ма вставляют сейчас в 2014 году.

thespiritofbirdie
() автор топика
Ответ на: комментарий от ksa242

ну google.com/search?q= тож умеет
можешь зарегать домен ggl.gl с редиректом на google.com

ubuntuawp ★★
()
Последнее исправление: ubuntuawp (всего исправлений: 1)
Ответ на: комментарий от thespiritofbirdie

Зачем передавать разрешение экрана через GET?

чтобы сайт мог определить размеры экрана и соответствующим образом перерисовать свой интерфейс

Зачем дублировать GET[«q»]?

например чтобы отрезать хэштэг и распарсить его JS. Всё что до # - это серверная часть, всё что после # - клиентская.

stevejobs ★★★★☆
()
Ответ на: комментарий от thespiritofbirdie

ei и ved? нельзя трекать человека иначе? Куками?

1) один и тот же поисковый запрос на одинаковых данных должен выдавать одинаковый ответ. Например, чтобы ты мог кинуть другу ссылку на результаты поиска по скайпу и сказать: «смотри на вторую и пятую строчку!». Поэтому хранить нельзя в локальных куках.

2) если хранить всё в серверных куках, то твой запрос сломается, как только серверные куки очистят. Поэтому в серверных куках хранить тоже нельзя.

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

Сим приходим к идее токена, который генерится 1 раз (в момент создания запроса) и становится частью строки запроса. Это как раз в точности гет-параметр и есть

stevejobs ★★★★☆
()
Ответ на: комментарий от thespiritofbirdie

ei и ved? нельзя трекать человека иначе? Куками?

Нельзя, потому-что куки при копипасте ссылки в IM не передаются :)

Хотя можно было и поменьше было сделать ссылку. Интернет катится в СГ.

edigaryev ★★★★★
()
Ответ на: комментарий от crutch_master

И не миллион там а максимум 256.

Из моей практике, что народ на форуме публикует:

mysql> select max(character_length(url_real)) from links;
+---------------------------------+
| max(character_length(url_real)) |
+---------------------------------+
|                            1548 |
+---------------------------------+
1 row in set (1 min 17.13 sec)

А реально, вроде, до 4096 типовые настройки серверов должны поддерживать.

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

главное вы это Гуглу не расскзывайте, а то чего доброго решит «лишние» гет-параметры не просто бледно-сереньким выделять, а вообще показывать перестанет, или даже перестанет показывать пользователю адрес вообще)

stevejobs ★★★★☆
()
Ответ на: комментарий от stevejobs

или даже перестанет показывать пользователю адрес вообще)

Так обещали же скоро так сделать :)

Кстати, у Оперы уже давно было:
http://www.cyberscorpion.com/wp-content/uploads/2012/05/2012-05_HidingURL4.gif

Только доменное имя показывается, пока в адресную строку не ткнёшься.

KRoN73 ★★★★★
()
Ответ на: комментарий от stevejobs

ложь, один и тот же поисковый запрос на одинаковых данных уже через сутки может выдавать новые данные (даже при одинаковом 100% url).

проверял тучу раз.

thespiritofbirdie
() автор топика
Ответ на: комментарий от stevejobs

чтобы сайт мог определить размеры экрана и соответствующим образом перерисовать свой интерфейс?

У Google сейчас бОльшая часть через Ajax идёт. Бред несёте.

например чтобы отрезать хэштэг и распарсить его JS. Всё что до # - это серверная часть, всё что после # - клиентская.

Что? Какая такая клиентская часть? Поисковая база данных только у Google - у клиента нет ничего.

thespiritofbirdie
() автор топика
Ответ на: комментарий от thespiritofbirdie

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

stevejobs ★★★★☆
()
Ответ на: комментарий от thespiritofbirdie

У Google сейчас бОльшая часть через Ajax идёт. Бред несёте.

не распарсил

я всегда так делаю

когда сайт грузится, первым делом он должен узнать размеры экрана клиента (клиент - браузер)

если это первый запрос, либо запрос с девайса без поддержки JS (древние убогие фичерфоны), то вначале размеры экрана клиента определяются через юзер-агент браузера

вторым запросом можно посчитать размеры экрана через javascript

на основании этих размеров выбирается тот тип гуя, который лучше всего подходит нужному размеру экрана. Обычно существует несколько вариантов - extra small, small, medium, large, x-large.

(Плюс еще варьируются фичи, например где-то можно флеш, где-то нельзя, где-то можно картинки, где-то нельзя, поэтому по-хорошему в юзерагенте и GET-параметре нужно передавать еще и полное название девайса с которого идёт просмотр, и классификацию его по разным признакам)

Что? Какая такая клиентская часть? Поисковая база данных только у Google - у клиента нет ничего.

гляди, есть урл блаблабла#q=«задница»&h=«13»

когда страничка прогрузилась, жаваскриптом отрывается хэштег, остается #q=«задница»

потом дальше жаваскриптом строка на клиенте парсится, выдираются пары, q->задница

потом все слова из q, например, каким-то образом подсвечиваются. Или к ним перелистывается страница. Или блоки текста двигаются в зависимости от чего-то там (что раньше выдавать - блок с быстрой справкой из википедии, или блок с рекламой, или блок «калькулятор мер»). Что там конкретно гугль делает - я хз

например, вот эту страничку делал я: http://erlyvideo.ru/doc/live#stream_settings#retry_limit

здесь в хэшкоде написано, в каком порядке переключать табы на клиенте

stevejobs ★★★★☆
()

Объясните, зачем такие извращения? Почему нельзя использовать webstorage/cookies?

Чтобы пользователи страдали.

----------------

Вот аддоны для fx, которые чинят некоторые частные случаи: Google/Yandex search link fix, Pure URL

NeXTSTEP ★★
()
Ответ на: комментарий от Xellos

так это же два совершенно разных программы - html/js-клиент и веб-сервер. У них скорей всего совсем разные программисты, разные понятия о том, какие должны быть параметры, итп. Может быть, легче/логичней, чтобы у каждой из программ был свой набор параметров, даже если местами они пересекаются

stevejobs ★★★★☆
()
Ответ на: комментарий от stevejobs

местами они пересекаются

Причём - всеми.

Xellos ★★★★★
()
Ответ на: комментарий от crutch_master

там а максимум 256.

когда-то в одном из брузверов был баг - при клике на ссылке, в которой урл был больше чем какое-то там большой число символов происходило переполнение буфера =)

nanoolinux ★★★★
()
Последнее исправление: nanoolinux (всего исправлений: 1)

Кстати, недавно пытался скачать с гуглодиска сразу все файлы в .zip, он мне на почту прислал ссылку которая сделала редирект на другую, из 2750 символов, а потом гугл сказал «хватит»:

414. That’s an error.

The requested URL /accounts/ServiceLogin... is too large to process. That’s all we know. 

Такие дела.

edigaryev ★★★★★
()
Ответ на: комментарий от KRoN73

Ну опера ни каких плюсов от этого не поимела. Просто посчитали, что так удобнее и правильнее будет. Хром же хочет ещё больше траффика себе.

HunOL ★★★★
()
Ответ на: комментарий от thespiritofbirdie

Вопрос лишь зачем они столько дер*ма вставляют сейчас в 2014 году.

Чтобы осложнить жизнь любителям редактировать поисковый запрос прямо в адресной строке. Они так, бедненькие, рекламы недопоказывают.

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от Harald

не проще снова запрос набрать?

Я не всегда его помню в точности.

crutch_master ★★★★★
()
Ответ на: комментарий от PreciousProtection

Пройдите на следующие страницы этого запроса.

Сколько «умников» в теме - аж диву даёшься.

thespiritofbirdie
() автор топика
Ответ на: комментарий от ksa242

filiza.ru, эталон. При переключении серий из селекта урл засирается, и сайт отдает url too long.

NeverLoved ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.