[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"/ru/kb/how-to/other/http-zaprosy-opredelenie-kody-sostoyaniya-metodyKbData":3},{"page":4,"pages":176,"recommendedPages":177,"category":105,"categoryTree":105,"total":15,"currentOrder":205,"activeManualCategoryId":105,"tag":-1},{"route":5,"uuid":8,"title":9,"excerpt":10,"content":11,"view_count":12,"published_at":13,"modified_at":13,"like":14,"category":17,"hero_image":98,"seo_metadata":99,"schema_org_metadata":103,"open_graph_metadata":106,"sections":107,"tags":167,"breadcrumbs":168,"images":175},{"language":6,"path":7},"ru","/kb/how-to/other/http-zaprosy-opredelenie-kody-sostoyaniya-metody","6325d724-2cd7-e811-e514-a9be87ce39f2","HTTP-запросы: строка статуса, коды состояния, методы и определения","Каждый раз, когда пользователь интернета открывает сайт, его браузер отправляет на сервер HTTP-запрос, а сервер возвращает HTTP-ответ. Этот обмен происходит незаметно для человека, но именно от него зависит, увидит ли посетитель нужную страницу, получит ли сообщение об ошибке или его вовсе перенаправят на другой адрес.","\n\u003Cp>Каждый раз, когда пользователь интернета открывает сайт, его браузер отправляет на сервер HTTP-запрос, а сервер возвращает HTTP-ответ. Этот обмен происходит незаметно для человека, но именно от него зависит, увидит ли посетитель нужную страницу, получит ли сообщение об ошибке или его вовсе перенаправят на другой адрес. Разберемся, из чего состоит HTTP-запрос, какие методы существуют, что такое строка статуса и какие коды состояния встречаются чаще всего.\u003C/p>\n\n\n\n\u003Ch2 id=\"chto-takoe-http-zapros\">Что такое HTTP-запрос\u003C/h2>\n\n\n\n\u003Cp>\u003Cstrong>HTTP\u003C/strong>(\u003Cstrong>H\u003C/strong>yper\u003Cstrong>T\u003C/strong>ext \u003Cstrong>T\u003C/strong>ransfer \u003Cstrong>P\u003C/strong>rotocol) – протокол передачи данных, на котором строится работа веб-сайтов. Он определяет правила, по которым клиент (браузер, мобильное приложение, скрипт) и сервер обмениваются информацией.\u003C/p>\n\n\n\n\u003Cp>Работает это по модели «запрос – ответ»:\u003C/p>\n\n\n\n\u003Col>\u003Cli>Клиент формирует HTTP-запрос и отправляет его на сервер.\u003C/li>\u003Cli>Сервер обрабатывает запрос и возвращает HTTP-ответ.\u003C/li>\u003Cli>Клиент получает ответ и отображает результат – например, страницу сайта.\u003C/li>\u003C/ol>\n\n\n\n\u003Cp>\u003Cstrong>HTTP\u003C/strong> – протокол без сохранения состояния (stateless). Каждый запрос обрабатывается независимо, сервер не хранит историю предыдущих обращений клиента. Для сохранения данных между запросами используются дополнительные механизмы – cookies, сессии, токены.\u003C/p>\n\n\n\n\u003Ch2 id=\"struktura-http-zaprosa\">Структура HTTP-запроса\u003C/h2>\n\n\n\n\u003Cp>Любой HTTP-запрос состоит из четырех частей:\u003C/p>\n\n\n\n\u003Col>\u003Cli>\u003Cstrong>Стартовая строка\u003C/strong> (request line) – метод, путь к ресурсу и версия протокола.\u003C/li>\u003Cli>\u003Cstrong>Заголовки\u003C/strong> (headers) – метаданные запроса.\u003C/li>\u003Cli>\u003Cstrong>Пустая строка\u003C/strong> – разделитель между заголовками и телом.\u003C/li>\u003Cli>\u003Cstrong>Тело запроса\u003C/strong> (body) – необязательная часть с данными.\u003C/li>\u003C/ol>\n\n\n\n\u003Ch3 id=\"startovaya-stroka\">Стартовая строка\u003C/h3>\n\n\n\n\u003Cp>Выглядит следующим образом:\u003C/p>\n\n\n\n\u003Cdiv class=\"wp-block-beget-code code-block\">\u003Cpre data-options=\"{&quot;mode&quot;:&quot;&quot;}\">\u003Ccode>GET /catalog/tovar-123 HTTP/1.1\u003C/code>\u003C/pre>\u003C/div>\n\n\n\n\u003Cp>Здесь:\u003C/p>\n\n\n\n\u003Cul>\u003Cli>\u003Ccode>GET\u003C/code> – метод запроса;\u003C/li>\u003Cli>\u003Ccode>/catalog/tovar-123\u003C/code> – путь к запрашиваемому ресурсу;\u003C/li>\u003Cli>\u003Ccode>HTTP/1.1\u003C/code> – версия протокола.\u003C/li>\u003C/ul>\n\n\n\n\u003Cp>Путь может включать и строку запроса (query string) – дополнительные параметры HTTP-запроса после знака \u003Ccode>?\u003C/code>. Например:\u003C/p>\n\n\n\n\u003Cdiv class=\"wp-block-beget-code code-block\">\u003Cpre data-options=\"{&quot;mode&quot;:&quot;&quot;}\">\u003Ccode>GET /catalog/tovar-123?color=red&amp;size=42 HTTP/1.1\u003C/code>\u003C/pre>\u003C/div>\n\n\n\n\u003Cp>Здесь \u003Ccode>color=red&amp;size=42\u003C/code> – параметры, которые передаются серверу вместе с путем. Они часто используются для фильтрации, сортировки или пагинации. В отличие от тела запроса, query-параметры видны в адресной строке браузера, в истории браузера и в логах сервера – поэтому передавать в них пароли, токены или другие чувствительные данные не стоит.\u003C/p>\n\n\n\n\u003Ch3 id=\"zagolovki\">Заголовки\u003C/h3>\n\n\n\n\u003Cp>Заголовки передают дополнительную информацию о запросе: какой браузер используется, какой формат ответа ожидается, авторизационные данные и так далее. Например:\u003C/p>\n\n\n\n\u003Cdiv class=\"wp-block-beget-code code-block\">\u003Cpre data-options=\"{&quot;mode&quot;:&quot;&quot;}\">\u003Ccode>Host: example.com\nUser-Agent: Mozilla/5.0\nAccept: text/html\nCookie: session_id=abc123\nContent-Type: application/json\u003C/code>\u003C/pre>\u003C/div>\n\n\n\n\u003Cp>Каждый заголовок – это пара «имя: значение», записанная на отдельной строке.\u003C/p>\n\n\n\n\u003Ch3 id=\"telo-zaprosa\">Тело запроса\u003C/h3>\n\n\n\n\u003Cp>Тело есть не у всех запросов. Например, у \u003Ccode>GET\u003C/code> оно обычно отсутствует, а у \u003Ccode>POST\u003C/code> или PUT в нем передаются данные – содержимое формы, JSON-объект, файл. Пример тела запроса в формате JSON:\u003C/p>\n\n\n\n\u003Cdiv class=\"wp-block-beget-code code-block\">\u003Cpre data-options=\"{&quot;mode&quot;:&quot;&quot;}\">\u003Ccode>{\n  \"name\": \"Ivan\",\n  \"email\": \"ivan@example.com\"\n}\u003C/code>\u003C/pre>\u003C/div>\n\n\n\n\u003Ch3 id=\"polnyy-primer-http-zaprosa\">Полный пример HTTP-запроса\u003C/h3>\n\n\n\n\u003Cdiv class=\"wp-block-beget-code code-block\">\u003Cpre data-options=\"{&quot;mode&quot;:&quot;&quot;}\">\u003Ccode>POST /api/users HTTP/1.1\nHost: example.com\nContent-Type: application/json\nContent-Length: 45\n\n{\"name\": \"Ivan\", \"email\": \"ivan@example.com\"}\u003C/code>\u003C/pre>\u003C/div>\n\n\n\n\u003Ch2 id=\"metody-http-zaprosa\">Методы HTTP-запроса\u003C/h2>\n\n\n\n\u003Cp>Метод сообщает серверу, какое действие нужно выполнить с ресурсом.&nbsp;\u003C/p>\n\n\n\n\u003Cp>Самые распространенные виды методов HTTP-запроса:\u003C/p>\n\n\n\n\u003Cul>\u003Cli>\u003Ccode>GET\u003C/code> – получение данных ресурса. Не изменяет состояние сервера.\u003C/li>\u003Cli>\u003Ccode>POST\u003C/code> – отправка данных на сервер для создания нового ресурса или запуска обработки.&nbsp;\u003C/li>\u003Cli>\u003Ccode>PUT\u003C/code> – полная замена существующего ресурса переданными данными.&nbsp;\u003C/li>\u003Cli>\u003Ccode>PATCH\u003C/code> – частичное обновление ресурса.&nbsp;\u003C/li>\u003Cli>\u003Ccode>DELETE\u003C/code> – удаление указанного ресурса.&nbsp;\u003C/li>\u003Cli>\u003Ccode>HEAD\u003C/code> – аналог \u003Ccode>GET\u003C/code>, но сервер возвращает только заголовки, без тела ответа.\u003C/li>\u003Cli>\u003Ccode>OPTIONS\u003C/code> – запрос списка методов и возможностей, поддерживаемых ресурсом или сервером.\u003C/li>\u003Cli>\u003Ccode>TRACE\u003C/code> – возврат полученного запроса «как есть». Используется для диагностики.&nbsp;\u003C/li>\u003Cli>\u003Ccode>CONNECT\u003C/code> – установка туннельного соединения, обычно для работы через прокси по HTTPS.\u003C/li>\u003C/ul>\n\n\n\n\u003Ch3 id=\"idempotentnost-i-bezopasnost-metodov\">Идемпотентность и безопасность методов\u003C/h3>\n\n\n\n\u003Cp>При работе с методами важны два понятия:\u003C/p>\n\n\n\n\u003Cul>\u003Cli>\u003Cstrong>Безопасные методы\u003C/strong> не изменяют состояние сервера – это, например, \u003Ccode>GET\u003C/code>, \u003Ccode>HEAD\u003C/code>, \u003Ccode>OPTIONS\u003C/code>. Они только читают данные.\u003C/li>\u003Cli>\u003Cstrong>Идемпотентные методы\u003C/strong> – при многократном повторном выполнении дают тот же результат, что и при однократном. К ним относятся \u003Ccode>GET\u003C/code>, \u003Ccode>PUT\u003C/code>, \u003Ccode>DELETE\u003C/code>, \u003Ccode>HEAD\u003C/code>, \u003Ccode>OPTIONS\u003C/code> и \u003Ccode>TRACE\u003C/code>. А вот \u003Ccode>POST\u003C/code> и \u003Ccode>PATCH\u003C/code> идемпотентными не являются: повторная отправка одного и того же \u003Ccode>POST\u003C/code>-запроса может, например, создать второй одинаковый заказ.\u003C/li>\u003C/ul>\n\n\n\n\u003Cp>Это различие важно учитывать при разработке API и настройке кэширования. Кэшировать без риска получить устаревшие или неверные данные можно только безопасные методы – \u003Ccode>GET\u003C/code> и \u003Ccode>HEAD\u003C/code>, поскольку они не меняют состояние ресурса. А вот повторять запрос при сбое сети без опасений «сломать» что-то на сервере можно, если метод идемпотентен – это \u003Ccode>GET\u003C/code>, \u003Ccode>PUT\u003C/code>, \u003Ccode>DELETE\u003C/code>, \u003Ccode>HEAD\u003C/code>, \u003Ccode>OPTIONS\u003C/code> и \u003Ccode>TRACE\u003C/code>.&nbsp;\u003C/p>\n\n\n\n\u003Cdiv class=\"wp-block-beget-alert alert-block alert-block-info\">\u003Cdiv class=\"alert-block-title\">Обратите внимание!\u003C/div>\u003Cdiv class=\"alert-block-content\">\u003Ccode>PUT\u003C/code> и \u003Ccode>DELETE\u003C/code> идемпотентны, но их, в отличие от \u003Ccode>GET\u003C/code> и \u003Ccode>HEAD\u003C/code>, не кэшируют. Они изменяют состояние сервера, а не только читают данные. \u003Ccode>POST\u003C/code> и \u003Ccode>PATCH\u003C/code> не обладают ни тем, ни другим свойством, поэтому их повторную отправку нужно обрабатывать отдельно – например, защитой от двойного клика при оформлении заказа.\u003C/div>\u003C/div>\n\n\n\n\u003Ch2 id=\"struktura-http-otveta\">Структура HTTP-ответа\u003C/h2>\n\n\n\n\u003Cp>В ответ на запрос сервер отправляет HTTP-ответ, который по структуре похож на запрос, но вместо стартовой строки содержит строку статуса:\u003C/p>\n\n\n\n\u003Col>\u003Cli>\u003Cstrong>Строка статуса \u003C/strong>(status line).\u003C/li>\u003Cli>\u003Cstrong>Заголовки ответа\u003C/strong>.\u003C/li>\u003Cli>\u003Cstrong>Пустая строка\u003C/strong>.\u003C/li>\u003Cli>\u003Cstrong>Тело ответа\u003C/strong> – HTML-страница, JSON, файл и так далее.\u003C/li>\u003C/ol>\n\n\n\n\u003Ch3 id=\"stroka-statusa\">Строка статуса\u003C/h3>\n\n\n\n\u003Cp>Строка статуса – первая строка HTTP-ответа. Она сообщает клиенту, как сервер обработал запрос. Формат строки:\u003C/p>\n\n\n\n\u003Cdiv class=\"wp-block-beget-code code-block\">\u003Cpre data-options=\"{&quot;mode&quot;:&quot;&quot;}\">\u003Ccode>HTTP/1.1 200 OK\u003C/code>\u003C/pre>\u003C/div>\n\n\n\n\u003Cp>Строка состоит из трех частей:\u003C/p>\n\n\n\n\u003Cul>\u003Cli>\u003Cstrong>Версия протокола\u003C/strong> – например, \u003Ccode>HTTP/1.1\u003C/code>.\u003C/li>\u003Cli>\u003Cstrong>Код состояния\u003C/strong> – трехзначное число, например, \u003Ccode>200\u003C/code>.\u003C/li>\u003Cli>\u003Cstrong>Пояснительная фраза\u003C/strong> (reason phrase) – текстовое описание кода, например, \u003Ccode>OK\u003C/code>. Эта часть носит справочный характер и не влияет на обработку ответа.\u003C/li>\u003C/ul>\n\n\n\n\u003Cp>Пример полного ответа сервера:\u003C/p>\n\n\n\n\u003Cdiv class=\"wp-block-beget-code code-block\">\u003Cpre data-options=\"{&quot;mode&quot;:&quot;&quot;}\">\u003Ccode>HTTP/1.1 200 OK\nContent-Type: text/html; charset=utf-8\nContent-Length: 1256\n\n&lt;!DOCTYPE html&gt;\n&lt;html&gt;...&lt;/html&gt;\u003C/code>\u003C/pre>\u003C/div>\n\n\n\n\u003Cp>Некоторые заголовки характерны именно для ответа и не встречаются в запросах. Например, при редиректе сервер указывает новый адрес в заголовке \u003Ccode>Location\u003C/code>:\u003C/p>\n\n\n\n\u003Cdiv class=\"wp-block-beget-code code-block\">\u003Cpre data-options=\"{&quot;mode&quot;:&quot;&quot;}\">\u003Ccode>HTTP/1.1 301 Moved Permanently\nLocation: https://example.com/new-page\u003C/code>\u003C/pre>\u003C/div>\n\n\n\n\u003Cp>А чтобы установить cookie на стороне клиента, сервер использует \u003Ccode>Set-Cookie\u003C/code>:\u003C/p>\n\n\n\n\u003Cdiv class=\"wp-block-beget-code code-block\">\u003Cpre data-options=\"{&quot;mode&quot;:&quot;&quot;}\">\u003Ccode>HTTP/1.1 200 OK\nSet-Cookie: session_id=abc123; HttpOnly; Secure\u003C/code>\u003C/pre>\u003C/div>\n\n\n\n\u003Cp>Именно этот \u003Ccode>session_id\u003C/code>, установленный сервером, клиент затем передает обратно в заголовке Cookie в следующих запросах – том самом, что был показан в примере заголовков запроса выше.\u003C/p>\n\n\n\n\u003Ch2 id=\"kody-sostoyaniya-http\">Коды состояния HTTP\u003C/h2>\n\n\n\n\u003Cp>Коды состояния делятся на пять классов в зависимости от первой цифры HTTP-запроса.\u003C/p>\n\n\n\n\u003Ch3 id=\"1xx-informacionnye\">1xx – информационные\u003C/h3>\n\n\n\n\u003Cp>Означают, что сервер принял запрос и продолжает его обработку.\u003C/p>\n\n\n\n\u003Cul>\u003Cli>\u003Ccode>100 Continue\u003C/code> – сервер получил начальную часть запроса и клиент может продолжать отправку.\u003C/li>\u003Cli>\u003Ccode>101 Switching Protocols\u003C/code> – сервер соглашается сменить протокол по просьбе клиента (например, при переходе на WebSocket).\u003C/li>\u003Cli>\u003Ccode>103 Early Hints\u003C/code> – предварительные заголовки, которые сервер отправляет до основного ответа, чтобы браузер мог заранее начать загрузку связанных ресурсов.\u003C/li>\u003C/ul>\n\n\n\n\u003Ch3 id=\"2xx-uspeshnye\">2xx – успешные\u003C/h3>\n\n\n\n\u003Cp>Запрос был получен, понят и успешно обработан.\u003C/p>\n\n\n\n\u003Cul>\u003Cli>\u003Ccode>200 OK\u003C/code> – запрос выполнен успешно.\u003C/li>\u003Cli>\u003Ccode>201 Created\u003C/code> – новый ресурс успешно создан (обычно в ответ на \u003Ccode>POST\u003C/code> или \u003Ccode>PUT\u003C/code>).\u003C/li>\u003Cli>\u003Ccode>202 Accepted\u003C/code> – запрос принят к обработке, но она еще не завершена.\u003C/li>\u003Cli>\u003Ccode>204 No Content\u003C/code> – запрос выполнен успешно, но тело ответа отсутствует.\u003C/li>\u003C/ul>\n\n\n\n\u003Ch3 id=\"3xx-perenapravleniya\">3xx – перенаправления\u003C/h3>\n\n\n\n\u003Cp>Сообщают, что для завершения запроса нужны дополнительные действия, обычно переход по другому адресу.\u003C/p>\n\n\n\n\u003Cul>\u003Cli>\u003Ccode>301 Moved Permanently\u003C/code> – ресурс перемещен на новый адрес навсегда.\u003C/li>\u003Cli>\u003Ccode>302 Found\u003C/code> – временное перенаправление. По стандарту при таком переходе метод и тело запроса должны сохраняться, но на практике большинство браузеров при \u003Ccode>301\u003C/code> и \u003Ccode>302\u003C/code> меняют исходный метод на \u003Ccode>GET\u003C/code> – это историческая особенность, закрепившаяся в поведении браузеров еще с ранних версий HTTP. Именно поэтому позже появились коды \u003Ccode>307\u003C/code> и \u003Ccode>308\u003C/code>.&nbsp;\u003C/li>\u003Cli>\u003Ccode>303 See Other\u003C/code> – явное указание получить ресурс методом \u003Ccode>GET\u003C/code> по другому адресу. Классический паттерн – редирект после успешной обработки \u003Ccode>POST\u003C/code>-запроса (например, после отправки формы или оформления заказа), чтобы обновление страницы браузером не приводило к повторной отправке формы.\u003C/li>\u003Cli>\u003Ccode>304 Not Modified\u003C/code> – ресурс не изменился с последнего запроса, можно использовать кэшированную версию.\u003C/li>\u003Cli>\u003Ccode>307 Temporary Redirect\u003C/code> и \u003Ccode>308 Permanent Redirect\u003C/code> – аналоги \u003Ccode>302\u003C/code> и \u003Ccode>301\u003C/code>, но гарантированно сохраняющие исходный метод и тело запроса при переходе.\u003C/li>\u003C/ul>\n\n\n\n\u003Cp>Редиректы на виртуальном хостинге настраиваются через файл \u003Ccode>.htaccess\u003C/code>, поможет их настроить \u003Ca href=\"https://beget.com/ru/kb/how-to/other/volshebnyj-fajl-htaccess?utm_source=kb&amp;utm_medium=article&amp;utm_campaign=http_requests&amp;utm_content=kb_htaccess_php#php\">наша статья\u003C/a>.\u003C/p>\n\n\n\n\u003Ch3 id=\"4xx-oshibki-klienta\">4xx – ошибки клиента\u003C/h3>\n\n\n\n\u003Cp>Этот код указывают, что HTTP-запрос содержит ошибку или не может быть обработан по вине клиента.\u003C/p>\n\n\n\n\u003Cul>\u003Cli>\u003Ccode>400 Bad Request\u003C/code> – сервер не понял запрос из-за некорректного синтаксиса.\u003C/li>\u003Cli>\u003Ccode>401 Unauthorized\u003C/code> – требуется аутентификация.\u003C/li>\u003Cli>\u003Ccode>403 Forbidden\u003C/code> – доступ к ресурсу запрещен, даже если клиент аутентифицирован, то есть сервер точно знает, кто он. Разница между \u003Ccode>401\u003C/code> и \u003Ccode>403\u003C/code> – это и есть разница между аутентификацией и авторизацией: \u003Ccode>401\u003C/code> означает «сначала представьтесь», а \u003Ccode>403\u003C/code> – «вы представились, но прав на это действие всё равно нет». Разобраться в причине ошибки, а также исправить ее поможет \u003Ca href=\"https://beget.com/ru/kb/how-to/troubleshooting/chto-takoe-oshibka-403-forbidden-i-kak-ee-ispravit?utm_source=kb&amp;utm_medium=article&amp;utm_campaign=http_requests&amp;utm_content=kb_403\">наша статья\u003C/a>.&nbsp;\u003C/li>\u003Cli>\u003Ccode>404 Not Found\u003C/code> – запрашиваемый ресурс не найден.\u003C/li>\u003Cli>\u003Ccode>405 Method Not Allowed\u003C/code> – метод запроса не поддерживается для данного ресурса.\u003C/li>\u003Cli>\u003Ccode>429 Too Many Requests\u003C/code> – превышен лимит запросов за определенный период.\u003C/li>\u003C/ul>\n\n\n\n\u003Ch3 id=\"5xx-oshibki-servera\">5xx – ошибки сервера\u003C/h3>\n\n\n\n\u003Cp>Означают, что сервер получил корректный запрос, но не смог его обработать.\u003C/p>\n\n\n\n\u003Cul>\u003Cli>\u003Ccode>500 Internal Server Error\u003C/code> – общая ошибка сервера при выполнении HTTP-запроса, без уточнения причины.\u003C/li>\u003Cli>\u003Ccode>502 Bad Gateway\u003C/code> – сервер, выступающий шлюзом или прокси, получил некорректный ответ от вышестоящего сервера.\u003C/li>\u003Cli>\u003Ccode>503 Service Unavailable\u003C/code> – сервер временно не может обработать запрос, например, из-за перегрузки или технических работ.\u003C/li>\u003Cli>\u003Ccode>504 Gateway Timeout\u003C/code> – сервер-шлюз не дождался, не получил ответы HTTP-запросов от вышестоящего сервера.\u003C/li>\u003C/ul>\n\n\n\n\u003Ch2 id=\"http-1-1-http-2-http-3-i-https\">HTTP/1.1, HTTP/2, HTTP/3 и HTTPS\u003C/h2>\n\n\n\n\u003Cp>Всё, что описано выше, справедливо для \u003Ccode>HTTP/1.1\u003C/code> – самой распространенной версии при объяснении протокола. Но на большинстве современных сайтов данные передаются по \u003Ccode>HTTP/2\u003C/code> или \u003Ccode>HTTP/3\u003C/code>: они используют бинарный формат вместо текстового, умеют передавать несколько запросов в рамках одного соединения и работают быстрее, особенно на медленных или нестабильных сетях. При этом методы, заголовки и коды состояния HTTP-запроса остаются теми же – всё, что рассказано в статье про \u003Ccode>GET\u003C/code>, \u003Ccode>POST\u003C/code>, коды \u003Ccode>200\u003C/code>, \u003Ccode>404\u003C/code> или \u003Ccode>500\u003C/code>, одинаково справедливо для всех версий протокола, меняется только формат передачи данных.\u003C/p>\n\n\n\n\u003Cp>Отдельно стоит уточнить про HTTPS: это не другой протокол, а тот же HTTP, передаваемый поверх защищенного соединения TLS. Структура запросов и ответов не меняется, но трафик между клиентом и сервером шифруется. В свою очередь, при работе через незащищенное HTTP-соединение запросы и ответы передаются без шифрования.\u003C/p>\n\n\n\n\u003Ch2 id=\"kak-posmotret-http-zaprosy-i-otvety-na-praktike\">Как посмотреть HTTP-запросы и ответы на практике\u003C/h2>\n\n\n\n\u003Cp>Изучить реальные запросы можно несколькими способами:\u003C/p>\n\n\n\n\u003Cul>\u003Cli>\u003Cstrong>Инструменты разработчика в браузере\u003C/strong> – вкладка «Сеть» (Network) в Chrome, Firefox или другом браузере показывает все запросы страницы, их заголовки, коды ответов и время выполнения.\u003C/li>\u003Cli>\u003Cstrong>Утилита curl\u003C/strong> – позволяет отправлять запросы из терминала и видеть полный ответ сервера. Например, команда \u003Ccode>curl -I example.com\u003C/code> выведет только заголовки ответа, включая строку статуса. Более полезна для изучения структуры обмена команда \u003Ccode>curl -v example.com\u003C/code> – она показывает и сам отправленный запрос, и полный ответ сервера, включая все заголовки.\u003C/li>\u003Cli>\u003Cstrong>Отдельные приложения для тестирования API\u003C/strong>, такие как Postman или Insomnia – удобны для ручного составления и отправки запросов разных типов.\u003C/li>\u003C/ul>\n\n\n\n\u003Ch2 id=\"zaklyuchenie\">Заключение\u003C/h2>\n\n\n\n\u003Cp>HTTP-запрос и HTTP-ответ – это не абстрактная теория, а то, с чем ежедневно сталкивается каждый, кто работает с сайтом или API. Разобравшись в кодах состояния, можно быстро понять, где искать причину проблемы:\u003C/p>\n\n\n\n\u003Cul>\u003Cli>Код начинается с \u003Ccode>4хх\u003C/code> – проблема на стороне клиента: неверный запрос, отсутствие авторизации, обращение к несуществующему адресу. Стоит проверить сам запрос – URL, заголовки, тело, права доступа.\u003C/li>\u003Cli>Код начинается с \u003Ccode>5хх\u003C/code> – проблема на стороне сервера: ошибка в коде приложения, недоступность базы данных, перегрузка или сбой в работе сервера. Здесь уже нужно смотреть логи сервера. Разобраться в причинах ошибок, а также исправить их поможет \u003Ca href=\"https://beget.com/ru/kb/how-to/troubleshooting/chto-takoe-oshibki-500-502-503-504-i-kak-ih-ispravit?utm_source=kb&amp;utm_medium=article&amp;utm_campaign=http_requests&amp;utm_content=kb_oshibki_500\">наша статья\u003C/a>.\u003C/li>\u003Cli>Код начинается с \u003Ccode>3хх\u003C/code> – это не ошибка HTTP-запроса, а часть нормальной работы сайта (редирект), но если редиректов оказывается больше одного-двух подряд или они зацикливаются, это повод проверить настройки.\u003C/li>\u003C/ul>\n\n\n\n\u003Cp>Умение быстро определить класс кода состояния экономит время при диагностике: вы сразу понимаете, где может быть проблема.\u003C/p>\n\n\n\n\u003Cp>Если возникнут вопросы, напишите нам, пожалуйста, тикет из панели управления аккаунта (раздел “\u003Ca href=\"https://cp.beget.com/support?utm_source=kb&amp;utm_medium=article&amp;utm_campaign=http_requests&amp;utm_content=cp_support\">Помощь и поддержка\u003C/a>”), а если вы захотите обсудить работу HTTP-запросов или наши продукты с коллегами по цеху и сотрудниками Beget – ждем вас в нашем\u003Ca href=\"https://t.me/beget_chat\"> сообществе\u003C/a> в Telegram.\u003C/p>\n",25,"2026-09-16T15:09:09.000Z",{"count":15,"liked":16},0,false,{"route":18,"title":20,"tags":21,"breadcrumbs":90,"uuid":91,"parent_uuid":92,"default_page_path":26,"seo_metadata":93},{"language":6,"path":19},"/kb/how-to/other","Другое",[22,27,31,35,39,43,47,51,55,59,63,67,71,74,78,82,86],{"id":23,"title":24,"seo_metadata":25},"ddos","DDoS",{"title":26,"description":26,"header":26,"keywords":26},"",{"id":28,"title":29,"seo_metadata":30},"veb-analitika","Веб-аналитика",{"title":26,"description":26,"header":26,"keywords":26},{"id":32,"title":33,"seo_metadata":34},"reklama","Реклама",{"title":26,"description":26,"header":26,"keywords":26},{"id":36,"title":37,"seo_metadata":38},"php","PHP",{"title":26,"description":26,"header":26,"keywords":26},{"id":40,"title":41,"seo_metadata":42},"redis","Redis",{"title":26,"description":26,"header":26,"keywords":26},{"id":44,"title":45,"seo_metadata":46},"sajty","Сайты",{"title":26,"description":26,"header":26,"keywords":26},{"id":48,"title":49,"seo_metadata":50},"servisy","Сервисы",{"title":26,"description":26,"header":26,"keywords":26},{"id":52,"title":53,"seo_metadata":54},"backup","BackUp",{"title":26,"description":26,"header":26,"keywords":26},{"id":56,"title":57,"seo_metadata":58},"mysql","MySQL",{"title":26,"description":26,"header":26,"keywords":26},{"id":60,"title":61,"seo_metadata":62},"terminal","Терминал",{"title":26,"description":26,"header":26,"keywords":26},{"id":64,"title":65,"seo_metadata":66},"fajlovyj-menedzher","Файловый менеджер",{"title":26,"description":26,"header":26,"keywords":26},{"id":68,"title":69,"seo_metadata":70},"apache","Apache",{"title":26,"description":26,"header":26,"keywords":26},{"id":72,"title":72,"seo_metadata":73},"htaccess",{"title":26,"description":26,"header":26,"keywords":26},{"id":75,"title":76,"seo_metadata":77},"bitrix","Bitrix",{"title":26,"description":26,"header":26,"keywords":26},{"id":79,"title":80,"seo_metadata":81},"cms","CMS",{"title":26,"description":26,"header":26,"keywords":26},{"id":83,"title":84,"seo_metadata":85},"ssh","SSH",{"title":26,"description":26,"header":26,"keywords":26},{"id":87,"title":88,"seo_metadata":89},"diagnostika","Диагностика",{"title":26,"description":26,"header":26,"keywords":26},[],"990b6a3c-10fb-f492-f734-6ece33e9e4e3","fa9a1354-631a-4206-df34-291f0db8f42a",{"title":94,"description":95,"header":96,"keywords":97},"Другие вопросы. Полезные статьи – Beget","Полезные статьи о Других вопросах на сайте Beget","Другие вопросы. Полезные статьи","Beget, FAQ",{"src":26,"text":26},{"title":100,"description":101,"keywords":102},"HTTP-запросы: основные определения и коды состояния","Читайте об основных определениях в HTTP-запросах: заголовки, структура, строка статуса, коды состояния, методы | Блог облачного провайдера Beget","http-запросы, что это такое? http основные определения, коды ответа сервера какие бывают",{"faq":104,"how_to":105,"product":105},[],null,{},[108,112,115,119,122,125,128,131,134,137,140,143,146,149,152,155,158,161,164],{"level":109,"name":110,"anchor":111},1,"Что такое HTTP-запрос","chto-takoe-http-zapros",{"level":109,"name":113,"anchor":114},"Структура HTTP-запроса","struktura-http-zaprosa",{"level":116,"name":117,"anchor":118},2,"Стартовая строка","startovaya-stroka",{"level":116,"name":120,"anchor":121},"Заголовки","zagolovki",{"level":116,"name":123,"anchor":124},"Тело запроса","telo-zaprosa",{"level":116,"name":126,"anchor":127},"Полный пример HTTP-запроса","polnyy-primer-http-zaprosa",{"level":109,"name":129,"anchor":130},"Методы HTTP-запроса","metody-http-zaprosa",{"level":116,"name":132,"anchor":133},"Идемпотентность и безопасность методов","idempotentnost-i-bezopasnost-metodov",{"level":109,"name":135,"anchor":136},"Структура HTTP-ответа","struktura-http-otveta",{"level":116,"name":138,"anchor":139},"Строка статуса","stroka-statusa",{"level":109,"name":141,"anchor":142},"Коды состояния HTTP","kody-sostoyaniya-http",{"level":116,"name":144,"anchor":145},"1xx – информационные","1xx-informacionnye",{"level":116,"name":147,"anchor":148},"2xx – успешные","2xx-uspeshnye",{"level":116,"name":150,"anchor":151},"3xx – перенаправления","3xx-perenapravleniya",{"level":116,"name":153,"anchor":154},"4xx – ошибки клиента","4xx-oshibki-klienta",{"level":116,"name":156,"anchor":157},"5xx – ошибки сервера","5xx-oshibki-servera",{"level":109,"name":159,"anchor":160},"HTTP/1.1, HTTP/2, HTTP/3 и HTTPS","http-1-1-http-2-http-3-i-https",{"level":109,"name":162,"anchor":163},"Как посмотреть HTTP-запросы и ответы на практике","kak-posmotret-http-zaprosy-i-otvety-na-praktike",{"level":109,"name":165,"anchor":166},"Заключение","zaklyuchenie",[],[169,173],{"route":170,"title":172},{"language":6,"path":171},"/kb/how-to","Полезные статьи",{"route":174,"title":20},{"language":6,"path":19},[],[],[178,187,196],{"route":179,"uuid":181,"title":182,"excerpt":26,"content":26,"view_count":15,"published_at":26,"modified_at":26,"like":105,"category":105,"hero_image":105,"seo_metadata":105,"schema_org_metadata":105,"open_graph_metadata":105,"sections":183,"tags":184,"breadcrumbs":185,"images":186},{"language":6,"path":180},"/kb/how-to/other/video-kak-vosstanovit-sajt-iz-rezervnoj-kopii","b3d6caff-213e-01d2-b76d-1ca8314932e9","Видео: Восстановление сайта из резервной копии на хостинге",[],[],[],[],{"route":188,"uuid":190,"title":191,"excerpt":26,"content":26,"view_count":15,"published_at":26,"modified_at":26,"like":105,"category":105,"hero_image":105,"seo_metadata":105,"schema_org_metadata":105,"open_graph_metadata":105,"sections":192,"tags":193,"breadcrumbs":194,"images":195},{"language":6,"path":189},"/kb/how-to/other/blokirovka-php-sessij","281d6d7c-f695-571a-7abf-77d7fd08df91","Блокировка сессии в PHP",[],[],[],[],{"route":197,"uuid":199,"title":200,"excerpt":26,"content":26,"view_count":15,"published_at":26,"modified_at":26,"like":105,"category":105,"hero_image":105,"seo_metadata":105,"schema_org_metadata":105,"open_graph_metadata":105,"sections":201,"tags":202,"breadcrumbs":203,"images":204},{"language":6,"path":198},"/kb/how-to/other/kak-podklyuchit-godovuyu-skidku-dlya-hostinga-v-begete","5aef7e80-3a16-81fb-5546-503d74f9f657","Как подключить годовую скидку для хостинга в Бегете",[],[],[],[],"popularity-desc"]