Перехват и использование локальных файлов в запросах http - PullRequest
19 голосов
/ 27 января 2011

Я пытаюсь найти инструмент, который позволит непрограммистам тестировать файлы на работающем сервере.

Например, они могут изменить изображение на своем компьютере, перезагрузить веб-страницу, а затем увидетьрезультаты их работы немедленно.

Я пытался найти инструмент для этого, потому что кажется достаточно очевидным, что кто-то должен был подумать об этом, но многие программы, которые я вижу, не совсем подходят.Инструмент под названием Fiddler делает это (они называют это автоответчиком), но это только для Windows.Я мог бы изменить файл hosts для перенаправления на локальный экземпляр nginx или чего-то еще, но это кажется трудным в обслуживании, когда все, что мне действительно нужно, это простой инструмент, который будет что-то вроде этого ...

http://someserver.com/css/(.*) -> / home / user / localcss / $ 1

У кого-нибудь есть какие-либо рекомендации?

Редактировать : Уточнение перенаправления

Ответы [ 5 ]

23 голосов
/ 11 августа 2011

Скрипач имеет эту функцию; просто перейдите на вкладку AutoResponder и сопоставьте URL-адреса с локальными файлами. Тысячи людей делают это каждый день.

Смотрите также видео № 5 здесь: http://www.fiddlerbook.com/fiddler/help/video/default.asp

8 голосов
/ 11 августа 2011

Я нашел Чарльз Прокси очень полезным для этого http://www.charlesproxy.com/documentation/tools/map-local/

4 голосов
/ 06 марта 2016

Решение PAC Макса спасло мне жизнь, поэтому я предоставляю больше подробностей (пока не могу проголосовать)

Чтобы использовать локальную версию, скажем, файлов CSS, создайте прокси-файл для файла.pac ', который содержит эту функцию:

function FindProxyForURL(url, host)
{
    // use regex to match requests ending with '.css'
    // and redirect them to localhost
    var regexpr = /.**\.css/;
    if(regexpr.test(url))
    {
        return "PROXY localhost";
    }

    // Or else connect directly:
    return "DIRECT";
}

Сохраните' proxy.pac 'и укажите свой браузер на этот файл.В Firefox это находится в меню «Параметры»> «Дополнительно»> «Соединение»> «Настройки»> «URL-адрес автоматической настройки прокси»

. Для лучшей практики также добавьте тип MIME на свой веб-сервер: сопоставьте «.pac» типу «application / x-ns»-proxy-autoconfig '.

Все запросы к файлам .css теперь будут перенаправляться на localhost.Не забудьте убедиться, что файловая структура на прокси-сервере одинакова.

В случае с CSS может быть проще переопределить CSS с помощью локального хрома.Например, в Firefox, chrome / userContent.css.Смотри http://kb.mozillazine.org/UserContent.css

1 голос
/ 11 декабря 2014

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

PAC-файлы поддерживаются всеми основными браузерами и позволяют вам написать скрипт, который может перенаправлять любой отдельный запрос на прокси-сервер. Так, например, прокси-сервер может обслуживать PAC-файл, перенаправлять URL-адреса из белого списка на прокси-сервер и возвращать локальные версии этих файлов. Он даже может поддерживать HTTPS.

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

0 голосов
/ 27 января 2011

На самом деле вы не можете сделать это, потому что браузеры не позволяют файлам через http: // получать доступ к файлу на локальном компьютере (просто подумайте об этом ... Что произойдет, если, например, вредоносная веб-страницазагружает некоторые личные файлы с вашего компьютера?).
Некоторые браузеры (например, Safari) разрешают файлам через file: // доступ к другим файлам: // файлам, другим нет, но ни один браузер не позволяет http: // получить доступfile: //.

Firefox имеет функцию под названием «Подписанные сценарии» , которая представляет собой сценарии с цифровой подписью доверенным сертификатом.Они могут попросить пользователя предоставить им доступ к локальному жесткому диску.Посмотрите на это: http://www.mozilla.org/projects/security/components/signed-scripts.html

Вы имеете в виду Fiddler Web Proxy (www.fiddler2.com)?Существует коммерческая альтернатива на основе Java под названием Charles Web Proxy, которая может соответствовать вашим потребностям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...