Главная / Блог / HTTP ответы сервера

HTTP ответы сервера

Когда пользователь ПК или иного устройства вписывает URL-адрес сайта в адресное поле браузера, гаджету требуется создать соединение с сервером, для чего отправляется HTTP-запрос.  Это сообщение, которое содержит информацию. Например, запрос на передачу информации пользователя для обработки сервером. Фактически, браузер – это удобный графический интерфейс, позволяющий наладить взаимодействия с веб-ресурсами посредством протокола HTTP. Рассмотрим подробнее, что такое HTTP, коды сообщений, часто встречающиеся ошибки.

Содержание

Что такое http

Чтобы ПК, гаджеты смогли устанавливать соединение друг с другом в сети, они должны соблюдать некоторые правила, формат общения. Одни из таких правил и являются HTTP-протоколы. 

По сути, это основной протокол передачи информации в интернете. Он создает коммуникацию между пользователем (чаще всего веб-браузером) и сервером, позволяя запросить и получить разные ресурсы. К примеру, такие как веб-страницы.

Принцип HTTP основан на модели клиент-сервер. Этот обмен данными происходит в формате текстовых сообщений, называемых HTTP-запросами и ответами. Протокол устанавливает нормы составления этого сообщения и взаимодействия устройств: как оно начинается, каков порядок HTTP-запроса и ответа, за какое время сервер должен отправить ответ и так далее.

В схеме HTTP-сообщений между клиентом и сервером можно выделить такие основные компоненты:

  1. Начальная строка запроса и ответа;
  2. Заголовки и их значения;
  3. Непосредственно текст сообщения.

Статусы ответов

Это числовые комбинации, состоящие из 3 знаков, поступающие от сервера в качестве ответа на пользовательский запрос для обозначения состояния его обработки. Эти коды являются неотъемлемой частью протокола HTTP и важны для связи компьютера или другого гаджета с сервером во время обмена информацией через интернет.

Такие статусы делят на несколько основных видов:

  • Информационные;
  • Успешные;
  • Перенаправляющие;
  • Ошибки клиента;
  • Ошибки сервера;

Благодаря числовым комбинациям можно определить и устранить проблемы.  Расскажем о каждой группе таких кодов подробнее.

Информационные ответы (100-199)

Они предназначены для описания процесса передачи данных между клиентской и серверной машиной. Например, код уведомляет пользователя. Можно выделить несколько самых распространенных информационных ответов:

  • 100. Он уведомляет пользователя о принятии сервером запроса, который был сформирован клиентом, при этом он ожидает получение новых сообщений. Начальные данные им удовлетворены, обработка запроса идет дальше. Такой код состояния применяется при передаче серверу большого массива информации от клиентского компьютера. Он сообщает, что первая часть данных получена, сервер ожидает дальнейших поступлений информации.
  • 101. Этот статусный код отправляется пользователю, когда запрос на изменение протокола поступил на сервер, тот его обработал и принял, при этом он готов к его выполнению. Зачастую это используется в веб-протоколах, например, в WebSocket, когда пользователь отсылает запрос на смену HTTP на иной протокол, поддерживаемый сервером. При получении статуса Switching Protocols можно применять выбранный принцип взаимодействия машин.
  • 102. Данный информационный ответ пользователь видит, когда сервер смог принят запрос от него, но требуется дополнительное время, чтобы его обработать. Клиентской машине не нужно завершать соединение, просто нужно обнулить таймер и немного подождать, пока не появится иная команда от сервера.

Успешные ответы (200-299)

Успешные ответы HTTP — это числовые комбинации, которые сервер направляет клиентскому компьютеру если с ним нет проблем. В протоколе они имеют значение в диапазоне от 200 до 299.

  • 200. Этот код видят пользователи при отправке HTTP-запроса чаще всего. Он дает информацию, что сервер обработал всю полученную информацию и клиент может открыть страницу, которая ему нужна. Все веб-страницы, прошедшие индексацию, передают именно этот ответ.
  • 201. Эта комбинация цифр говорит об успешном создании ресурса на сервере в результате действий пользователя. Такой код будет информативен, например, при реализации веб-приложений, когда пользователь отсылает данные на сервер для создания нового объекта. 
  • 202. Этот числовой код, которым сервер сообщает клиенту, что он принял от него запрос однако еще обрабатывает его или же не готов выполнить. Данный код состояния может быть использован, если на выполнение запроса необходим ресурс или время, но они в настоящий момент недоступны.
  • 203. Эта комбинация цифр обозначает, что в сервер пришло сообщение пользователя, но он отказывается отвечать на него, поскольку клиент должен повторно направить запрос с другими параметрами. Обычно это случается, если сервису требуется аутентификация перед тем как запрос будет реализован. Эта комбинация чисел появляется достаточно редко и не является стандартным для всех серверов.
  • 204. Такой код пользователь получит, если запрос будет принят, но его выполнение останется без содержательного ответа. 
  • 205. Сервер полностью обработал клиентский запрос, но ему нужно удалить введенные ранее сведения. Обновлять документ не требуется, поскольку сервер не отправляет основную часть сообщения.
  • 206. Он обозначает успешное выполнение частичного GET-запроса. Сообщает пользователю, что запрос на сервере был обработан и возвращенная информация является частью полного ответа, но сам он длиннее. Этот статусный код часто встречается при скачивании объемных файлов или частей файлов, когда клиенту необходима только часть данных.
  • 207. Это ответ можно получить если сервер обработал сразу несколько запросов клиента, которые не связаны друг с другом. То есть, выполнил мультизадачу. Результаты можно посмотреть в теле сообщения в виде XML-документа с объектом multistatus.
  • 208. Код означает успешную обработку сообщения: получил заголовок A-IM и возвратил информацию в соответствии с определенными условиями.

