Главная
Форум
Контакты
Купить
Поддержи проект
Поиск
Искать:
Расширенный поиск
[Закрыть]
Правила форума
Войти
Регистрация
Russian
English
HandyCache форум
Главная категория
»
Общие вопросы
»
Алгоритм преобразования URL в имя файла в кэше
Имя пользователя:
1 час
1 день
1 неделя
1 месяц
Навсегда
Пароль:
Страниц:
1
...
8
9
[
10
]
11
12
13
Вниз
« предыдущая тема
следующая тема »
Отправить эту тему
Печать
Автор
Тема: Алгоритм преобразования URL в имя файла в кэше (Прочитано 239107 раз)
0 Пользователей и 1 Гость смотрят эту тему.
popkov
Beta tester
Репутация: +3/-0
Offline
Сообщений: 349
Re: Алгоритм преобразования URL в имя файла в кэше
«
Ответ #180 :
05 апреля 2007, 00:37:42 »
Цитата: v0lt от 04 апреля 2007, 21:18:19
Ну дык, только у меня пока нелады с регулярными выражениями в C#. Мутно как-то все реализовано, замена непонятно как работает...
А в Дельфи я вообще не нашел стандартной библиотеки по регулярным выражениям
Да, Microsoft в отношении мутности - впереди планеты всей!
Впрочем, я думаю, в данной ситуации можно и без RegExp обойтись! Первый символ - знак %, далее может идти только символ из диапазона 0-9 или A-F. Далее - то же самое, только надо всю найденую последовательность загнать в соотв. переменную - и далее последовательно для каждого символа из этих трёх выполнить преобразование регистра (как я понял, в Delfi есть соотв. ф-ция). Если бы я программировал на Delfi - просто написал бы соотв. код. Но программирую я на совсем другом языке, так что консультировать не могу. Хотя RegExp, тем более компилированный, на Delfi работает очень быстро (пример - HC) - так что разницу в производительности никто не заметит.
Сообщить модератору
Записан
Михаил
Gold beta tester
Репутация: +337/-14
Offline
Сообщений: 5513
Re: Алгоритм преобразования URL в имя файла в кэше
«
Ответ #181 :
05 апреля 2007, 10:58:31 »
Цитата: popkov от 04 апреля 2007, 15:56:54
Все символы из списка :;=&/ относятся к зарезервированым?
Полный перечень зарезервированных символов (все они могут выступать в качестве разделителей):
:/?#[]@!$&'()*+,;=
Эти символы нельзя заменять на их коды и наоборот, иначе можем получить совершенно другой URL.
Кстати, кто-нибудь знает, есть ли какие-либо стандарты на повторное кодирование символов в URL?
Повторное кодирование
не допускается
. Выражение типа %2525 может иметь место, если задать, к примеру в Яндексе поиск строки "%25". Здесь тоже кодирование одно и не "наслаивается".
Сообщить модератору
Записан
popkov
Beta tester
Репутация: +3/-0
Offline
Сообщений: 349
Re: Алгоритм преобразования URL в имя файла в кэше
«
Ответ #182 :
05 апреля 2007, 21:47:52 »
Цитата: Михаил от 05 апреля 2007, 10:58:31
Повторное кодирование
не допускается
. Выражение типа %2525 может иметь место, если задать, к примеру в Яндексе поиск строки "%25". Здесь тоже кодирование одно и не "наслаивается".
Ты уверен? А почему тогда это так часто встречается?
Вот результаты поиска в логах по шаблону
%25[a-f\d]{2}
TOTAL: 33060 matches in 131 groups in 112 files
8605 %25D0
3052 %25D1
1643 %252F
1260 %2520
1083 %25BE
1064 %25BD
1011 %25B5
978 %253D
956 %25B8
785 %2526
763 %25B0
716 %2580
<... skipped ...>
Примеры:
http://www.google.ru/search?hl=ru&newwindow=1&q=%25C2%25A0&lr=
http://ru.wikipedia.org/wiki/%25D0%25AD%25D0%25BC%25D0%25B8%25D1%2580_%25D0%259A%25D1%2583%25D1%2581%25D1%2582%25D1%2583%25D1%2580%25D0%25B8%25D1%2586%25D0%25B0
http://c.microsoft.com/trans_pixel.asp?source=msdn&TYPE=PV&p=workshop_components_offline&URI=%2flibrary%2ftoolbar%2f3.0%2fasp.aspx%3fmode%3dhead%26c%3d%2fnonlibraryshell.config%26h%3dmsdn%252Emicrosoft%252Ecom%26u%3d%252Fworkshop%252Fcomponents%252Foffline%252Foffline%252Easp%26r%3dhttp%253A%252F%252Fmsdn%252Emicrosoft%252Ecom%252Fworkshop%252Fdelivery%252Foffline%252Flinkrel%252Easp%253Fframe%253Dtrue&GUID=1F4FC18C-F71E-47FB-8FC9-612F8EE59C61&r=http%3a%2f%2fmsdn.microsoft.com%2fworkshop%2fdelivery%2foffline%2flinkrel.asp%3fframe%3dtrue
http://support.microsoft.com/LTS/default.aspx?SSID=1&SiteLCID=1049&EventCollectionID=1&URL=%2fdefault.aspx&ContentType=kb&ContentLCID=1049&ContentID=910337&BrowserWidth=1024&BrowserHeight=580&BrandID=1&RefURL=kb%7c1049%7c842309%7cundefined%7cundefined%7chttp%3a%2f%2fwww.google.ru%2fsearch%3fhs%3dvb5%26hl%3dru%26client%3dfirefox-a%26rls%3dorg.mozilla%253Aru%253Aofficial%26q%3d%25D1%2584%25D0%25BE%25D0%25BD%25D0%25BE%25D0%25B2%25D0%25B0%25D1%258F%2b%25D0%25B8%25D0%25BD%25D1%2582%25D0%25B5%25D0%25BB%25D0%25BB%25D0%25B5%25D0%25BA%25D1%2582%25D1%2583%25D0%25B0%25D0%25BB%25D1%258C%25D0%25BD%25D0%25B0%25D1%258F%2b%25D1%2581%25D0%25BB%25D1%2583%25D0%25B6%25D0%25B1%25D0%25B0%2b%25D0%25BF%25D0%25B5%25D1%2580%25D0%25B5%25D0%25B4%25D0%25B0%25D1%2587%25D0%25B8%2b%25D0%25B7%25D0%25B0%25D0%25B3%25D1%2580%25D1%2583%25D0%25B7%25D0%25BA%25D0%25B0%2b%25D0%25BE%25D0%25B1%25D0%25BD%25D0%25BE%25D0%25B2%25D0%25BB%25D0%25B5%25D0%25BD%25D0%25B8%25D0%25B9%26btnG%3d%25D0%259F%25D0%25BE%25D0%25B8%25D1%2581%25D0%25BA%26lr%3d&OptionCollectionId=0&EventSeqNo=6&FlexID=&FlexValue1=&FlexValue2=&FlexValue3=&FlexValue4=mozilla%2f5.0%20%28windows%3b%20u%3b%20windows%20nt%205.0%3b%20ru%3b%20rv%3a1.8.1%29%20gecko%2f20061010%20firefox%2f2.0&FlexValue5=
«
Последнее редактирование: 05 апреля 2007, 21:56:44 от popkov
»
Сообщить модератору
Записан
Михаил
Gold beta tester
Репутация: +337/-14
Offline
Сообщений: 5513
Re: Алгоритм преобразования URL в имя файла в кэше
«
Ответ #183 :
05 апреля 2007, 22:24:54 »
Цитата: popkov от 05 апреля 2007, 21:47:52
Ты уверен?
Если задать в google поисковую строку "%C2%A0", то получим первый из указанных URL. Здесь %C2%A0 совершенно справедливо воспринимается как строка, а не как закодированные данные.
Остальные URL-ы нерабочие (по крайней мере у меня в Опере).
Сообщить модератору
Записан
popkov
Beta tester
Репутация: +3/-0
Offline
Сообщений: 349
Re: Алгоритм преобразования URL в имя файла в кэше
«
Ответ #184 :
06 апреля 2007, 02:40:31 »
Михаил
Дело в том, что я не пишу URL в логи - их туда пишет HC!
И если теперь уже по запросу
http://\S*%25[a-f\d]{2}\S*
в моих логах нашлось 1407 уникальных URL - это о чём-то говорит!
А насчёт нерабочих - вот рабочие (проверил!):
http://tbn0.google.com/images?q=tbn:P4qJidTTzOytPM:http://www.gg2.net/upload/Bill%2520Gates.jpg
http://tbn0.google.com/images?q=tbn:lLWcsYS6Mny9wM:http://www.bobbyworks.com/images/mug%2520shot%2520bill%2520gates.jpg
http://tbn0.google.com/images?q=tbn:zaDHv3KYcikJrM:http://e-consultancy.lemonfoundation.com/people/bill%2520gates,%2520dude.jpg
http://login.live.com/login.srf?lc=1033&id=1929&ru=http%3A%2F%2Fwww%2Emsnusers%2Ecom%2FDAV%5FLoginReturn%2Emsnw&tw=43200&kv=9&ct=1173608778&cb=wsredir%3Dhttp%253A%252F%252Fwww%252Emsnusers%252Ecom%252Fdav%252Emsnw%253Furi%253D%252F%252F&ems=1&kpp=1&ver=2.1.6000.1&rn=eWxErFnD&tpf=68e5347da98a85393cf5d57e6a146172
http://pics.imho.ru/Intel/Pro_Brand_apr-dec2006/04.12.06-18.12.06/200x350_lineup.swf?fdomain=citforum.ru&link1=http//body.imho.ru/event.ng/Type=click&FlightID=24294&AdID=29774&TargetID=18001&Segments=18371&Targets=18001&Values=25%2C30%2C46%2C50%2C60%2C72%2C82%2C92%2C100%2C110%2C150%2C254%2C1157%2C3842%2C4917%2C4919%2C4925%2C6649%2C7496%2C8086&RawValues=USERID%252C5113500c-2109-1164712039-1%252CGIPCOUNTRY%252CRU%252CGIPCITY%252CMoscow%252CGIPREGION%252C48&Redirect=http%3A//www.intel.com/business/enterprise/emea/rus/vpro/index.htm%253Fppc_cid%253DmrmRU2F
http://top.list.ru/counter?id=66377;t=56;js=13;r=http%3A//www.google.ru/search%3Fhl%3Dru%26q%3Dhp+ipaq+hx2410%26btnG%3D%25D0%259F%25D0%25BE%25D0%25B8%25D1%2581%25D0%25BA+%25D0%25B2+Google%26lr%3Dlang_ru;j=true;s=1024
*768;d=32;rand=0.7943153505349431
http://pics.rbc.ru/rbcmill/img/cddvnpahs/fegbhbkgfusj/170-200_3.swf?link1=http%3A//banner.rbc.ru/banredir.cgi%3Fsid%3Dfirstpage_left2.20070215115319.46171%26lid%3Dfirstpage_left2%26id%3D46171%26code%3D%21http%253A%252F%252Fwww.rt.ru%252Fcorporate%252F&seed=56280
http://love.mail.ru/tips/?tip=WinkLogined&tcurl=http%3A%2F%2Flove.mail.ru%2Fmy%2Fmessage.phtml%3Faction%3DWink%26oid%3D6950733%26tcurl%3Dhttp%253A%252F%252Flove.mail.ru%252Fkc_20%253F1%253D1%2526sold%253DEqHZFC6IdPHBig8aqSGaRJ-2M__YhTdx%2526afolder%253Dself%2526winked%253D1&tburl=http%3A%2F%2Flove.mail.ru%2Fkc_20%3F1%3D1%26sold%3DEqHZFC6IdPHBig8aqSGaRJ-2M__YhTdx%26afolder%3Dself
Список можно продолжать...
Сообщить модератору
Записан
Михаил
Gold beta tester
Репутация: +337/-14
Offline
Сообщений: 5513
Re: Алгоритм преобразования URL в имя файла в кэше
«
Ответ #185 :
06 апреля 2007, 11:11:35 »
Цитата: popkov от 06 апреля 2007, 02:40:31
А насчёт нерабочих - вот рабочие (проверил!):
Всех их объединяет одно - кодируется текстовый параметр (строка). Попробуй зайти на URL
http://www.gg2.net/upload/Bill%2520Gates.jpg
из первого примера - не получится. Когда речь идет о строке, обработчик воспринимает %20 не как код, а как осмысленное сочетание символов. В свою очередь, если любой URL из приведенных будет передаваться в качестве текстового параметра скрипта еще кому-нибудь, получим значения типа %252520.
А вот происхождение в твоем кэше URL
http://ru.wikipedia.org/wiki/%25D0%25AD%25D0%25BC%25D0%25B8%25D1%2580_%25D0%259A%25D1%2583%25D1%2581%25D1%2582%25D1%2583%25D1%2580%25D0%25B8%25D1%2586%25D0%25B0
интересно. Могу предположить, что он образовался также из текстового параметра скрипта при помощи списка "Переадресация" путем отсечения "вызывающего" URL.
С учетом всего этого, правило, преобразующее код типа %2525 в %25, на мой взгляд, лучше не использовать.
Сообщить модератору
Записан
Сергей
Beta tester
Репутация: +9/-2
Offline
Сообщений: 621
Re: Алгоритм преобразования URL в имя файла в кэше
«
Ответ #186 :
06 апреля 2007, 11:51:48 »
Обе ссылки нерабочие
Сообщить модератору
Записан
popkov
Beta tester
Репутация: +3/-0
Offline
Сообщений: 349
Re: Алгоритм преобразования URL в имя файла в кэше
«
Ответ #187 :
06 апреля 2007, 21:08:18 »
Цитата: Михаил от 06 апреля 2007, 11:11:35
Попробуй зайти на URL
http://www.gg2.net/upload/Bill%2520Gates.jpg
из первого примера - не получится.
Цитата: Михаил от 06 апреля 2007, 11:11:35
С учетом всего этого, правило, преобразующее код типа %2525 в %25, на мой взгляд, лучше не использовать.
Тут ты немного нарушил логику: из того, что закодированный повторно URL обрабатывается неправильно не следует, что противоположная ситуация - когда декодированный URL находится в виде параметра скрипта на месте закодированного - тоже будет обрабатываться неверно!
Попробуй зайти по ссылке:
http://tbn0.google.com/images?q=tbn:P4qJidTTzOytPM:http://www.gg2.net/upload/Bill%20Gates.jpg
- она обрабатывается сервером нормально, хоть я и декодировал знак процента!
Сообщить модератору
Записан
Михаил
Gold beta tester
Репутация: +337/-14
Offline
Сообщений: 5513
Re: Алгоритм преобразования URL в имя файла в кэше
«
Ответ #188 :
06 апреля 2007, 21:56:25 »
Цитата: popkov от 06 апреля 2007, 21:08:18
Тут ты немного нарушил логику: из того, что закодированный повторно URL обрабатывается неправильно не следует, что противоположная ситуация - когда декодированный URL находится в виде параметра скрипта на месте закодированного - тоже будет обрабатываться неверно!
Следует, что
иногда
он будет обрабатываться неверно. А этого, имхо, достаточно, чтоб такие правила не вводить. Рассмотрим пример, когда в поисковике надо найти строку "xyz%45". Поисковик сформирует URL с параметром xyz%2545. Если затем мы обрежем "25", то получим "xyz%45" и с таким URL в следующий раз попадем совершенно на другую страницу - на результаты поиска строки "xyzE".
PS У меня в списке "Переадресация" есть правило .+(url|go)=http заменять на http. В свете нашего общения начинаю склоняться к мысли, что для правильной его работы необходимо добавить в белый список правило (url|go)=http.*%25 с запретом переадресации.
«
Последнее редактирование: 06 апреля 2007, 22:10:07 от Михаил
»
Сообщить модератору
Записан
popkov
Beta tester
Репутация: +3/-0
Offline
Сообщений: 349
Re: Алгоритм преобразования URL в имя файла в кэше
«
Ответ #189 :
07 апреля 2007, 17:17:19 »
Цитата: Михаил от 06 апреля 2007, 21:56:25
Рассмотрим пример, когда в поисковике надо найти строку "xyz%45". Поисковик сформирует URL с параметром xyz%2545. Если затем мы обрежем "25", то получим "xyz%45" и с таким URL в следующий раз попадем совершенно на другую страницу - на результаты поиска строки "xyzE".
С примером согласен, но не слишком ли он искусственен? Кому придёт в голову искать "%45" - тем более, что при таком поиске Google отбрасывает знак % - и ищет вхождения "45"? Не единственный ли это случай, когда такое может происходить?
Цитата: Михаил от 06 апреля 2007, 21:56:25
У меня в списке "Переадресация" есть правило .+(url|go)=http заменять на http. В свете нашего общения начинаю склоняться к мысли, что для правильной его работы необходимо добавить в белый список правило (url|go)=http.*%25 с запретом переадресации.
Думаю, здесь ты прав! На RU-Board как-то обсуждалась ситуация, когда это правило неправильно работало, если знак двоеточия закодирован. В той ситуации оно всё же должно было сработать, поэтому я доработал это правило так:
#5#~#True#~#.+&(url|go)=http(:|%3a)//#~#http://#~#False#~#True
#5#~#True#~#.+/go.php\?http(:|%3a)//#~#http://#~#False#~#True
Такие правила правильно сработают в описанной тобой ситуации. Хотя, если честно, они кажутся мне наименее полезными и наиболее сомнительными из всех правил по умолчанию. Пока глюков не замечал - поэтому держу их включёнными! Попаданий довольно мало.
«
Последнее редактирование: 07 апреля 2007, 18:06:27 от popkov
»
Сообщить модератору
Записан
Михаил
Gold beta tester
Репутация: +337/-14
Offline
Сообщений: 5513
Re: Алгоритм преобразования URL в имя файла в кэше
«
Ответ #190 :
07 апреля 2007, 21:28:27 »
На мой взгляд, мы немного ушли в сторону
Краткое резюме по функции fixURL.
Итак, при формировании исправленного URL (процедура FixURL) делаем следующее (в указанном порядке):
- отсекаем "http://", а при включении соотв. опции - и "www."
- переводим буквы в кодах в верхний регистр;
- коды %41-%5A, %61-%7A, %30-%39, %2D, %2E, %5F, %7E преобразовываем в соответствующие им символы;
- переводим все символы имени хоста в нижний регистр;
- site.ru:XXXX<конец> заменяем на site.ru:XXXX/
- (www.)site.ru<конец>
site.ru:<конец>
site.ru:/
site.ru:80/
заменяем на site.ru/.
Все это делаем до начала проверки списков.
Кроме этого, убираем опцию "Удалять ссылку на порт 80 из имени файла в кэше" в Настройках/Кэш/Управление, т.к. в ходе работы удаляем ссылку на порт 80 всегда.
«
Последнее редактирование: 07 апреля 2007, 21:39:09 от Михаил
»
Сообщить модератору
Записан
popkov
Beta tester
Репутация: +3/-0
Offline
Сообщений: 349
Re: Алгоритм преобразования URL в имя файла в кэше
«
Ответ #191 :
07 апреля 2007, 23:24:19 »
Цитата: Михаил от 07 апреля 2007, 21:28:27
Краткое резюме по функции fixURL.
Итак, при формировании исправленного URL (процедура FixURL) делаем следующее (в указанном порядке):
- отсекаем "http://", а при включении соотв. опции - и "www."
- переводим буквы в кодах в верхний регистр;
- коды %41-%5A, %61-%7A, %30-%39, %2D, %2E, %5F, %7E преобразовываем в соответствующие им символы;
- переводим все символы имени хоста в нижний регистр;
- site.ru:XXXX<конец> заменяем на site.ru:XXXX/
- (www.)site.ru<конец>
site.ru:<конец>
site.ru:/
site.ru:80/
заменяем на site.ru/.
Все это делаем до начала проверки списков.
Кроме этого, убираем опцию "Удалять ссылку на порт 80 из имени файла в кэше" в Настройках/Кэш/Управление, т.к. в ходе работы удаляем ссылку на порт 80 всегда.
Отлично! Со всем согласен, только не совсем понял, какой бывает <конец> в
site.ru:XXXX<конец>
(www.)site.ru<конец>
site.ru:<конец>
Сообщить модератору
Записан
Михаил
Gold beta tester
Репутация: +337/-14
Offline
Сообщений: 5513
Re: Алгоритм преобразования URL в имя файла в кэше
«
Ответ #192 :
07 апреля 2007, 23:38:41 »
Цитата: popkov от 07 апреля 2007, 23:24:19
какой бывает <конец> в
site.ru:XXXX<конец>
(www.)site.ru<конец>
site.ru:<конец>
Имел в виду, что URL site.ru:8787 преобразуется в site.ru:8787/
site.ru - в site.ru/
site.ru: - в site.ru/
Под тэгом <конец> имел в виду, что на этом URL заканчивается, далее ничего нет (т.е. что это полный URL, а не начало другого более обширного URL). Сорри, если не совсем понятно получилось. Проще будет так:
- site.ru
site.ru:
site.ru:/
site.ru:80
site.ru:80/
заменяем на site.ru/.
- site.ru:XXXX заменяем на site.ru:XXXX/
«
Последнее редактирование: 07 апреля 2007, 23:47:01 от Михаил
»
Сообщить модератору
Записан
popkov
Beta tester
Репутация: +3/-0
Offline
Сообщений: 349
Re: Алгоритм преобразования URL в имя файла в кэше
«
Ответ #193 :
08 апреля 2007, 00:06:46 »
Теперь понятно. Только обнаружил одно НО: отбрасывать http:// надо после Переадресации, чтобы сохранялась возможность переадресовывать на другой протокол (например, FTP://) Насколько я понимаю, именно для этого автор и не стал отбрасывать http:// в Переадресации.
Хотя можно и иначе: отбрасывать
ДО
Переадресации, но, чтобы можно было перенаправить на другой протокол, в Переадресации (в обоих полях: Правило и Замена) делать проверку на наличие отличного от HHTP протокола (чтобы не быть ошибочно переадресованным на
http://ftp://site.ru
). Например, можно легко отловить название протокола правилом (RegExp):
^\w+://
При условии, что FixURL уже применён, такое простое правило безошибочно отловит все ссылки на другой протокол! И не поймает ничего лишнего!
Думаю, второй вариант даже предпочтительнее первого
(который реализован в текущей версии HC).
«
Последнее редактирование: 08 апреля 2007, 00:22:14 от popkov
»
Сообщить модератору
Записан
Михаил
Gold beta tester
Репутация: +337/-14
Offline
Сообщений: 5513
Re: Алгоритм преобразования URL в имя файла в кэше
«
Ответ #194 :
08 апреля 2007, 19:49:01 »
Да, забыл про отсечение фрагментов. Итого FixURL:
- отсекаем все, начиная с первого "#"
- отсекаем "http://", а при включении соотв. опции - и "www."
- переводим буквы в кодах в верхний регистр;
- коды %41-%5A, %61-%7A, %30-%39, %2D, %2E, %5F, %7E преобразовываем в соответствующие им символы;
- переводим все символы имени хоста в нижний регистр;
- site.ru
site.ru:
site.ru:/
site.ru:80
site.ru:80/
заменяем на site.ru/.
- site.ru:X заменяем на site.ru:X/
Сообщить модератору
Записан
popkov
Beta tester
Репутация: +3/-0
Offline
Сообщений: 349
Re: Алгоритм преобразования URL в имя файла в кэше
«
Ответ #195 :
11 апреля 2007, 01:07:02 »
Цитата: Михаил от 08 апреля 2007, 19:49:01
- отсекаем "http://", а при включении соотв. опции - и "www."
Только после Переадресации... См. мой предыдущий пост... Причём всё, что там написано, относится и к www. перед именем хоста! Иногда важно переадресовывать ссылки с www. на адреса без него! И наоборот! Это действительно важно! Иногда сайт существует в двух видах: c www. и без него! И когда залогинивешься на сайте без www., оказывается, что на его варианте с www. ты не залогинен! Единственный способ обойти этот глюк - использовать Переадресацию! Что я и делаю! Поэтому
ДО
Переадресации
нельзя
отбрасывать ни то, ни другое! Ни в коем случае!
....С остальным полностью согласен!
Сообщить модератору
Записан
Михаил
Gold beta tester
Репутация: +337/-14
Offline
Сообщений: 5513
Re: Алгоритм преобразования URL в имя файла в кэше
«
Ответ #196 :
15 апреля 2007, 18:38:59 »
Цитата: popkov от 04 апреля 2007, 15:56:54
ты согласен, что они понятнее и проще, чем соотв. #', #( и #)
В моих глазах `` однозначно лучше #', а остальные одинаково приемлемы.
Сообщить модератору
Записан
popkov
Beta tester
Репутация: +3/-0
Offline
Сообщений: 349
Re: Алгоритм преобразования URL в имя файла в кэше
«
Ответ #197 :
15 апреля 2007, 21:21:59 »
Цитата: Михаил от 15 апреля 2007, 18:38:59
В моих глазах `` однозначно лучше #', а остальные одинаково приемлемы.
Наконец-то в этой теме слышу высказывание в пользу ясности и здорового вкуса!
Спасибо!
«
Последнее редактирование: 15 апреля 2007, 21:26:37 от popkov
»
Сообщить модератору
Записан
v0lt
Beta tester
Репутация: +7/-0
Offline
Сообщений: 127
Re: Алгоритм преобразования URL в имя файла в кэше
«
Ответ #198 :
19 апреля 2007, 23:32:11 »
Михаил
Цитировать
- отсекаем "http://", а при включении соотв. опции - и "www."
popkov
Цитировать
Только после Переадресации...
В моем алгоритме "http://" отбрасывается для удобства (неважно какой введен урл с "http://" или без) и для последующего сравнения результата.
Если после Fix_URL() будет "Переадресация", то естественно отбрасывать не следует. Хотя и не факт стоит ли вообще Fix_URL ставить до Переадресации.
Поясню. Если мы сильно исправим урл (
Михаил
: - коды %41-%5A, %61-%7A, %30-%39, %2D, %2E, %5F, %7E преобразовываем в...
) и у нас сработает Переадресация, то браузер запросить у сервера такой урл, который тот не найдет у себя.
(вышеприведенные коды допустимы и сервер может ждать именно их, а не соответствующие символы).
Новая версия алгоритма:
измения
v1.3 beta 3
:
- в коде появились регулярные веражения :
fix_URL:
- коды вида %XX всегда в верхнем регистре
- после имени хоста отбрасывается ":80" и ":" (пустой порт)
URL2File:
- заглавные буквы (A..F) в кодах %XX не помечаются
File2URL:
- коды вида %XX переводятся в верхний регистр
URL2filename_ver1_3beta3.zip
(21.68 Кб - загружено 50 раз.)
Сообщить модератору
Записан
Михаил
Gold beta tester
Репутация: +337/-14
Offline
Сообщений: 5513
Re: Алгоритм преобразования URL в имя файла в кэше
«
Ответ #199 :
20 апреля 2007, 00:14:50 »
Цитата: v0lt от 19 апреля 2007, 23:32:11
Если мы сильно исправим урл (
Михаил
: - коды %41-%5A, %61-%7A, %30-%39, %2D, %2E, %5F, %7E преобразовываем в...
) и у нас сработает Переадресация, то браузер запросить у сервера такой урл, который тот не найдет у себя.
(вышеприведенные коды допустимы и сервер может ждать именно их, а не соответствующие символы).
Это те символы, которые как ни меняй их на коды и обратно - получим полностью эквивалентный URL, и запрос будет
гарантированно
отправлен туда же и с теми же параметрами и так же понят сервером. Потому и в FixURL гарантированно можно заменять коды только этих символов, а все остальное будет при необходимости заменять URL2FileName.
А если правило в Переадресации прописывать криво, то и сейчас не попадем по желанному адресу (но я не думаю, что ты это имел ввиду).
Если же я чего не так понял, приведи, плиз, пример.
Теперь про хттп://. Если я правильно представляю, оно отбрасывается и сейчас при проверке любого списка, кроме Переадресации. Хотя на практике с такой необходимостью я не встречался, но смысл оставления http:// для Переадресации теоретически может иметь место. Пусть так все и останется в отношении отрезания http://. Т.е. до проверки всех списков нормализуем URL с помощью процедуры FixURL без отрезания http://. "Переадресации" отдаем этот нормализованный URL, а остальным спискам - его же без ведущего http://.
Только вот непонятно при всем этом еще одно: если список "Переадресация" чувствителен к http://, то как может быть нечувствителен к нему Белый список, в котором мы прописываем исключения для "Переадресации"? Имхо, это недоработка.
«
Последнее редактирование: 20 апреля 2007, 00:57:00 от Михаил
»
Сообщить модератору
Записан
Страниц:
1
...
8
9
[
10
]
11
12
13
Вверх
Отправить эту тему
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Главная категория
-----------------------------
=> Общие вопросы
=> Новые предложения
=> Дополнения, плагины
=> Сжатие трафика
=> English forum
=> Indonesian forum
-----------------------------
Гостевая
-----------------------------
=> Гостевая
-----------------------------
Дела домашние
-----------------------------
=> Сайт и форум HandyCache
=> Курилка
© 2006-2014 HandyCache Team. Все права защищены.
Загружается...