- •Основные протоколы TCP/IP
- •Протоколы прикладного
- •Технология World Wide Web
- •Технология World Wide Web
- •Системы адресации и именования ресурсов в WWW пространстве
- •Системы адресации и именования ресурсов в WWW пространстве
- •Системы адресации и именования ресурсов в WWW пространстве
- •Hyper Text Transfer
- •Протокол передачи гипертекста
- •Структура HTTP
- •Стартовая строка
- •Методы HTTP
- •Методы HTTP
- •Методы HTTP
- •Коды состояния HTTP
- •Заголовки HTTP
- •Заголовки HTTP
- •Заголовки HTTP
- •Заголовки HTTP
- •Особенности HTTP
Стартовая строка
ЗАПРОС <Метод> <URI> HTTP/<Версия>
Метод – последовательность из любых символов кроме управляющих и разделителей, указывающая на основную операцию над ресурсом Версия – пара разделённых точкой арабских цифр. Например: 1.0.
ОТВЕТ
HTTP/<Версия> <КодСостояния> <Пояснение>
Версия – пара разделённых точкой арабских цифр. КодСостояния – определяет дальнейшее содержимое сообщения и поведение клиента.
Пояснение – текстовое короткое пояснение к коду состояния. Никак не влияет на сообщение и является необязательным.
Методы HTTP
OPTIONS
Определение возможностей веб-сервера или параметров соединения для конкретного ресурса. Проверка работоспособности сервера.
GET
Запрос содержимого указанного ресурса.
Клиент может передавать параметры выполнения запроса в URI целевого ресурса после символа «?»:
GET /path/resource?param1=value1¶m2=value2 HTTP/1.1
HEAD
Запрос заголовка указанного ресурса.
Методы HTTP
POST
Передача пользовательских данных заданному ресурсу. Передаваемые данные включаются в тело запроса.
PUT
Загрузка содержимого запроса на указанный в запросе ресурс.
PATCH
Аналогично PUT, но применяется только к фрагменту ресурса.
DELETE
Удаляют указанный ресурс.
Методы HTTP
TRACE
Возвращает полученный запрос так, что клиент может увидеть, что промежуточные сервера добавляют или изменяют в запросе.
CONNECT
Для использования вместе с прокси-серверами, которые могут динамически переключаться в туннельный режим SSL.
LINK
Устанавливает связь указанного ресурса с другими.
UNLINK
Убирает связь указанного ресурса с другими.
Коды состояния HTTP
1xx Informational - информация о процессе передачи.
2xx Success - информирование о случаях успешного принятия и обработки запроса клиента. В зависимости от статуса сервер может ещё передать заголовки и тело сообщения.
3xx Redirection - сообщают клиенту что для успешного выполнения операции нужно произвести следующий запрос к другому URI.
4xx Client Error - указание ошибок со стороны клиента.
5xx Server Error - случаи неудачного выполнения операции по вине сервера. Для всех ситуаций, кроме использования метода HEAD, сервер должен включать в тело сообщения объяснение, которое клиент отобразит пользователю.
Заголовки HTTP
General Headers (Основные заголовки) — должны включаться в любое сообщение клиента и сервера.
Cache-Control – управление кэшированием запросов/ответов Connection – управление соединением
Date – текущие время и дата
Pragma – пользовательские директивы Transfer-Encoding – схема кодирования HTTP-сообщения Upgrade – возможность смены версии протокола
Заголовки HTTP
Request Headers (Заголовки запроса) — используются только в запросах клиента.
Accept – ограничение типа принимаемых данных Accept-Charset – ограничение кодировки Accept-Encoding – ограничение систем кодирования Accept-Language – языковые ограничения Authorization – информация для авторизации
From – e-mail владельца веб-клиента, отправившего данный запрос
Host – адрес запрашиваемого ресурса User-Agent – информация о клиентском ПО If-Match – проверка на совпадение сущностей
Заголовки HTTP
Response Headers (Заголовки ответа) — только для ответов от сервера.
Accept-Ranges – частичный запрос ресурса Age – время (сек) после получения ответа ETag – идентификация сущности
Location - URI перенаправления запроса Proxy-Authenticate – схема и параметры аутенфикации
для прокси-сервера
Retry-After – время ожидания перед повторным запросом Server – информация о серверном ПО
Заголовки HTTP
Entity Headers (Заголовки сущности) — сопровождают каждое сообщение – представляют информацию, передаваемую в виде вложения в запрос или ответ.
Allow – список поддерживаемых сервисов сервера Content-Encoding – указание кодировки содержимого Content-Language – язык содержимого Content-Length – длина содержимого в байтах Content-Location – относительный URI
Content-MD5 - ключ алгоритма шифрования Content-Range – диапазоны фрагментов содержимого Content-Type – тип содержимого (MIME)
Expires – дата и время истечения «срока годности» ответа Last-Modified – дата и время последнего изменения
Особенности HTTP
HTTP устанавливает отдельную TCP-сессию на каждый запрос. В более поздних версиях HTTP было разрешено делать несколько запросов в ходе одной TCP-сессии, но браузеры обычно запрашивают только страницу и включённые в неё объекты (картинки, каскадные стили и т. п.), а затем сразу разрывают TCP-сессию.
Позволяет однозначно определить тип передаваемых данных (Content-Type: тип/подтип)
Возможность обратной связи c ресурсом на сервере (формы HTML)
