Главная
Форум
Контакты
Купить
Поддержи проект
Поиск
Искать:
Расширенный поиск
[Закрыть]
Правила форума
Войти
Регистрация
Russian
English
HandyCache форум
Главная категория
»
Общие вопросы
»
Баг - Не пишутся в кэш URL, содержащие спецсимволы
Имя пользователя:
1 час
1 день
1 неделя
1 месяц
Навсегда
Пароль:
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Отправить эту тему
Печать
Автор
Тема: Баг - Не пишутся в кэш URL, содержащие спецсимволы (Прочитано 15789 раз)
0 Пользователей и 1 Гость смотрят эту тему.
DenZzz
Модератор
Репутация: +179/-11
Offline
Сообщений: 5589
Баг - Не пишутся в кэш URL, содержащие спецсимволы
«
:
11 января 2007, 22:46:19 »
По мотивам ру-борда (пост
Dem_anywhere
), чтобы не забылось:
Цитировать
урл вида search.php?text="tatata" в кеш не пишется.
Я конечно понимаю, что это вебмастер наглюкал и не преобразовал в %22 - но тем не менее...
Ради интереса прошёлся по всяким хитрым символам - аналогично происходит с <>
Ослик при отдаче отдаёт их в запрос без преобразования...
Проверил. Правило из "Запись в кэш" срабатывает, а файл в кэш не попадает!
P.S. Конечно, это можно "вылечить" несколькими правилами для списка "Переадресация" или "Преобразование URL":
Код:
#5#~#True#~#"#~#%22#~#True#~#True
#5#~#True#~#<#~#%3C#~#True#~#True
#5#~#True#~#>#~#%3E#~#True#~#True
но все-таки...
«
Последнее редактирование: 10 марта 2007, 21:40:57 от DenZzz
»
Сообщить модератору
Записан
Сергей
Beta tester
Репутация: +9/-2
Offline
Сообщений: 621
Re: Баг - Не пишутся в кэш URL, содержащие спецсимв
«
Ответ #1 :
12 января 2007, 12:41:07 »
Цитата: DenZzz от 11 января 2007, 22:46:19
Проверил. Правило из "Запись в кэш" срабатывает, а файл в кэш не попадает!
И не должны. Т.к. эти символы нельзя в именах файлов использовать.
Это недоработка в алгоритме преобразования URL2File.
Правила в Преобразовании URL решают проблему, но лучше, чтобы HC сам это делал.
Еще достает, что HC не сообщает об ошибках когда не удалось записать в кэш
Сообщить модератору
Записан
DenZzz
Модератор
Репутация: +179/-11
Offline
Сообщений: 5589
Re: Баг - Не пишутся в кэш URL, содержащие спецсимв
«
Ответ #2 :
12 января 2007, 14:55:48 »
Сергей
Цитировать
И не должны. Т.к. эти символы нельзя в именах файлов использовать.
Должны, т.к. много какие символы нельзя в именах файлов использовать, однако HC их атоматически заменяет на другие, которые можно использовать! А про эти забыли...
Цитировать
Это недоработка в алгоритме преобразования URL2File.
Правила в Преобразовании URL решают проблему, но лучше, чтобы HC сам это делал.
Согласен.
Цитировать
Еще достает, что HC не сообщает об ошибках когда не удалось записать в кэш
HC пишет об этом в лог в отладочной информации. Когда файл сохранен на диск, то в логе есть строка, типа:
Код:
File D:\HANDYCACHE\Cache\forum.ru-board.com\topic.cgi^\forum=5&topic=21354&start=1340 created,
А когда файл не был сохранен, то такой строки нет!
Сообщить модератору
Записан
Дем
Постоялец
Репутация: +6/-3
Offline
Сообщений: 167
Re: Баг - Не пишутся в кэш URL, содержащие спецсимв
«
Ответ #3 :
12 января 2007, 16:18:47 »
Цитировать
P.S. Конечно, это можно "вылечить" несколькими правилами для списка "Переадресация" или "Преобразование URL":
Да, только наверно именно в "преобразовании", т.к. хрен его знает, как сайт на преобразованное среагирует.
Я себе такие правила сделал, чтобы оно было аналогично преобразованию других спецсимволов.
#5#~#True#~#"#~#
#'
#~#True#~#True
#5#~#True#~#<#~#
#(
#~#True#~#True
#5#~#True#~#>#~#
#)
#~#True#~#True
Сообщить модератору
Записан
Сергей
Beta tester
Репутация: +9/-2
Offline
Сообщений: 621
Re: Баг - Не пишутся в кэш URL, содержащие спецсимв
«
Ответ #4 :
12 января 2007, 17:13:28 »
Цитата: Дем от 12 января 2007, 16:18:47
Я себе такие правила сделал, чтобы оно было аналогично преобразованию других спецсимволов.
#5#~#True#~#"#~#
#'
#~#True#~#True
#5#~#True#~#<#~#
#(
#~#True#~#True
#5#~#True#~#>#~#
#)
#~#True#~#True
Проблемы нет в опере, т.к. она преобразует спецсимволы сама. Зачем изобретать велосипед? С твоими правилами, при использовании одновременно IE и Оперы, получишь в кеше дубли файлов.
Сообщить модератору
Записан
Дем
Постоялец
Репутация: +6/-3
Offline
Сообщений: 167
Re: Баг - Не пишутся в кэш URL, содержащие спецсимв
«
Ответ #5 :
12 января 2007, 18:34:28 »
ну собственно никто не мешает добавить и
#5#~#True#~#%22#~##'#~#True#~#True
#5#~#True#~#%3C#~##(#~#True#~#True
#5#~#True#~#%3E#~##)#~#True#~#True
Но надо помнить и одно из главных правил программирования - программа должна корректно реагировать на непредсказуемые данные на входе.
А вообще, смотрим RFC1738. Там нет ни слова, что некоторые символы должны заменяться на %хх - а только то, что последовательность %хх следует рассматривать как код символа. Да и то - только в "стандартном" НТТР, сервер таковым быть не обязан.
И вообще, единственное, в чём можно быть уверенным - что в URL не будут символы из диапазона х00-х1F...
«
Последнее редактирование: 12 января 2007, 19:02:33 от Дем
»
Сообщить модератору
Записан
Дем
Постоялец
Репутация: +6/-3
Offline
Сообщений: 167
Re: Баг - Не пишутся в кэш URL, содержащие спецсимв
«
Ответ #6 :
13 января 2007, 02:31:41 »
Ещё одна глюка с кешем нашлась.... Обнаружилось несколько файлов с подобным содержимым, несмотря на то, что в браузер он более-менее нормально отдался
Код:
0000000000: 1F 8B 08 00 00 00 00 00 │ 00 03 43 6F 6E 74 65 6E *** *Conten
0000000010: 74 2D 54 79 70 65 3A 20 │ 74 65 78 74 2F 68 74 6D t-Type: text/htm
0000000020: 6C 3B 20 63 68 61 72 73 │ 65 74 3D 77 69 6E 64 6F l; charset=windo
0000000030: 77 73 2D 31 32 35 31 2D │ 43 6F 6E 74 65 6E 74 2D ws-1251-Content-
0000000040: 45 6E 63 6F 64 69 6E 67 │ 3A 20 67 7A 69 70 16 02 Encoding: gzip**
0000000050: 00
Т.е. запись строки пошла прямо после заголовка, а контент куда-то пропал...
Да, возможная причина глюка - файл не был докачан до конца (это факт), т.е. архив битый.
Сообщить модератору
Записан
mai62
Автор HC
Репутация: +226/-4
Offline
Сообщений: 6383
Re: Баг - Не пишутся в кэш URL, содержащие спецсимв
«
Ответ #7 :
13 января 2007, 04:16:10 »
Дем
Ну и где тут глюк? Сам пишешь
Цитировать
файл не был докачан до конца (это факт), т.е. архив битый
Тогда чего удивляться, что
Цитировать
запись строки пошла прямо после заголовка, а контент куда-то пропал...
Раз уж речь зашла об официальных документах, то позволю себе цитату из rfc 1738 - Uniform Resource Locators (URL)
Цитировать
Unsafe:
Characters can be unsafe for a number of reasons. The space
character is unsafe because significant spaces may disappear and
insignificant spaces may be introduced when URLs are transcribed or
typeset or subjected to the treatment of word-processing programs.
The characters "<" and ">" are unsafe because they are used as the
delimiters around URLs in free text; the quote mark (""") is used to
delimit URLs in some systems. The character "#" is unsafe and should
always be encoded because it is used in World Wide Web and in other
systems to delimit a URL from a fragment/anchor identifier that might
follow it. The character "%" is unsafe because it is used for
encodings of other characters. Other characters are unsafe because
gateways and other transport agents are known to sometimes modify
such characters. These characters are "{", "}", "|", "\", "^", "~",
"[", "]", and "`".
All unsafe characters must always be encoded within a URL. For
example, the character "#" must be encoded within URLs even in
systems that do not normally deal with fragment or anchor
identifiers, so that if the URL is copied into another system that
does use them, it will not be necessary to change the URL encoding.
«
Последнее редактирование: 13 января 2007, 05:03:28 от mai62
»
Сообщить модератору
Записан
Дем
Постоялец
Репутация: +6/-3
Offline
Сообщений: 167
Re: Баг - Не пишутся в кэш URL, содержащие спецсимв
«
Ответ #8 :
13 января 2007, 12:53:20 »
Цитировать
Ну и где тут глюк?
Если на диск пишется файл, не содержащий полезной информации - то это что?
Цитировать
Раз уж речь зашла об официальных документах,
Это немножко не про то. unsafe - это те символы, которые могут быть "съедены" или браузером - # - или всякими промежуточными гейвеями и т.д. Но в последнем случае они вполне могут присутствовать в урле как специально предназначенные для них.
Кроме того, запрос можт делать не браузер, а другая программа (тот же AJAX) - и там строка попадает непосредственно в запрос без всякой обработки на стороне клиента.
«
Последнее редактирование: 13 января 2007, 12:57:20 от Дем
»
Сообщить модератору
Записан
DenZzz
Модератор
Репутация: +179/-11
Offline
Сообщений: 5589
Re: Баг - Не пишутся в кэш URL, содержащие спецсимв
«
Ответ #9 :
14 января 2007, 01:46:39 »
Для обсуждения действующего алгоритма преобразования URL в имя файла в кэше создана
отдельная тема
!
Сообщить модератору
Записан
Страниц: [
1
]
Вверх
Отправить эту тему
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Главная категория
-----------------------------
=> Общие вопросы
=> Новые предложения
=> Дополнения, плагины
=> Сжатие трафика
=> English forum
=> Indonesian forum
-----------------------------
Гостевая
-----------------------------
=> Гостевая
-----------------------------
Дела домашние
-----------------------------
=> Сайт и форум HandyCache
=> Курилка
© 2006-2014 HandyCache Team. Все права защищены.
Загружается...