Моя визитка Урок 1. Хакинг Урок 2. Антихакинг Урок 3. Инструменты хакинга Урок 4. Защита Windows 2000/XP Урок 5. Проникновение в систему Урок 6. Реализация цели вторжения Урок 7. Сокрытие следов Урок 8. Хакинг браузеров Web Урок 9. Хакинг почтовых клиентов Урок 10. Деструкция почтового клиента Урок 11. Хакинг Web-сайтов Урок 12. Атаки DoS Урок 13. Хакинг компьютеров Windows 2000/XP Урок 14. Хакинг средств удаленного управления Урок 15. Хакинг брандмауэров Урок 16. Перехват сетевых данных Урок 17. Хакинг коммутируемого доступа Приложение А Приложение В Приложение С Приложение D Приложение E |
ПРИЛОЖЕНИЕ СОбщая структура сообщения HTTPЗапросное сообщение HTTP Протокол HTTPВсе информационные ресурсы Интернета организованы в виде гипертекстовой информационной системы, более известной как сеть Web, хранящей документы HTML, связанные между собой гиперссылками. Для взаимодействия клиентских компьютеров с серверами Web используется протокол HTTP (Hypertext Transfer Protocol - Протокол передачи гипертекстовых файлов). Протокол HTTP обеспечивает загрузку на клиентский компьютер документа по указанному адресу и переходы на другие документы по гиперссылкам. В настоящее время применяется версия HTTP 1.1 этого протокола (определенная стандартом RFC 2616, который можно найти в Интернете по адресу http://www.ietf.org/rfc/rfc2616.txt) и подготавливается новая версия HTTP 1.2. Обсудим основные - принципа сетевого взаимодействия, определяемые протоколом HTTP 1.1. Общая структура сообщения HTTPВзаимодействие клиентского компьютера с сервером Web протекает следующим образом. Пользователь указывает браузеру адрес нужного ему документа Web, браузер посылает серверу запрос, на который он через какое-то время получает ответ и отображает его пользователю. Протокол HTTP определяет структуру данных, передаваемых серверу (запрос) и получаемых с сервера (ответ, или ответное сообщение). Эти сообщения представляют собой последовательности байтов двоичного кода, называемых потоками, путешествующими от сервера к клиенту и обратно. И запрос, и ответ имеют одинаковую структуру, или формат этих потоков информации. Формат запроса (ответа) определяется стандартом RFC 822. Сообщения HTTP 1.1 состоят из начальной строки, совокупности полей заголовков, разделенных символами возврата каретки (CR) и перевода строки (LF) - CRLF, и необязательного тела сообщения. Начальные строки в запросных и ответных сообщениях различаются между собой. В запросных сообщениях начальная строка включает в себя метод обработки ресурса, запрашиваемого по указанному далее в строке адресу ресурса, а также номер версии протокола HTTP. В ответных сообщениях начальная строка играет роль строки состояния, содержащей трехзначный числовой код, фиксирующий итог выполнения запроса. Каждая цифра этого кода означает определенное состояние процесса выполнения запроса; например, значение строки состояния 200 означает успешное выполнение запроса, 402 -указывает на необходимость оплаты за загрузку ресурса, и т.д. Тело сообщения содержит те сведения, которые, собственно, и передаются в сообщении (например, документ HTML). Заголовки сообщений являются полями данных, также называемых полями заголовков. Они состоят из имени поля (состоящего из набора букв, причем регистр букв не учитывается) и необязательного значения поля, разделенных символом двоеточия (:). Заголовок сообщения=Имя_ поля ":" [Значение поля] Назначение полей заголовков в запросных и ответных сообщениях различно, но все они подразделяются на общие заголовки, заголовки ответов, заголовки запросов и информационные заголовки. • Общие заголовки содержат информацию, одинаково применимую как в запросах, так и ответах, например, дату запроса или параметры соединения. • Заголовки запросов передают серверу дополнительную информацию о клиенте, например, его идентификационные данные, требуемые для доступа к запрашиваемому ресурсу. • Заголовки ответов, наоборот, передают клиенту информацию о сервере, например, информацию о программе (включая ее название и краткое описание), используемой для обработки запроса. • Информационные заголовки включают сведения о самой информации, передаваемой в запросе или ответе. Заголовки первых трех типов рассмотрены в разделе «Запросное сообщение HTTP», где будет обсуждаться работа с формами, а сейчас обратим внимание на информационные заголовки, которые непосредственным образом определяют характер содержимого документа HTML, т.е. содержат метаданные о документе. Вот список этих заголовков (табл. 1).
В дополнение к заголовкам в табл. С.1 информационные заголовки могут быть пополнены другими заголовками, что не требует внесения изменений в протокол (хотя дополнительные заголовки не обязаны распознаваться всеми программами обработки документов HTML). Чтобы включить в ответное сообщение, посылаемое на запрос документа HTML, информационный заголовок HTTP, авторы могут воспользоваться элементом МЕТА, языка HTML. Запросное сообщение HTTPЗапросное сообщение HTTP имеет ту же самую структуру, что и ответное (см. выше), за исключением начальной строки. Эта строка в случае запросных сообщений называется строкой запроса, и она имеет такой вид. Строка запроса=Метод SP Запрашиваемый_адрес_URL SP Версия_протокола_НТТР CRLP Здесь SP - это символ пробела ASCII (код 32), Метод - это название метода HTTP, который должен быть применен к ресурсу, указанному запрашиваемым адресом URL, a CRLF - это код возврата каретки (CR) и перевода строки (LF). Набор методов запроса HTTP указан в табл. 2.
В языке HTML 4 метод HTTP, используемый для отправки формы в программу обработки, определяется атрибутом METHOD элемента FORM. Спецификация языка HTML 4, поддерживаемая организацией W3C, не определяет все допустимые способы отправки или все типы содержимого, которые могут использоваться для набора данных формы. Данная спецификация предусматривает только два значения атрибута METHOD - "get" и "post". Передача данных при этом происходит следующим образом. • Если для атрибута METHOD установлено значение "get", а для атрибута ACTION указан адрес HTTP, клиентский браузер берет значение атрибута ACTION, добавляет к нему символ "?", затем добавляет набор данных формы, закодированный с использованием типа содержимого "application/x-www-form-urlencoded". Затем браузер выполняет транзакцию GET протокола HTTP, отправляя этот адрес URL на сервер для обработки. При использовании метода GET набор данных формы ограничивается кодами ASCII. • Если для атрибута METOD установлено значение "post", а атрибут ACTION определен как адрес HTTP, клиентский браузер выполняет транзакцию POST протокола HTTP с использованием значения атрибута ACTION и сообщения, созданного в соответствии с типом содержимого, определенным атрибутом ENCTYPE. Для других значений атрибута ACTION или METHOD способ обработки набора данных формы спецификацией HTML 4 не определен. После выполнения транзакций GET и POST протокола HTTP клиентские браузеры должны представлять пользователю отклики на соответствующие транзакции. Как следует из табл. 2, метод GET следует использовать, если форма предназначена для операций, подобных поиску и извлечению данных из какого-либо источника, т.е. не предназначена для изменения данных, хранимых на сервере. Большинство операций поиска в базах данных, часто используемых на узлах Web, как раз удовлетворяют таким критериям и представляют собой идеальное приложение для метода GET. Если обработка набора данных формы связана с изменениями в данных, хранимых на сервере, например, если форма обновляет содержимое базы данных или производит подписку на услуги, следует использовать метод POST. При использовании метода GET набор данных формы должен включать только символы набора ASCII. Только при использовании метода POST с атрибутом ENCTYPE, определенным как "multipart/form-data", можно использовать весь набор символов, определенный в стандарте ISO10646. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||