Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- HTTP ЗАПРОС:
- 1 2 3
- v v v
- GET / HTTP/1.1
- Host: www.google.com
- User-Agent: curl/7.79.1
- Accept: */*
- *1 HTTP-метод. GET, POST, PUT, DELETE, OPTIONS, HEAD. Метод сообщает серверу операцию, которую хочет выполнить клиент.
- *2 Путь к ресурсу на веб-сервере (Request-URI). Он сообщает серверу, какой ресурс запросил клиент. Строка / означает путь к корневому ресурсу. Как правило, это главная страница сайта. Примеры URI-строк: /images/image1.png, /search?q=c++.
- *3 Версия протокола. В данном случае HTTP 1.1
- -----------------------------------------------------------------------------------------------
- В конце строки располагается последовательность символов \r («возврат каретки», “carriage return” или CR) и \n («перевод строки», “line feed” или LF). За ней следуют заголовки запроса — строки вида <НазваниеЗаголовка>: <ЗначениеЗаголовка>. Они заканчиваются последовательностью символов CRLF (CR + LF). Заголовки сообщают серверу дополнительную информацию. Пробелы между двоеточием и значением заголовка игнорируются. Регистр символов в названии заголовка значения не имеет.
- Заголовки:
- 1. Общие заголовки (General Headers)
- Эти заголовки могут использоваться как в запросах, так и в ответах, но не содержат информации о содержимом сообщения. Примеры:
- Date: Указывает дату и время отправки сообщения.
- Cache-Control: Управляет кэшированием контента.
- Connection: Определяет параметры соединения.
- 2. Заголовки запроса (Request Headers)
- Эти заголовки используются только в запросах от клиента к серверу. Они содержат информацию о клиенте и запрашиваемом ресурсе.
- User-Agent: Информация о клиентском приложении, отправляющем запрос.
- Accept: Указывает, какие типы контента клиент может обрабатывать.
- Authorization: Передает учетные данные для авторизации на сервере.
- 3. Заголовки ответа (Response Headers)
- Эти заголовки используются только в ответах от сервера к клиенту. Они содержат информацию о статусе запроса и о самом ответе. Примеры:
- Content-Type: Указывает тип содержимого, возвращаемого сервером.
- Set-Cookie: Устанавливает куки для клиента.
- Location: Указывает новый URL для перенаправления.
- 4. Заголовки сущности (Entity Headers)
- Эти заголовки содержат информацию о теле ресурса и могут использоваться как в запросах, так и в ответах. Примеры:
- Content-Length: Указывает длину тела сообщения.
- Content-Encoding: Определяет кодировку содержимого.
- Content-Language: Указывает язык содержимого.
- Дополнительные группы заголовков
- Кроме основных типов, существуют также специфические группы заголовков:
- Безопасные заголовки: Например, Content-Security-Policy, Strict-Transport-Security, которые помогают защитить веб-приложения от атак.
- Сквозные заголовки (Hop-by-Hop Headers): Эти заголовки должны передаваться конечному получателю сообщения и не должны сохраняться промежуточными прокси-серверами.
- После объявления последнего заголовка последовательность символов CRLF добавляется дважды. Так сервер может узнать, что заголовки закончились и дальше будет передано тело запроса.
- Host — единственный обязательный заголовок в GET-запросе HTTP/1.1. Он сообщает серверу информацию об имени хоста, которому адресован запрос.
- Заголовок Content-Type не передаётся в запросах без тела, таких как GET и HEAD.
- Заголовки Accept и User-Agent — опциональные. Если заголовок Accept не задан, то сервер будет знать, что клиент может принять контент в произвольном формате. Заголовок User-Agent подсказывает серверу, какое клиентское приложение сделало запрос. Сервер может учитывать этот заголовок при обработке запроса, а может полностью его игнорировать.
- Заголовок Server — опциональный заголовок ответа, а не запроса.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement