Услуги
Контакты
+38 (068) 477-477-0
seo@proposition.digital
Днепр
ул. Княгини Ольги 22, оф. 724
ул. Княгини Ольги 22, оф. 724
Понедельник – Пятница:
с 9.00 до 18.00
с 9.00 до 18.00
Для начала, давайте вспомним, что происходит когда мы используем ВЕБ.
В Вебе глобально существуют 2 роли - “Клиент” и “Сервер”. Они общаются друг с другом посредством языка - HTTP (протокол передачи гипертекста).
В роли транспорта при передаче запросов выступает TCP/IP - коммуникационный Протокол Управления Передачей/Интернет Протокол.
Клиент - это любое устройство (компьютер, мобильный телефон) подключенное к сети Интернет.
Сервер - это компьютер - место, где находятся все веб-страницы, файлы сайта или приложения. Это, своего рода, “дом” сайта.
DNS-сервер - это сервис, который связывает имя сайта (например, google.com) с его реальным адресом - “домом” сайта, сервером.
Итак, вы вводите название сайта в адресной строке браузера и хотите на него перейти. Что происходит дальше?
И тут возможно множество вариантов ответа сервера. Давайте их разберем детальнее.
Код ответа сервера (код состояния HTTP, англ. HTTP status code) - это трехзначное число, состоящее из 3-х арабских цифр. За кодом ответа следует поясняющая фраза, которая объясняет причину ответа. 1 цифра кода - поясняет класс ответа.
Ответы сервера делятся на 5 классов:
Это промежуточный ответ сервера, информирующий, что сервер принял запрос и будет дальше совершать обработку.
Этот код присылается в ответ на запрос клиента, содержащий заголовок Upgrade. Он означает, что сервер переключился на указанный в заголовке протокол. Сервер отправляет заголовок ответа Upgrade, указывая протокол, на который он переключился.
Пример
Сервер получил запрос, обрабатывает его, но обработка ещё не завершена и требует дополнительного времени. Клиент не должен разрывать соединения, а обнулить таймер и дождаться следующего ответа. Данный код используется в протоколе WebDAV (надстройка HTTP для работы с файлами).
Прежде всего, данный код используется с заголовком Link. Используется чтобы клиент мог получить предварительные для загрузки ресурсы, пока сервер готовит основной ответ.
Самый популярный ответ сервера - означает успешную обработку запроса.
Успешно получены данные в теле или в заголовке письма. Например, страница была успешно загружена.
При SEO-оптимизации сайта, нужно учесть, что все страницы которые должны быть проиндексированы в поиске должны отдавать код 200.
Код обозначает успешное создание нового ресурса, в результате запроса клиента. Новый ресурс обозначается в виде URL-адреса в теле письма либо в заголовке Location. Также, возможно указание дополнительных характеристик объекта в поле Content-Type.
Уведомляет клиента, что запрос принят, но его обработка может занять длительное время. Ожидать завершения запроса не обязательно. Может быть предназначен для пакетной обработки, либо когда запрос обрабатывается другим сервером/процессом.
Код сообщает об успешной обработке запроса, однако предупреждает, что информация предоставлена не исходным сервером, а другим источником (резервная копия, другой сервер) и поэтому актуальность не подтверждена.
Ответ не содержит тела сообщения, а только заголовки (метаданные), которые могут быть полезны. Может используется при запуске скриптов, когда не нужно перезагружать и менять страницу. Также, например, может выполняться, когда пользователь кликает по пустому месту страницы или по изображению без ссылки.
Сервер сообщает браузеру очистить формы ввода данных (сбросить заполненные формы, поля и т.д.). Обновление при этом не требуется, тело сообщения сервера пустое.
Код обычно относится к процессу кеширования. Клиент запрашивает от сервера только определенный диапазон (часть данных) - заголовок Content-Range.
Сервер успешно обработал несколько независимых операций. Результаты помещаются в теле сообщения: XML-документ с объектом Multistatus.
Успешное завершение операции по запросу A-IM и возврат содержимого с учетом указанных параметров.
Указанный URL предлагается в нескольких вариантах. Например по MIME-типу (тип файла - аудио, текстовый, графический и др.), языковому признаку и другим свойствам. В сообщении сервера передаются все возможные альтернативы ресурса с возможностью выбора нужного варианта.
Указанный URL был изменен или не существует и пользователю предлагается переход на новый URL. Код ответа 301 означает, что адрес перемещён окончательно (навсегда). В теле сообщения указывается новый УРЛ в поле Location.
Для поисковых систем 301 редирект - это сигнал, что необходимо “склеить” старый проиндексированный УРЛ с новым и добавить его в индекс.
Указанный URL был временно перенесен на другой адрес. Новое расположение указывается в поле Location.
Поисковые системы должны продолжать индексировать старый УРЛ, ссылочный вес на него продолжает передаваться.
Например, код 302 используется, когда адрес страницы часто меняется, но контент должен оставаться в индексе по старому УРЛ.
УРЛ был изменен и клиенту необходимо перейти по новому УРЛ, указанному в поле Location c использованием метода GET.
Для того, чтобы старый УРЛ оставался в индексе необходимо, чтобы он отвечал кодом 200.
Данный код используется при кэшировании и означает, что ресурс не был изменён. Клиент может продолжать использовать версию из кеша. Робот может индексировать страницу, не загружая её. Нагрузка на сервер не увеличивается.
Код ответа сообщает, что доступ к ресурсу возможен только через прокси-сервер, указанный в поле Location заголовка. Данный код могут отдавать только родные HTTP-сервера (не прокси). Этот код связан с безопасностью данных.
В настоящее время код не используется и зарезервирован. Использовался в ранних спецификациях.
Код 307 похож на код 302 (временное перемещение) и говорит нам, что адрес ресурса временно изменен на новый, но позже вернется обратно.
307 код отличается только тем, что метод запроса (POST/GET) не изменяется.
Код 307 по спецификации более новый, чем 302.
Код 308 - аналог 301, с той разницей, что не позволяет менять метод запроса (POST/GET). Код 308 передает вес на новую страницу, так же, как и 301.
Код 308, например, может быть использован вместо 301 на сайте с большим количеством форм, работающих методом POST.
Запрос не распознан сервером по причине синтаксической ошибки. Предлагается исправить синтаксис запроса. Помогает изменение запроса, а иногда - простая очистка кеша.
Для получения запроса требуется идентификация пользователя. Необходимо заполнить поля (имя, пароль) и передать их в виде WWW-Authenticate заголовка.
Код в данный момент не используется и зарезервирован на будущее для цифровых платежных систем.
Запрос получен, но сервер не может его выполнить по причине ограничений доступа. Обычно, доступ закрыт на уровне сервера и тут не поможет идентификация через HTTP. Например, закрыт доступ для определенных IP-адресов.
Сервер получил запрос, но не нашел документа по запрашиваемому УРЛ. Наиболее частая причина - файл находится по другому адресу, ссылку указали с ошибкой либо страница была удалена (в данном случае - более корректен код 410).
Код 404 - наиболее распространен в Вебе, как и код 200.
При SEO-оптимизации важно, чтобы несуществующие УРЛ отдавали код 404, тогда поисковые роботы не будут брать их в индекс.
Код 405 означает, что сервер не применяет указанный метод к данному ресурсу. Необходимо изменить метод на указанный в поле Allow ответа сервера.
Обозначает, что сервер понял и принял запрос, но указанные параметры документа (формат/язык/кодировка..) не позволяют выполнить запрос.
Необходима идентификация пользователя для прокси-сервера. Код похож на 401 и 407. Клиент авторизуется, если сервер отдаст ответ proxy-authenticate в заголовке поля.
Код обозначает, что сервер оборвал неиспользуемое соединение, так как не получил ни одного запроса от пользователя в определенный промежуток времени. Код 408 не возвращается, если соединение прервано по инициативе клиента.
Сервер не может выполнить запрос из-за конфликтного обращения к ресурсу. Может быть использовано при совместной работе с файлами.
В данном ответе сервер сообщает, что документ ранее находился на запрашиваемом адресе, но сейчас удалён навсегда. При этом, серверу не известно новое местонахождение документа. Если документ может быть восстановлен, то корректнее отдать код 404 и робот вернется проверить страницу в будущем.
Сервер требует указать заголовок Content-Length, а иначе не может выполнить запрос.
Сервер не может успешно обработать запрос. Необходимо выполнить все условия для полей заголовков клиента (несоответствие при проверке одного или более условий).
Сервер не может выполнить запрос, так как объем запрошенной информации превышает лимит. Если это временная проблема - указывается время ожидания в поле Retry-After.
Сервер не может обработать запрос, так как указан слишком длинный URL. Это довольно редкая ошибка. Например, этот ответ может встретиться когда клиент указывает длинные параметры через метод GET, а не POST.
Сервер не может выполнить запрос, так как клиент использует неподдерживаемый формат данных.
Сервер не может выполнить запрос из-за расхождений в указанных и фактических размерах ресурса. Клиент указал в поле заголовка Range значение, которое превышает фактический размер запрашиваемого ресурса. Например, при попытке получить часть файла, которая находится за пределами конца файла.
Данные из поля Expect не удовлетворяют требованиям сервера, поэтому запрос не может быть выполнен.
Сервер поддерживает указанный тип данных, запрос имеет верный синтаксис, однако существует некая логическая/семантическая ошибка из-за которой невозможно выполнить запрос.
Указанный ресурс недоступен из-за невозможности применения к нему данного метода.
Сервер не может выполнить запрос, так как не выполнилась другая операция, от которой зависел данный запрос.
От клиента требуется обновить протокол. Сервер указывает детали в полях Upgrade и Connection.
Сервер не может выполнить запрос из-за некой внутренней ошибки. Например, нарушение конфигурации сервера, ошибки в файле .htaccess, ошибки пакета PHP или любые причины, не подпадающие под коды других ошибок класса 5xx.
Сервер не имеет возможности выполнить запрос. Чаще всего, сервер не понимает указанный в запросе метод.
Ситуация, когда запрос был отправлен прокси-серверу или серверу, выполняющему роль шлюза. В данном случае, “промежуточный” сервер запросил информацию у вышестоящего сервера и получил от него некорректный ответ.
Сервер не может выполнить запрос по техническим причинам. Чаще всего - перегрузка, обслуживание и др. Сервер может указать время, спустя которое можно повторить запрос в поле Retry-After.
Сервер, который выполняет роль шлюза не дождался ответа от вышестоящего сервера.
Сервер не может выполнить запрос из-за невозможности использования HTTP-версии, которая указана у клиента. В ответе сервер должен сообщить почему эта версия не поддерживается и какие другие протоколы поддерживаются этим сервером.
Экспериментальный код. Указывает на ошибочное связывание, в результате внутренней ошибки конфигурации. Происходит зацикливание обращения сервера.
Сервер сообщает, что закончилось место и невозможно выполнить операцию. Это бывает при перезагрузке памяти сервера. Проблема может быть временной.
На сервере не доступно расширение, которое хочет использовать клиент для своего запроса. В ответе сервера должны быть указаны доступные расширения.
Клиенту сообщается, что необходимо авторизоваться для получения доступа к сети. В ответе возможно указания ссылки на ресурс для авторизации. Данный ответ исходит не от запрашиваемого сервера, а от сервера-посредника (например, провайдера).
Проверить ответ сервера вы можете прямо в браузере либо с помощью сервисов:
Коды ответов сервера важны для поисковых систем и веб-мастеров. С их помощью можно управлять индексацией, распознавать и исправлять ошибки.