Карьера аналитика
@analytics_career
Самое необходимое про протокол HTTP и его использование.
Так как мы уже знаем, что REST строится на базе HTTP, то логично было бы рассказать про этот протокол.
❕HTTP расшифровывается как HyperText Transfer Protocol, «протокол передачи гипертекста». Изначально этот протокол использовался для передачи гипертекстовых документов в формате HTML. Сегодня он используется для передачи произвольных данных.
❕В основе HTTP - клиент-серверная структура передачи данных (да-да, та самая)․ Клиент формирует запрос (request) и отправляет на сервер; на сервере запрос обрабатывается, формируется ответ (response) и передается клиенту.
❕HTTP не шифрует передаваемую информацию. Для защиты передаваемых данных используется расширение HTTPS (Hyper Text Transfer Protocol Secure), которое “упаковывает” передаваемые данные в криптографический протокол SSL или TLS.
Структура HTTP запроса
HTTP запрос состоит из трех основных частей: строка запроса (request line), заголовок (message header) и тело сообщения (entity body). Тело сообщения не является обязательным параметром (помним, что, например, GET, HEAD, DELETE не могут использовать body.
1️⃣В строке запроса указывается:
▫️Метод – название запроса (определяет действие), одно слово из стандартного списка, заглавными буквами;
▫️URI определяет путь к запрашиваемому ресурсу;
▫️Версия – пара разделённых точкой цифр. Например: 1.0.
Пример: GET /index.html HTTP /1.1
2️⃣Заголовок запроса добавляет некоторую дополнительную информацию (мета информацию) к сообщению запроса, которое состоит из пар «имя / значение», по одной паре на строку, а имя и значение разделяются двоеточием.
Пример:
Content-Type: text/html;charset=windows-1251
Allow: GET
Content-Length: 2056
Как самый стандартный вариант использования заголовка - передача token'а в нем, для подтверждения того, что клиент имеет доступ на использование соответствующего микросервиса, допустим.
3️⃣Последней частью запроса является его тело. В теле запроса как правило лежит какой-нибудь JSON с необходимой для работы метода информацией (но тут может быть и XML - в этом плане есть полная универсальность).
Это что касается запроса. Но на запрос должен прийти еще и ответ.
Структура HTTP ответа
1️⃣Строка статуса (Status line)
Стартовая строка ответа HTTP, называемая строкой статуса, содержит следующую информацию:
▫️Версию протокола, обычно HTTP/1.1.
▫️Код состояния (status code), показывающая, был ли запрос успешным. Примеры: 200, 404 или 302
▫️Пояснение (status text). Краткое текстовое описание кода состояния, помогающее пользователю понять сообщение HTTP.
Пример строки статуса: HTTP/1.1 404 Not Found.
2️⃣Заголовок ответа HTTP имеет такую же структуру, как и заголовок запроса
Как пример использования - вернуть идентификатор созданного ресурса после вызова метода POST, обычно это делается в заголовке.
3️⃣Тело ответа.
Последней частью ответа является его тело. Оно есть не у всех ответов: у ответов с кодом состояния, например, 201 или 204, оно обычно отсутствует.
Тут также аналогично телу запроса - обычно возвращается JSON с необходимой для вызывающей стороны информацией.
Так как мы уже знаем, что REST строится на базе HTTP, то логично было бы рассказать про этот протокол.
❕HTTP расшифровывается как HyperText Transfer Protocol, «протокол передачи гипертекста». Изначально этот протокол использовался для передачи гипертекстовых документов в формате HTML. Сегодня он используется для передачи произвольных данных.
❕В основе HTTP - клиент-серверная структура передачи данных (да-да, та самая)․ Клиент формирует запрос (request) и отправляет на сервер; на сервере запрос обрабатывается, формируется ответ (response) и передается клиенту.
❕HTTP не шифрует передаваемую информацию. Для защиты передаваемых данных используется расширение HTTPS (Hyper Text Transfer Protocol Secure), которое “упаковывает” передаваемые данные в криптографический протокол SSL или TLS.
Структура HTTP запроса
HTTP запрос состоит из трех основных частей: строка запроса (request line), заголовок (message header) и тело сообщения (entity body). Тело сообщения не является обязательным параметром (помним, что, например, GET, HEAD, DELETE не могут использовать body.
1️⃣В строке запроса указывается:
▫️Метод – название запроса (определяет действие), одно слово из стандартного списка, заглавными буквами;
▫️URI определяет путь к запрашиваемому ресурсу;
▫️Версия – пара разделённых точкой цифр. Например: 1.0.
Пример: GET /index.html HTTP /1.1
2️⃣Заголовок запроса добавляет некоторую дополнительную информацию (мета информацию) к сообщению запроса, которое состоит из пар «имя / значение», по одной паре на строку, а имя и значение разделяются двоеточием.
Пример:
Content-Type: text/html;charset=windows-1251
Allow: GET
Content-Length: 2056
Как самый стандартный вариант использования заголовка - передача token'а в нем, для подтверждения того, что клиент имеет доступ на использование соответствующего микросервиса, допустим.
3️⃣Последней частью запроса является его тело. В теле запроса как правило лежит какой-нибудь JSON с необходимой для работы метода информацией (но тут может быть и XML - в этом плане есть полная универсальность).
Это что касается запроса. Но на запрос должен прийти еще и ответ.
Структура HTTP ответа
1️⃣Строка статуса (Status line)
Стартовая строка ответа HTTP, называемая строкой статуса, содержит следующую информацию:
▫️Версию протокола, обычно HTTP/1.1.
▫️Код состояния (status code), показывающая, был ли запрос успешным. Примеры: 200, 404 или 302
▫️Пояснение (status text). Краткое текстовое описание кода состояния, помогающее пользователю понять сообщение HTTP.
Пример строки статуса: HTTP/1.1 404 Not Found.
2️⃣Заголовок ответа HTTP имеет такую же структуру, как и заголовок запроса
Как пример использования - вернуть идентификатор созданного ресурса после вызова метода POST, обычно это делается в заголовке.
3️⃣Тело ответа.
Последней частью ответа является его тело. Оно есть не у всех ответов: у ответов с кодом состояния, например, 201 или 204, оно обычно отсутствует.
Тут также аналогично телу запроса - обычно возвращается JSON с необходимой для вызывающей стороны информацией.
👍 5
🔥 3
👏 1
14 1.7K
Обсуждение 0
Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.
Обсудить в Telegram