Сообщения о редиректе (300-399)

В эту группу сообщений входят коды, которые высвечиваются клиенту в случае, когда для успешного проведении операции требуется видоизменить HTTP-запрос. Обычно такая проблема возникает из-за  неправильного URI ресурса. Выделим несколько самых популярных сообщений о редиректе.

  • 300. Робот не может связать ресурс с соответствующим URL. Это часто происходит из-за передачи ресурса на другой адрес. В таких случаях сервер предложит клиенту другие варианты для перехода. Чтобы успешно проиндексировать страницу, необходимо либо корректно описать ресурс, либо внести изменения в заголовки.
  • 301. Этот код необходим при смене адреса страницы, чтобы сделать перенаправление со старого URL на новый. Этот код состояния дает возможность клиенту понять, что требуемая информация насовсем остался на ином адресе, куда его переводит ссылка. Робот занимается индексацией веб-страницы, прописанные в коде, и соединяет старый URL и новый.
  • 302. Этот код сообщает, что веб-страница была временно перемещена на иной адрес. Именно поэтому ее нужно оставить проиндексированной. В ответ на запрос клиент получает данные с обновленным адресом. Когда страница сохраняет индексацию, ссылочная масса все так же передается.
  • 303. Он часто используется для указания клиенту перенаправления на сторонний ресурс после того как запрос был успешно выполнен. Уникальной особенностью ответа 303 является то, что он явно указывает клиенту, что необходимо выполнить GET-запрос к новому URI, предоставленному в заголовке «Location» ответа.
  • 304. Эти цифры появляются перед пользователем, если страница осталась прежней, как когда на ней был робот в предыдущий раз. Сервер отправляет сообщение об этом роботу, который извлекает HTTP-заголовки из документа, при этом ему не требуется еще раз загружать страницу. Этот подход ускоряет процесс индексации и снижает загруженность веб-сервера.
  • 305. Этот код получает клиент, которому отказано в доступе, поскольку его можно получить исключительно с прокси.
  • 306. Он схож с сообщением 302. Основное отличие в том, что в данном случае сайт не просто временно сменил адрес, еще его новый URL требуется вписать в Location.

Ошибки клиента (400-499)

Эти коды состояния HTTP указывает, что клиентский запрос выполнен неправильно и сервер не в состоянии его обработать.

  • 400. Этот код указывает на допущенную ошибку синтаксического характера. Для исправления синтаксиса нужно очистить кэш и исправить запрос вручную.
  • 401. Это сообщение могут увидеть пользователи, не прошедшие авторизацию. Это значит что сервер будет давать успешные ответы исключительно авторизировавшимся пользователям или же клиентом был установлен пароль для защиты.
  • 402. В этом случае в запросе нет ошибок и сервер обработал запрос. Но у него отсутствует доступ к тому веб-ресурсу, о котором поступил запрос. Вероятно, доступ к нему закрыли для некоторых IP-адресов с использованием файла .htaccess намеренно.
  • 403. Одна из самых распространенных ошибок, получаемых от сервера. Она означает, что страницу, который указал пользователь, сервер просто не находит. То есть, документа по такому адрес нет. Причины появления кода 404 могут быть разные: опечатка в запросе, сделанная клиентом, у него просто нет прав на просмотр той или иной информации.
  • 404. Возникает при взаимодействии с веб-сервером и сообщает, что метод, используемый в HTTP-запросе, не поддерживается для запрашиваемого ресурса. То есть серверу не удается реализовать запрос с использованием указанного метода HTTP.

Ошибки сервера (500-599)

Эта группа кодов схожа с предыдущими, но отличие лишь в том, что допустил ошибку не клиент, а сервер. Выделим несколько основных.

  • 500. Является стандартным кодом состояния HTTP, который указывает на проблему на стороне сервера. 
  • 501. Метод получения запроса не доступен в данном сервере.
  • 502. Указывает на ошибку которая возникает когда веб-сервер, выступая в качестве прокси или шлюза не получает доступ к другому серверу, который необходим, чтобы запрос был выполнен.
  • 503. Код указывает на загруженность сервера. Стоит попробовать сделать его позже.
  • 504. Сообщение схоже с 502, только в данном случае код указывает на то, что истекло время, которое отведено, чтобы сервер дал ответ.
  • 505. Пользователь использует протокол HTTP, не поддерживаемый сервером. Это может произойти, когда клиент отправляет запрос с использованием более новой или устаревшей версии протокола, а веб-сервер не знает как его интерпретировать или обработать.

Итак, коды ответы серверов – это инструмент их коммуникации с поисковыми роботами. Эти сигналы позволяют роботам определить, как поступать со страницей. Веб-мастерам также нужно знать значения этих кодов, особенно ошибочные, чтобы направлять поисковых роботов и исправлять ошибки, если это предоставляется такая возможность.