+  HandyCache форум
|-+  Главная категория» Общие вопросы» Кодирование URL запроса
Имя пользователя:
Пароль:
Страниц: [1]   Вниз
  Отправить эту тему    Печать  
Автор Тема: Кодирование URL запроса  (Прочитано 2300 раз)
0 Пользователей и 1 Гость смотрят эту тему.
olDjeka
Постоялец
***

Репутация: +6/-0
Offline Offline

Сообщений: 117


« : 18 апреля 2014, 08:50:08 »

Некоторые сервера (и их немало) не понимают "недопустимые" символы в URL, и это не позволяет загрузить их из монитора HC (или клиента не кодирующего их).
Предлагаю кодировать такие символы в запросе (в смысле только в строке заголовка типа GET, POST и т.д.), не затрагивая URL видимый и копируемый в мониторе.

Пример подобной проблемы:

При загрузке страницы "большая" картинка блокируется, при этом запрос картинки из браузера выглядит так:

Код:
18.04.14 03:54:20,233 # 22/302 >>> URL: http://ves-fundament.ru/wp-content/uploads/2013/05/как-залить-фундамент-плиту.jpg
GET /wp-content/uploads/2013/05/%D0%BA%D0%B0%D0%BA-%D0%B7%D0%B0%D0%BB%D0%B8%D1%82%D1%8C-%D1%84%D1%83%D0%BD%D0%B4%D0%B0%D0%BC%D0%B5%D0%BD%D1%82-%D0%BF%D0%BB%D0%B8%D1%82%D1%83.jpg HTTP/1.1
Host: ves-fundament.ru
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.28) Gecko/20120306 Firefox/3.6.28 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive

Решаю загрузить картинку из HC, но запрос из монитора уже другой:

Код:
18.04.14 05:43:31,073 # 237/528 >>> URL: http://ves-fundament.ru/wp-content/uploads/2013/05/как-залить-фундамент-плиту.jpg
GET /wp-content/uploads/2013/05/как-залить-фундамент-плиту.jpg HTTP/1.1
Accept: */*
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
Host: ves-fundament.ru
Accept-Encoding: gzip,deflate
Connection: close

и сервер отвечает "404 Not Found".
Сообщить модератору   Записан
olDjeka
Постоялец
***

Репутация: +6/-0
Offline Offline

Сообщений: 117


« Ответ #1 : 20 мая 2014, 16:01:45 »

Не смог найти где бы описавалось декодирование 3-х байтных символов (UTF-8) в URL, но факт на лицо:
даже на странице описания URL в Wiki есть ссылки с такими символами (предпоследняя в левом меню)
Код:
<li class="interlanguage-link interwiki-zh"><a href="//zh.wikipedia.org/wiki/%E7%BB%9F%E4%B8%80%E8%B5%84%E6%BA%90%E5%AE%9A%E4%BD%8D%E7%AC%A6" title="统一资源定位符 — китайский" hreflang="zh" lang="zh">中文</a></li>

Обратил на это внимание после перехода со страницы поиска гугла, которая перенаправила FF по адресу http://www.helpbios.ru/power-management-%E2%80%93-acpi/
FF декодировал URL в UTF-8, и показал ссылку http://www.helpbios.ru/power-management-–-acpi/
HC тоже декодировал её, но в язык локали Windows http://www.helpbios.ru/power-management-–-acpi/
и сохранил в папку power-management-–-acpi.
При этом опция HC "Декодировать URL на язык локали Windows" была отключена, и (как и задано) на URL из 2-х байтных символов (UTF-8) не воздействовала. Считаю, что в этом случае HC не должен декодировать и 3-х байтные символы (UTF-8).

P.S. HC гарантированно получал закодированный URL - проверялось связкой FF -> Proxomitron -> HC.
Возможно в свежей версии HC уже исправлено, но для HC v1.510 было актуально.

* HC-utf.log (3.12 Кб - загружено 20 раз.)
Сообщить модератору   Записан
Страниц: [1]   Вверх
  Отправить эту тему    Печать  

 
Перейти в: