Существуют и другие методы, но на практике они практически не используются.

URI (Uniform Resource Identifiers) – универсальный идентификатор ресурса, в HTTP используется его частный вид — URL (Uniform Resource Locators), универсальный указатель ресурса. Он имеет вид:

http: // host [ : port ] [ path ]

host – доменное имя (или IP адрес) WEB сервера; если номер порта не указан, предполагается порт 80.

path — путь к ресурсу (информация о месте ресурса на сервере).

В URL также могут использоваться дополнительные параметры, описанные в RFC 1738.

Если ресурс – просто какой-либо файл для считывания, сервер должен по этому запросу выдать его в теле ответа. Если же это путь к какому-либо CGI-скрипту, то сервер запускает скрипт и возвращает результат его выполнения. Кстати, благодаря такой унификации ресурсов для клиента практически безразлично, что он представляет собой на сервере.

Версия в настоящее время может принимать значения HTTP/1.0 или HTTP/1.1.

Заголовки запроса HTTP

Заголовки запроса могут фигурировать только в запросах. В последней версии протокола HTTP/1.1 двадцать заголовков запроса. Заголовки имеют формат:

Параметр: значение.

Для простоты восприятия удобно разбить заголовки запроса на четыре класса:

1. Предпочтения в ответе

Accept Предпочтительные типы содержимого

Accept-Charset Предпочтительные наборы символов

Accept-Encoding Предпочтительный метод кодирования содержимого

Accept-Language Предпочтительные языки

ТЕ Предпочтительные схемы кодирования при передаче

НЕ нашли? Не то? Что вы ищете?

2. Информация, передаваемая вместе с запросом

Authorization Полномочия пользователя (логин/пароль)

From Адрес электронной почты пользователя

Referer URI, от которого получен URI запроса

User-Agent Информация о клиентском браузере

Proxy-Authorization Авторизация клиента прокси-сервером

Cookie Содержимое, хранящееся на стороне клиента

3. Условные запросы

If-Modified-Since Сравнение с временем последнего изменения

If-Match Сравнение на равенство идентификатора содержимого

If-None-Match Сравнение на неравенство идентификатора содержимого

If-Unmodified-Since Сравнение с временем последнего изменения

If-Range Отправить диапазон, только если содержимое изменено

4. Ограничения, накладываемые на сервер

Host Хост(домен) запрошенного ресурса

Expect Реакция сервера, ожидаемая клиентом

Max-Forwards Допустимое число прокси-серверов при передаче данных

Range Запрос диапазона содержимого

Например:

Accept – список поддерживаемых браузером типов содержимого в порядке их предпочтения данным браузером :

Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd. ms-excel, application/msword, application/vnd. ms-powerpoint, */*

Полный перечень значений параметров для каждого заголовка приведен в RFC 2616 [6]

HTTP ответ

Начальная строка ответа называется <Status-line> - Строка статуса.

Далее могут следовать заголовки ответа и тело ответа.

Строка статуса имеет следующий формат:

Формат: <HTTP-VERSION> <Status-Code> <Reason-Phrase>

или

<Версия><Код><Пояснение>

Версия в настоящее время может принимать значения HTTP/1.0 или HTTP/1.1.

Код — возвращаемый код состояния и Пояснение.

Элемент код состояния (Status-Code) - это целочисленный трехразрядный код результата понимания и удовлетворения запроса.

Пояснение

(Reason-Phrase) предназначено для короткого текстового описания кода состояния. Код состояния (Status-Code) предназначен для использования автоматами, а поясняющая фраза предназначена для живых пользователей. От клиента не требуется исследовать или отображать поясняющую фразу (Reason-Phrase).

Первая цифра кода состояния определяет класс ответа. Последние две цифры не имеют определенной роли в классификации. Имеется 5 значений первой цифры:

1xx: Информационные коды – запрос получен, продолжается обработка.

2xx: Успешные коды – действие было успешно получено, понято и обработано.

3xx: Коды перенаправления – для выполнения запроса должны быть предприняты дальнейшие действия.

4xx: Коды ошибок клиента – запрос имеет плохой синтаксис или не может быть выполнен.

5xx: Коды ошибок сервера – сервер не в состоянии выполнить допустимый запрос.

Заголовки ответа HTTP

Заголовки ответа могут фигурировать только в сообщениях-ответах. В последней версии протокола HTTP/1.1 тринадцать заголовков ответа. Заголовки имеют формат:

Параметр: значение.

Для простоты восприятия удобно разбить заголовки ответа на четыре класса:

Заголовок Краткое описание

1. Переадресация

Location Переадресация на указанный URL

2. Дополнительная информация

Server Идентификация сервера

Retry-After Величина задержки перед повторной попыткой запроса

Accept-Ranges Частичный запрос

Alternates Альтернативные способы представления ресурса

Set-Cookie Содержимое Сookies для записи на стороне клиента

Public Список доступных методов для всего сервера

Keep-Alive Поддержание TCP соединения

3. Безопасность

www-Authenticate Запрос информации для аутентификации

Proxy-Authenticate Запрос информации для аутентификации прокси-сервером

4. Кэширование

ETag Проверка непрозрачности

Age Время с момента создания ответа

Vary Выбор варианта ресурса

Полный перечень значений параметров для каждого заголовка приведен в RFC 2616 [ 6]

Кроме описанных заголовков запросов и ответов существуют так называемые общие заголовки, они могут идти до заголовков запросов и ответови применяются как для сообщений запросов, так и для сообщений ответов. Эти поля заголовка применяются только к передаваемому сообщению, то есть могут присутствовать только при наличии тела сообщения.

Общие заголовки

Date Дата/время создания сообщения

Pragma Директива сообщения

Cache-Control Директива кэширования

Connection Упр-е соединением при промежуточных передачах

Trailer Список заголовков в конце сообщения

Transfer-Encoding Преобразование тела сообщения

Upgrade Переход на другие протоколы

Via Информация о промежуточных серверах

Warning Уведомление об ошибке

Полный перечень значений параметров для каждого заголовка приведен в RFC 2616 [6].

Сообщения запросов и ответов могут передать тело сообщения (объект), если иное не установлено методом запроса или кодом состояния ответа. Объект состоит из полей заголовка объекта (entity-header) и тела объекта (entity-body), хотя некоторые ответы могут включать только заголовки объекта (entity-headers).

Заголовки объекта

Allow Методы, применимые к ресурсу

Content-Encoding Кодирование содержания, примененное к телу содержимого

Content-Length Длина тела содержимого

Content-Type Тип тела содержимого

Expires Продолжительность актуальности тела содержимого

Last-Modified Время последней модификации ресурса

Content-Language Язык содержимого

Content-Location Альтернативный адрес ресурса

Content-Range Положение диапазона в теле содержимого

Например,

Content-Type ("тип содержимого") – содержит обозначение типа содержимого ответа.

В зависимости от значения Content-Type браузер воспринимает ответ как HTML-страницу, картинку gif или jpeg, как файл, который надо сохранить на диске, или как что-либо еще и предпринимает соответствующие действия. Значение Content-Type для браузера аналогично значению расширения файла для Windows.

Некоторые типы содержимого:

text/html - текст в формате HTML (веб-страница);

text/plain - простой текст;

image/jpeg - картинка в формате JPEG;

image/gif - то же, в формате GIF;

application/octet-stream - поток "октетов" (т. е. просто байт) для записи на диск.

Полный перечень значений параметров для каждого заголовка приведен в RFC 2616 [6].

Все указанные особенности протокола HTTP (методы, заголовки и их значения, URL) можно использовать для «тонкой» фильтрации трафика протокола HTTP. Это требует точного понимания подробностей и тонкостей использования HTTP при сетевом взаимодействии и может быть достигнуто только практическим исследованием реального HTTP трафика.

Нужно отметить, что в современных сетях роль протокола HTTP шире, чем просто обеспечение получения информации с WEB серверов. На его базе работают так называемые WEB службы (Web Services - WS), используя HTTP как транспорт для передачи своих сообщений (например SOAP - Simple Object Access Protocol чаще всего используется поверх HTTP).

При решении практических задач разграничения доступа (фильтрации) WEB трафика следует учитывать и особенности «внутреннего» содержание передаваемой информации от сервера клиенту, в частности HTML конструкций, JavaScript, Java-апплетов, управляющих элементов ActiveX, flash-файлов и пр., то есть всего того, что используется при создании WEB страниц.

1.2.1.2 FTP — протокол передачи файлов

FTP (File Transfer Protocol) – (RFC-959) – один из старейших протоколов прикладного уровня, остаётся практически неизменным с 1985г. Он использует в качестве транспортного протокол TCP и работает по традиционной технологии клиент — сервер. Программа - клиент позволяет подключиться к удалённому серверу, просматривать оглавление каталогов, загружать файлы с сервера или на сервер, в зависимости от наличия прав выполнять дополнительные действия на сервере (удалять и создавать каталоги, файлы).

Протокол FTP обеспечивает вход на сервер с авторизацией, то есть запрашивается логин и пароль. После аутентификации сервер разрешает доступ к своей файловой системе с заранее определёнными правами доступа. Естественно, что на сервере должна быть заранее создана соответствующая учётная запись.

Анонимный FTP (anonymous FTP) – это вариант обычного FTP с той разницей, что он не требует идентификации пользователя. Это прекрасный способ для предоставления доступа к файловому серверу заранее неизвестным (анонимным) пользователям. В этом случае сервер настраивается так, что в качестве логина нужно указать слово anonymous (или ftp), а в качестве пароля – адрес электронной почты. Пароль не проверяется, а просто записывается в файл протокола доступа. Пользователь anonymous не имеет никаких прав на сервере, кроме чтения файлов из строго определенных каталогов.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13