Вы находитесь на странице: 1из 13

HTTP

https://www.w3.org/Protocols/rfc2616/rfc2616.html

https://ru.wikipedia.org/wiki/HTTP
Определение
• HTTP (HyperText Transfer Protocol — протокол
передачи гипертекста) — символьно-
ориентированный клиент-серверный протокол
прикладного уровня без сохранения состояния,
используемый World Wide Web.
• Основой HTTP является технология «клиент-
сервер», то есть клиенты инициируют
соединение и посылают запрос, а серверы
ожидают соединения для получения запроса,
производят необходимые действия и
возвращают обратно сообщение с результатом.
Свойства протокола
• текстовый протокол
• не имеет состояния (stateless)
• данные при передачи не шифруются
• основан на концепции запросов (request) и
ответов (response)
Uniform Resource Identifier
• Основным объектом манипуляции в HTTP
является ресурс, на который указывает URI
(Uniform Resource Identifier – уникальный
идентификатор ресурса) в запросе клиента.

jdbc:postgresql://localhost:5432/test?user=fred&password=secret&ssl=true
Структура протокола
• Стартовая строка (англ. Starting line) —
определяет тип сообщения;
• Заголовки (англ. Headers) — характеризуют тело
сообщения, параметры передачи и прочие
сведения;
• Тело сообщения (англ. Message Body) —
непосредственно данные сообщения.
Обязательно должно отделяться от заголовков
пустой строкой.
Стартовая строка HTTP
• Cтартовая строка является обязательным элементом, так
как указывает на тип запроса/ответа, заголовки и тело
сообщения могут отсутствовать.

• Стартовая строка запроса выглядит так:


Метод URI HTTP/Версия протокола
Например: GET /index.html HTTP/1.1

• Стартовая строка ответа сервера имеет следующий


формат:
HTTP/Версия КодСостояния [Пояснение]
Например: HTTP/1.1 200 Ok
Методы запроса
• GET: получить доступ на чтение к существующему ресурсу.
• POST: используется для создания нового ресурса.
• PUT: обновить текущий ресурс.
• DELETE: служит для удаления существующего ресурса.
• PATCH: Аналогично PUT, но применяется только к фрагменту
ресурса.
• HEAD: аналогичен GET, но без тела сообщения.
• TRACE: Возвращает полученный запрос так, что клиент может
увидеть, что промежуточные сервера добавляют или изменяют в
запросе.
• OPTIONS: используется для определения возможностей сервера,
его параметров и конфигурации для конкретного ресурса.
https://ru.wikipedia.org/wiki/HTTP#.D0.9C.D0.B5.D1.82.D0.BE.D0.B4.D1.8B
Коды состояния
Группа кодов Примеры
1xx Informational 100 Continue (Продолжать)
(Информационный) 101 Switching Protocols (Переключение протоколов)
102 Processing (Идёт обработка)
2xx Success (Успешно) 200 OK (Успешно)
201 Created (Создано)
202 Accepted (Принято)
3xx Redirection 301 Moved Permanently (Перемещено навсегда)
(Перенаправление) 304 Not Modified (Не изменялось)
4xx Client Error 401 Unauthorized (Неавторизован)
(Ошибка клиента) 403 Forbidden (Запрещено)
404 Not Found (Не найдено)
5xx Server Error 500 Internal Server Error (Внутренняя ошибка сервера)
(Ошибка сервера) 502 Bad Gateway (Плохой шлюз)
503 Service Unavailable (Сервис недоступен)

Полный список кодов состояния HTTP


Заголовки HTTP
Группа заголовков Описание
General Headers должны включаться в любое сообщение клиента и сервера:
(Основные заголовки) Cache-Control:
Connection:
Date:
Request Headers используются только в запросах клиента:
(Заголовки запроса) User-Agent:
Host:
Accept-Language:
Accept:
Response Headers присутствуют только в ответах сервера:
(Заголовки ответа) Location:
Server:
Entity Headers сопровождают каждую сущность сообщения:
(Заголовки сущности) Content-Length:
Content-Type:

Список заголовков HTTP


Заголовки HTTP (Пример)
Тело сообщения HTTP
Версии протоколов

Версия
HTTP/0.9 (март 1991)
HTTP/1.0 (май 1996)
HTTP/1.1 (июнь 1999)
HTTP/2 (февраль 2015)

https://ru.wikipedia.org/wiki/HTTP

https://ru.wikipedia.org/wiki/HTTP/2
Домашнее задание
Проанализировать стартовые строки, HTTP
заголовки и тела запросов для следующих
ресурсов:

https://devstudy-net.github.io/http-study/index.html
https://vkontakte.ru/
https://www.fb.com/