На рисунке показано окно, где вы можете проконтролировать фильтры, которые используются Proxomitron для редактирования сообщений заголовков HTTP, проходящих между вашим броузером и Internet. Нажмите на интересующую вас область, чтобы получить объяснение её функции.
Заголовки HTTP - это сообщения, посылаемые вашим браузером и серверами сети Internet всякий раз, когда вы запрашиваете страницу. Эти сообщения содержат все виды информации - некоторые необходимые, а некоторые просто информационные. Они включают, помимо прочего, печально известные "cookies", возможно вы слышали про них. Обычно эти сообщения незаметны, но используя лог-окно Proxomitron'a, вы можете увидеть о чем "разговаривают" ваш броузер и сервер сети.
Заголовки бывают двух разновидностей - заголовки запросов исходят от вашего браузера и поступают на сервер, в то время как заголовки ответов - сообщения, поступающие от сервера сети назад к вашему броузеру. Лог-окно показывает их различными цветами, зеленым и желтым соответственно. Заголовки могут размещаться любом порядке, и один и тот же заголовок может даже появляться дважды (хотя это необычно). Заголовки, которые ваш браузер или сервер сети не понимают, просто игнорируются.
Используя фильтры заголовков HTTP, вы можете добавлять, удалять или изменять эти заголовки, основываясь на их содержимом. Для измененеия или создания фильтров используется редактор фильтров заголовков HTTP.
Предупреждение: надо соблюдать осторожность при изменении заголовков HTTP - посылка неправильных данных или удаление требуемых заголовков может повредить нормальному функционированию вашего броузера.
Один из недавно добавленных фильтров заголовков обеспечивает специальную функцию. "URL-Killer:" использует новую опцию "\k", позволяющую блокировать нежелательные URL. Когда URL соответствует заданному условию, то соединение с удаленным сервером сети не будет происходить вообще. Для URL изображений Proxomitron будет возвращать "killed.gif" (по умолчанию чистый, прозрачный .gif файл) вместо первоначального изображения, для любого URL другого типа Proxomitron просто посылает содержимое файла "killed.html". И killed.gif и killed.html расположены в подкаталоге "HTML" каталога программы и могут быть изменены по вашему желанию.
Помимо URL, вы можете использовать ту же самую уловку для уничтожения элементов, основанных на другом содержимом заголовка. Content-Length: и Content-Type: часто могут быть хорошими кандидатами. Обратите внимание, что для фильтров, основанных на заголовках ответа, удаленный сервер сети должен сначала войти в контакт, чтобы получить информацию для проверки. Однако, убивая ответ можно избежать загрузки фактических данных.
Серверы Сети используют заголовок "Content-Type:", чтобы сообщить броузеру, что он загружает. Web-страница, например, является "text/html", в то время как .jpg файл будет "image/jpeg". Однако, когда сервер не знает новый или необычный тип файлов, он обычно приводит его к типу "text/plain". Вообще говоря, это плохо, поскольку броузер, полагая что читает текстовый файл, может нарушать данные, добавляя CR/LF пары там, где их быть не должно.
Proxomitron умеет назначать правильный тип содержимого к "text/plain" файлу, основываясь на расширении URL (то, что сервер сети должен был бы сделать сразу и сам). Заданный по умолчанию набор фильтров включает примеры для JavaScript, MIDI и MP3 файлов (смотрите фильтры заголовков типа "Content-Type") - используйте их как базу для добавления других типов файлов.
Далее краткий список некоторых общих заголовков HTTP и того, что они делают.
If-Modified-Since: | Содержит дату, когда ваш web-браузер последний раз загружал эту web-страницу. В основном говорит серверу сети "посылайте мне страницу, только если она была изменена с этой даты". Удаление этого заголовка заставит web-страницу полностью перезагружаться, даже если она уже есть в кэше браузера (с IE вы также должны удалить заголовок "Last-Modified"). |
Referer: | Содержит URL web-страницы, с которой вы прибыли. Из соображений безопасности, web-браузер должен предоставить вам опцию, чтобы не посылать эту информацию, но немногие броузеры делают это. Обычно его можно без опасений удалить, хотя при этом может возникнуть странный эффект на бесплатных счетчиках, которые иногда используют его, чтобы проследить, с какой web-страницы они сохраняют счет. Если фильтр задействован для исходящих сообщений, Proxomitron посылает по умолчанию свой собственный URL. |
User-Agent: | Содержит информацию о вашем web-браузере и обычно о вашей операционной системе тоже. Как правило, служит только для информации - вы можете удалить этот заголовок или даже отсылать вашу собственную информацию, если пожелаете. |
UA-... | Некоторые версии Internet Explorer посылают несколько заголовков, начинающихся с "UA-". Они содержат различную информацию о вашем компьютере и параметрах настройки. Это - нестандартные заголовки, и не преследуют никакой необходимой цели. Я рекомендую удалить их! Или еще лучше, используйте "UA-*" фильтры Proxomitron'a и пошлите назад фальшивую информацию (превосходный шанс творчески проявить себя). |
Host: | Содержит имя хоста web-страницы, с которой вы входите в контакт (например "www.somewhere.com"). Обычно используется многими серверами сети для "оказания виртуального гостеприимства", когда один и тот же сервер используется для нескольких различных сайтов. Этот заголовок можно оставить. |
Accept: | Содержит список типов файлов и изображений, которые понимает ваш браузер. Еще один заголовок, который вы обычно не должны изменять. |
Accept-Language: | Содержит список предпочитаемых языков. Предназначен для разрешения многоязычных web-страниц, которые автоматически выбирают ваш язык (хотя очень редко действительно используется для этого). Это еще один заголовок, который должен быть под контролем пользователя. В конце концов вы можете просто не захотеть, чтобы каждый знал ваш родной язык. |
Accept-Charset: | Наборы символов, которые понимает ваш браузер. Лучше всего оставить его без изменений. |
Cookie: | Возможно один из наиболее печально известных и неправильно истолкованных заголовков. Cookies содержат строки информации, посылаемой сервером сети вашему броузеру. Всё, что ваш браузер делает с ними - посылает их без изменений назад серверу. Чаще всего они содержат некоторую информацию, позволяющую впоследствии идентифицировать пользователя, но сервера узнают эту информацию уже через другие средства. Изменяя cookies, вы можете действительно запутать сервер. В зависимости от ситуации, это может быть хорошо или плохо ;-). Вы можете использовать фильтр cookies Proxomitron, чтобы блокировать все cookies или, включая URL match, посылать cookies только некоторым доверенным сайтам. |
Pragma:no-cache | Часто посылается web-браузерами при перезагрузке страниц. Это предназначено для сообщения удаленному прокси-серверу, что надо загрузить новую версию страницы (вместо копии, которая, возможно, сохранилась). Используется Proxomitron'ом для определения нажатия кнопки "перезагрузки" броузера. |
Server: | Содержит имя и версию сервера сети. Просто для информации и не используется вашим броузером. Вариант, обратный заголовку "User-Agent". |
Cache-control: | Устанавливает, как страницы будут сохранены в кэше вашего броузера. Значение "Private" обозначает, что содержание не должно быть сохранено, в то время как "max-age" показывает, как долго страница должна сохраняться (подобно дате " Употребить до..." на пакете молока;-). |
Pragma:no-cache | В ответе это означает, что ваш web-браузер не должен хранить страницу в кэше. Часто используется для временных web-страниц, вроде результатов поискового сервера. |
Expires: | Другой заголовок, используемый кэшем вашего броузера. Содержит дату, когда содержание web-страницы вероятно изменится. Обычно это только предположения. |
Date: | Версия сервера сети относительно текущей даты и времени. |
Last-Modified: | Дата и время последнего изменения web-страницы. Также используется кэшем вашего браузера. Для более ранних версий Internet Explorer, вам, вероятно, придется удалять этот заголовок наряду с "If-Modified-Since", чтобы вынудить браузер всегда перезагружать web-страницу. |
Content-Type: | Содержит тип данных, посылаемых сервером, например "text/html" используется для web-страниц, а "image/gif" для .GIF файлов. |
Accept-Ranges: | Часть HTTP 1.1 - "Bytes" показывают, что сервер поддерживает поиск произвольных разделов файла. Используется утилитами загрузки, чтобы продолжить прерванную передачу файла. |
ETag: | Немного похоже на контрольную сумму (но только очень немного). Содержит строку, которая, как предполагается, изменяется каждый раз, когда web-страница модифицирована. Строка не имеет никакого другого реального значения. Еще что-то, что используется кэшем вашего браузера. |
Connection: | Другой заголовок HTTP 1.1 - "close" указывает что через это подключение больше не будет передано данных (как всегда имело место в HTTP 1.0). HTTP 1.1 поддерживает идею относительно "постоянных подключений", где одно и то же подключение "используется многократно", чтобы послать несколько элементов. Предпологалось, что это будет лучше, но если вы спросите меня, то это главным образом приносит пользу серверу (уменьшая нагрузку), а не человеку, просматривающему web-страницу - так как элементы страниц грузятся последовательно, а не параллельно. |
Content-Location: | URL, откуда пришли данные - не всегда подарок. |
Location: | Используется системами переадресации URL, чтобы автоматически отправить браузер на новое местоположение. Это не то же самое, что Content-Location. |
Content-Length: | Длина в байтах web-страницы или посылаемого файла. |
Set-cookie: | Запрос к вашему броузеру на сохранение информации, содержащейся этом заголовке и посылку ее назад при соединении в следующий раз, когда вы посещаете web-страницу. Удалите этот заголовок - и ваш броузер никогда не будет получать никаких cookies. В фильтре Set-Cookie может использоваться URL match, чтобы принимать cookies с определенных сайтов. |