Содержание

Статус (коды) ответа сервера, массовая проверка

200

OK

«Успешно». Запрос успешно обработан.

201

Created

«Создано». Запрос успешно выполнен и в результате был создан ресурс. Этот код обычно присылается в ответ на запрос PUT «ПОМЕСТИТЬ».

202

Accepted

«Принято». Запрос принят, но ещё не обработан. Не поддерживаемо, т.е., нет способа с помощью HTTP отправить асинхронный ответ позже, который будет показывать итог обработки запроса. Это предназначено для случаев, когда запрос обрабатывается другим процессом или сервером, либо для пакетной обработки.

203

Non-Authoritative Information

«Информация не авторитетна». Этот код ответа означает, что информация, которая возвращена, была предоставлена не от исходного сервера, а из какого-нибудь другого источника. Во всех остальных ситуациях более предпочтителен код ответа 200 OK.

204

No Content

«Нет содержимого». Нет содержимого для ответа на запрос, но заголовки ответа, которые могут быть полезны, присылаются. Клиент может использовать их для обновления кешированных заголовков полученных ранее для этого ресурса.

205

Reset Content

«Сбросить содержимое». Этот код присылается, когда запрос обработан, чтобы сообщить клиенту, что необходимо сбросить отображение документа, который прислал этот запрос.

206

Partial Content

«Частичное содержимое». Этот код ответа используется, когда клиент присылает заголовок диапазона, чтобы выполнить загрузку отдельно, в несколько потоков.

300

Multiple Choice

«Множественный выбор». Этот код ответа присылается, когда запрос имеет более чем один из возможных ответов. И User-agent или пользователь должен выбрать один из ответов. Не существует стандартизированного способа выбора одного из полученных ответов.

301

Moved Permanently

«Перемещён на постоянной основе». Этот код ответа значит, что URI запрашиваемого ресурса был изменен. Возможно, новый URI будет предоставлен в ответе.

302

Found

«Найдено». Этот код ответа значит, что запрошенный ресурс временно изменен. Новые изменения в URI могут быть доступны в будущем. Таким образом, этот URI, должен быть использован клиентом в будущих запросах.

303

See Other

«Просмотр других ресурсов». Этот код ответа присылается, чтобы направлять клиента для получения запрашиваемого ресурса в другой URI с запросом GET.

304

Not Modified

«Не модифицировано». Используется для кэширования. Это код ответа значит, что запрошенный ресурс не был изменен. Таким образом, клиент может продолжать использовать кэшированную версию ответа.

305

Use Proxy

«Использовать прокси». Это означает, что запрошенный ресурс должен быть доступен через прокси. Этот код ответа в основном не поддерживается из соображений безопасности.

306

Permanent Redirect

«Перенаправление на постоянной основе». Это означает, что ресурс теперь постоянно находится в другом URI, указанном в заголовке Location: HTTP Response. Данный код ответа имеет ту же семантику, что и код ответа 301 Moved Permanently, за исключением того, что агент пользователя не должен изменять используемый метод HTTP: если POST использовался в первом запросе, POST должен использоваться и во втором запросе.

400

Bad Request

«Плохой запрос». Этот ответ означает, что сервер не понимает запрос из-за неверного синтаксиса.

401

Unauthorized

«Неавторизовано». Для получения запрашиваемого ответа нужна аутентификация. Статус похож на статус 403, но,в этом случае, аутентификация возможна.

402

Payment Required

«Необходима оплата». Этот код ответа зарезервирован для будущего использования. Первоначальная цель для создания этого когда была в использовании его для цифровых платежных систем(на данный момент не используется).

403

Forbidden

«Запрещено». У клиента нет прав доступа к содержимому, поэтому сервер отказывается дать надлежащий ответ.

404

Not Found

«Не найден». Сервер не может найти запрашиваемый ресурс. Код этого ответа, наверно, самый известный из-за частоты его появления в вебе.

405

Method Not Allowed

«Метод не разрешен». Сервер знает о запрашиваемом методе, но он был деактивирован и не может быть использован. Два обязательных метода, GET и HEAD, никогда не должны быть деактивированы и не должны возвращать этот код ошибки.

406

Not Acceptable

Этот ответ отсылается, когда веб сервер после выполнения server-driven content negotiation, не нашел контента, отвечающего критериям, полученным из user agent.

407

Proxy Authentication Required

Этот код ответа аналогичен коду 401, только аутентификация требуется для прокси сервера.

408

Request Timeout

Ответ с таким кодом может прийти, даже без предшествующего запроса. Он означает, что сервер хотел бы отключить это неиспользуемое соеднинение. Этот метод используется все чаще с тех пор, как некоторые браузеры, вроде Chrome и IE9, стали использовать HTTP механизмы предварительного соединения для ускорения серфинга (смотрите баг 634278, будущей реализации этого механизма в Firefox). Также учитывайте, что некоторые серверы прерывают соединения не отправляя подобных сообщений.

409

Conflict

Этот ответ отсылается, когда запрос конфликтует с текущим состоянием сервера.

410

Gone

Этот ответ отсылается, когда запрашиваемый контент удален с сервера.

411

Length Required

Запрос отклонен, потому что сервер требует указание заголовка Content-Length, но он не указан.

412

Precondition Failed

Клиент указал в своих заголовках условия, которые сервер не может выполнить

413

Request Entity Too Large

Размер запроса превышает лимит, объявленный сервером. Сервер может закрыть соединение, вернув заголовок Retry-After

414

Request-URI Too Long

URI запрашиваемый клиентом слишком длинный для того, чтобы сервер смог его обработать

415

Unsupported Media Type

Медиа формат запрашиваемых данных не поддерживается сервером, поэтому запрос отклонен

416

Requested Range Not Satisfiable

Диапозон указанный заголовком запроса Range не может быть выполнен; возможно, он выходит за пределы переданного URI

417

Expectation Failed

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

500

Internal Server Error

«Внутренняя ошибка сервера». Сервер столкнулся с ситуацией, которую он не знает как обработать.

501

Not Implemented

«Не выполнено». Метод запроса не поддерживается сервером и не может быть обработан. Единственные методы, которые сервера должны поддерживать (и, соответственно, не должны возвращать этот код) — GET и HEAD.

502

Bad Gateway

«Плохой шлюз». Эта ошибка означает что сервер, во время работы в качестве шлюза для получения ответа, нужного для обработки запроса, получил недействительный (недопустимый) ответ.

503

Service Unavailable

«Сервис недоступен». Сервер не готов обрабатывать запрос. Зачастую причинами являются отключение сервера или то, что он перегружен. Обратите внимание, что вместе с этим ответом удобная для пользователей(user-friendly) страница должна отправлять объяснение проблемы. Этот ответ должен использоваться для временных условий и Retry-After: HTTP-заголовок должен, если возможно, содержать предполагаемое время до восстановления сервиса. Веб-мастер также должен позаботиться о заголовках, связанных с кэшем, которые отправляются вместе с этим ответом, так как эти ответы, связанные с временными условиями, обычно не должны кэшироваться.

504

Gateway Timeout

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

505

HTTP Version Not Supported

«HTTP-версия не поддерживается». HTTP-версия, используемая в запроcе, не поддерживается сервером.

Руководство по HTTP. Коды статусов. – PROSELYTE

Код статуса представляет собой ответ сервера, который состоит из трёх цифр. Первая определяет класс ответа, а две другие указывают конкретный ответ.

Существует пять основных категорий кодов статусов. Все они приведены ниже:

Код и описание
11xx: Информационное

Означает, что запрос был успешно получен и идёт его обработка.

22xx: Успешное выполнение
Запрос был успешно получен, понят и принят.
33xx: Перенаправление                                      Последующие действия должны быть предприняты для выполнения запроса.
44xx: Ошибка на стороне клиент

Запрос содержит синтаксическую ошибку, либо не корректен.

55xx: Ошибка на стороне сервера
Сервер не может выполнить обработать корректный запрос.

Коды статусов расширяемы и HTTP приложение не должно понимать значение всех кодов.
Ниже приведены наиболее распространённые код статусов по категориям.


1ХХ: Информационные

СообщениеОписание
100 ContinueТолько часть запроса была получена сервером, но на данный момент запрос не был отклонён. Клиент должен продолжать запрос.
101 Switching ProtocolsСервер выбирает протокол.

2ХХ: Успешное выполнение

СообщениеОписание
200 OKЗапрос успешен
201 CreatedЗапрос выполнен, новый ресурс создан.
202 AcceptedЗапрос принят, но обработка не завершена.
203 Non-authoritative InformationИнформация в заголовке получена из локальной или сторонней копии, а не от оригинального сервера.
204 No ContentКод статуса и заголовок переданы в ответе, но данные отсутствуют.
205 Reset ContentБраузер должен очистить форму для этой транзакции для дополнительного ввода.
206 Partial ContentСервер возвращает часть данных. Используется для ответа на запрос, содержащий заголовок Content-Range.

3ХХ: Перенаправление

СообщениеОписание
300 Multiple ChoicesСписок ссылок. Пользователь может выбрать ссылку и перейти к локации. Максимальное количество ссылок – 5.
301 Moved PermanentlyЗапрашиваемая страница была перенесена на новую URL.
302 FoundЗапрашиваемая страница была временно перенесена на новую URL.
303 See OtherЗапрашиваемая страница может быть найдена по другой URL.
304 Not ModifiedКод ответа для заголовка If-Modifier-Since или If-None-Match, где URL не была изменена с крайней даты обновления.
305 Use ProxyДоступ к запрашиваемой странице должен быть запрошен через прокси, который указан в заголовке Location.
306 UnusedДанный код использовался в предыдущей версии, но на данный момент он не используется, а сам код был зарезервирован.
307 Temporary RedirectЗапрашиваемая страница была временно перенесена на новую URL.

4ХХ: Ошибка на стороне клиента

СообщениеОписание
400 Bad RequestСервер не понял запрос.
401 UnauthorizedЗапрашиваемая страница требует  имя пользователя и пароль.
402 Payment RequiredНа данный момент клиент не может использовать данный код.
403 ForbiddenДоступ к запрашиваемой странице запрещён.
404 Not FoundСервер не может найти запрашиваемую страницу.
405 Method Not AllowedМетод, указанный в запросе, является недопустимым.
406 Not AcceptableСервер генерирует ответ, который не может быть принят клиентом.
407 Proxy Authentication RequiredКлиент должен авторизоваться с помощью прокси-сервера прежде чем запрос сможет быть обработан.
408 Request TimeoutЗапрос длился дольше, чем сервер был готов ждать.
409 ConflictЗапрос не может быть завершён из-за конфликта.
410 GoneЗапрашиваемая страница больше недоступна.
411 Length RequiredЭлемент “Content-Length” не определён. Сервер не может принять запрос без данного элемента.
412 Precondition FailedСервер признал предусловия запроса ошибочными.
413 Request Entity Too LargeСервер не примет данный запрос, так как тело запроса слишком большое.
414 Request-url Too LongСервер не примет данный запроса, так как URL слишком большая (длинная).
415 Unsupported Media TypeСевер не примет данный запрос, так как данный тип медиа файла не поддерживается.
416 Requested Range Not SatisfiableЗапрашиваемый диапазон байтов недоступен и находится за пределами диапазона.
417 Expectation FailedОжидания, переданные в заголовке запроса не могут быть удовлетворены данным сервером.

5ХХ: Ошибка на стороне сервера

СообщениеОписание
500 Internal Server ErrorЗапрос не выполнен. Сервер попал в непредвиденные условия.
501 Not ImplementedЗапрос не выполнен. Сервер не поддерживает запрашиваемый функционал.
502 Bad GatewayЗапрос не выполнен. Сервер получил недоступный запрос от следующего сервера.
503 Service UnavailableЗапрос не выполнен. На данный момент сервер перегружается, или не работает.
504 Gateway TimeoutСоединение закрыто по времени.
505 HTTP Version Not SupportedСервер не поддерживает данную версию протокола HTTP.

На этом мы заканчиваем изучение код статуса протокола HTTP.
В следующей статье мы рассмотрим поля заголовка (header fields).

HTTP. Методы, статус-коды, заголовки, редиректы, SSL

Миша Радионов

Опубликовано: 06 мая 2021

Вернуться в блог

Содержание

  • Видео
  • HTTP
    • Структура HTTP-запросов и ответов
    • URL запроса
    • Методы HTTP-запросов
    • Статус-коды ответа
    • Заголовки HTTP
  • HTTP-редиректы
  • SSL шифрование
  • Версии HTTP
    • HTTP/2
    • HTTP/3

Что отличает настоящего айтишника?

Настоящий знает, как работает Интернет. Рассказываем для всех простым языком, как работает HTTP.

Видео

HTTP

Структура HTTP-запросов и ответов

В HTTP и запрос, и ответ имеют похожую структуру:

  1. URL
  2. Метод
  3. Версия HTTP
  4. Заголовки
  5. Статус-код (обязательно только для HTTP-ответов)
  6. Тело (необязательно)

Пример HTTP-запроса:


POST /cgi-bin/process.cgi HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
Host: www.tutorialspoint.com
Content-Type: application/x-www-form-urlencoded
Content-Length: length
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Connection: Keep-Alive

licenseID=string&content=string&/paramsXML=string

, где

  • POST — метод,
  • /cgi-bin/process.cgi — URL,
  • HTTP/1. 1 — версия протокола HTTP,
  • User-Agent, Host и другие — заголовки
  • licenseID=string&content=string&/paramsXML=string — тело запроса.

Пример HTTP-ответа:


HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache/2.2.14 (Win32)
Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
Content-Length: 88
Content-Type: text/html
Connection: Closed

<html>
<body>
<h2>Hello, World!</h2>
</body>
</html>

В данном ответе отсутствует URL и метод, зато появился статус-код 200, означающий «успех».

URL запроса

Структура URL-адреса
http://blog.example.com:80/catalog/category/knifes?key1=value1&amp;amp;key2=value2#anchor

где

  • http:// — протокол
  • blog — поддомен (субдомен, домен третьего уровня)
  • example — домен (домен второго уровня)
  • com — доменная зона (домен первого уровня)
  • 80 — порт. Для http — 80, для https — 443
  • /catalog/category/knifes — ЧПУ-адрес (человеко-понятный URL)
  • key1=value1&key2=value2 — GET параметры запроса
  • anchor — якорь
Абсолютные и относительные URL

Абсолютные адреса в проекте — зло. Используйте относительные.

Абсолютный URL

https://developer.mozilla.org/ru/docs/Learn

Абсолютный URL, скрыт протокол

//developer.mozilla.org/ru/docs/Learn

Относительный URL (неправильно) 🚫

ru/docs/Learn

если мы на странице https://domain.ru/ru/about, то преобразуется в https://domain.ru/ru/aboutru/docs/Learn

Относительный URL (правильно) ✅

/ru/docs/Learn

если мы на странице https://domain.ru/ru/about, то преобразуется в https://domain.ru/ru/docs/Learn

Якоря (анкоры) 
⚓️

Якоря придуманы в HTML, чтобы давать ссылки не просто на HTML-страницу, а на определенное место на странице. Позже якоря стали активно использоваться для передачи параметров в JS.

URL с якорем

https://domain.ru/url#someAnchor

HTML-элемент, на который ведет якорь









<h3 name="someAnchor">Заголовок с якорем</h3>









Методы HTTP-запросов

Если при повторении одного и того же запроса на сервере ничего не меняется, запрос считается идемпотентным. Если повторение одинакового запроса несколько раз изменяет состояние сервера, то он не идемпотентен и, вообще говоря, менее безопасен.

МетодPOST-параметрыИдемпотентностьПредназначение
GETнетдаполучает информацию о ресурсе
POSTданетсоздает ресурс
PUTдадазаменяет ресурс целиком
PATCHдадаредактирует ресурс
DELETEнетдаудаляет ресурс
HEADнетдане получает body, только отправляет и получает HTTP-заголовки

PUT заменяет существующую сущность. Те элементы сущности, которые не представлены в запросе, будут очищены или заменены на null.

GET и POST параметры

В контексте методов HTTP-запросов стоит упомянуть GET и POST параметры, так как вы будете постоянно с ними встречаться и так проще понять, как используются методы.

GET-параметры передаются в URL запроса. Пример URL с GET-параметрами я приводил выше. Любой из перечисленных ниже методов может иметь или не иметь GET-параметры, это совершенно нормально.

POST-параметры — это любые параметры, передаваемые в теле (body) запроса. POST-параметры не следует использовать для некоторых методов, например, для GETDELETE и HEAD.

Статус-коды ответа

По группам
  • 100 — 199 Информационные
  • 200 — 299 Успешные
  • 300 — 399 Редиректы
  • 400 — 499 Клиентские ошибки
  • 500 — 599 Серверные ошибки
Популярные коды ответа
  • Для редиректов SEO-шники рекомендуют 301 редиректы.
  • 401 не авторизован (юзер не представился)
  • 403 запрещено (юзер не уполномочен)
  • 404 ресурс не найден
  • 418 я чайник
  • 419 кука протухла (обычно ошибка проверки CSRF)
  • 502 Bad Gateway. Программа веб-сервер (Nginx) получила неправильный ответ от бэкенда (PHP). Скорее всего, что-то сломалось или неправильно настроено на сервере
  • 504 Gateway Timeout. Программа веб-сервер устала ждать ответа от бэкенда и отменила запрос к нему. Скорее всего, на бэкенде происходит что-то очень долгое, какое-то большое вычисление. Ну и все равно это не нормально, такого быть не должно.
  • 503 Maintenance Mode. На сервере ведутся технические работы.

Коды ответа, как и заголовки, можно посмотреть в браузере на вкладке Network или получить командой curl -I domain.ru. В отличие от заголовков, коды ответа бывают только в ответе и не используются в запросе.

Заголовки HTTP

Заголовки — часть HTTP-запроса и/или HTTP-ответа, они не видимы пользователю. Представляют собой пары ключ: значение. Заголовки можно посмотреть в браузере на вкладке Network или получить командой curl -I domain.ru (так можно получить только заголовки ответа сервера).

Заголовки запроса
  • Host — ВАЖНО. Домен, по которому мы переходим
  • Cookie — куки, отдаваемые браузером серверу
  • User-Agent — браузер, которым делаем запрос
  • Accept-Language и Accept-Encoding — принимаемые браузером язык и кодировка
  • Referer — предыдущая страница
  • Authorization — реквизиты для базовой авторизации (логин, пароль)
Заголовки ответа
  • Cache-Control — сервер говорит браузеру, как кэшировать данные
  • Content-Type — тип и подтип содержимого, а также кодировка и приложение для открытия содержимого. Примеры:
    • Content-Type: text/html; charset=UTF-8 — Тип текст, подтип HTML. Кодировка UTF-8
    • Content-Type: image/gif — Тип картинка, подтип GIF
    • Content-Type: application/pdf — Тип «открываемый внешним приложением», подтип PDF
  • Content-Disposition — говорит браузеру, скачивать или открывать документ как веб-страницу
  • Location — заголовок для редиректа
  • Set-Cookie — сервер передает браузеру куку
  • WWW-Authenticate — выводит окно с базовой аутентификацией
  • Content-Encoding — сервер говорит браузеру, сжата ли страница и в каком виде
  • Server и X-Powered-By — технологии, на которых работает сайт

HTTP-редиректы

Редиректы — способ перенаправить браузер на другой URL. Это похоже на то, как если бы вы пришли в магазин и там увидели надпись «мы переехали, вот наш новый адрес». После этого вы идете в магазин по новому адресу. Важно понимать, что редирект со стороны сайта лишь просит ваш браузер перейти на другой адрес, а не подсовывает вам другую страницу. Другими словами, технически редирект происходит на стороне клиента, а не сервера.

www и http://

Проверка редиректов очень важна для проверки настроек префиксов домена типа www и http/https.

То есть у каждого домена обычно есть 4 варианта написания:

  • http://domain.ru
  • http://www.domain.ru
  • https://domain.ru (обычно основной вариант)
  • https://www.domain.ru

И 3 из этих 4 вариантов обязательно должны ссылаться на один из них, то есть на главный. Главный вариант определяет заказчик, но обычно это https://domain.ru

Инструменты

Редиректы можно проверить браузером через вкладку Network


Разработчикам будет удобнее воспользоваться утилитой


	curl -I -L https://domain. ru
Как сбросить кэш редиректов браузера

На Windows нажать ctrl+H, затем «очистить историю», оставить включенной (отжатой) только галочку напротив «Изображения и другие файлы, сохраненные в кэше». Затем нажать «удалить данные».

Принцип — передача только зашифрованных данных.

Типы SSL-сертификатов

  • Платные (Comodo, Thawte, reg.ru)
    • Срок — 1 год или более
    • Стоимость — от 1500 руб/год
  • Let’s Encrypt (обычно мы используем именно LE)
    • Срок — 3 месяца
    • Стоимость — бесплатно
    • Нюанс: Wild Card сертификаты для поддоменов (*.flagstudio.ru). Доступны в LE только при DNS-аутентификации, то есть добавлении TXT-записи, которую нужно обновлять каждые 3 месяца. Для обновления используется API, которое есть не у всех DNS-провайдеров.
Диагностика SSL

Если на сайте проблемы с SSL, то причина — в одном из двух:

  • Что-то не так с сертификатом (кончился, выдан не на этот домен или самоподписанный)
  • Страница запрашивает что-то по HTTP

На скриншоте видно, как посмотреть подробности о сертификате и наличие ошибок в странице. Конкретно на этом скриншоте показана вторая проблема, так называемая «mixed-content error», то есть часть контента прилетает по HTTP.

Для диагности SSL на вашем сайте вы также можете использовать онлайн-сервис  https://www.ssllabs.com/ssltest/ .
Учтите, данные о сертификате, как и HTTP-редиректы, сильно кэшируются браузером. Сбрасываются так же, как кэш редиректов (смотрите выше).

Версии HTTP

HTTP/2

Суть — мультиплексирование запросов по TCP.

Преимущества перед HTTP/1.1

  • Скорость. HTTP/2 — бинарный протокол, а HTTP/1.1 — текстовый
  • Скорость. Мультиплексирование множества запросов в одном соединении TCP
  • Скорость. Сжатие HTTP-заголовков
  • Server Push. Принудительная отправка данных сервером в браузер
  • Приоритеты запросов

Минусы

  • Из-за «head-of-line blocking» на медленном интернете HTTP/1.1 работает быстрее
  • Для работы HTTP/2 нужен SSL

Распространение: По данным W3Techs на 1 ноября 2020 года, 49% из 10 млн самых популярных интернет-сайтов поддерживают протокол HTTP/2.

Подробная статья с понятными картинками — https://habr.com/ru/company/nix/blog/304518/

HTTP/3

Суть — мультиплексирование по UDP.

Преимущества перед HTTP/2:

  • Решена проблема «head-of-line blocking»
  • Шифрование и транспорт объединены, пакеты шифруются независимо
  • Протокол реализуется на уровне приложений, а не ОС. Поэтому быстро внедряется

Минусы:

  • Протокол реализуется на уровне приложений, а не ОС. Поэтому HTTP/3 использует больше CPU

Результаты: По данным Google, страницы загружаются примерно на 5% быстрее, а в потоковом видео на 30% меньше подвисаний по сравнению с TCP.

Распространение: По данным W3Techs на 1 сентября 2020 года, 7% из 10 млн самых популярных интернет-сайтов поддерживают протокол HTTP/3.

Если у вас появились какие-то вопросы, вы можете задать их в комментариях, а мы на них ответим 🙂


Последние записи блога


Please enable JavaScript to view the comments powered by Disqus.

Коды состояния в HTTP

Коды состояния в HTTP

1992 г.

Это исторический документ, и он уже не точен. За актуальную информацию о спецификации HTTP см. в последней черновики HTTP/1.1

Значения числового кода состояния для HTTP-запросы выглядят следующим образом. Данные разделы сообщений Error, Forward и redirection ответы могут быть использованы содержать удобочитаемую диагностическую информацию.

Успех 2xx

Эти коды указывают на успех. Раздел body, если он присутствует, является возвращаемым объектом. по запросу. Это объект формата MIME. Он имеет формат MIME и может быть только в формате text/plain, text/html или в одном из форматов, указанных как допустимые в запросе.

ОК 200

Просьба была выполнена.

СОЗДАН 201

После команды POST это указывает на успех, но текстовая часть в строке ответа указывается URI, по которому вновь созданный документ должен быть известным.

Принято 202

Заявка принята в обработку, но обработка еще не завершена. было завершено. Запрос может быть, а может и не быть выполнен в конечном итоге, поскольку он могут быть запрещены, когда обработка действительно имеет место. нет возможности для возврата состояния из асинхронных операций, таких как эта.

Частичная информация 203

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

Нет ответа 204

Сервер получил запрос, но нет информации для отправки обратно, и клиент должен оставаться в том же представлении документа. В основном это позволяет ввод для скриптов без одновременного изменения документа.

Ошибка 4хх, 5хх

Коды 4xx предназначены для случаев, когда клиент, похоже, ошибся, и коды 5xx для случаев, когда сервер знает, что сервер ошибся. Различить эти случаи в общем случае невозможно, поэтому разница только информационная.

Раздел body может содержать документ, описывающий ошибку в удобочитаемом виде. форма. Документ находится в формате MIME формате и может быть только в формате text/plain, text/html или одном из указанных форматов. как допустимо в запросе.

Неверный запрос 400

Запрос имел неправильный синтаксис или был невозможен по своей сути.

Неавторизованный 401

Параметр этого сообщения дает спецификацию схем авторизации. которые приемлемы. Клиент должен повторить запрос с подходящим Заголовок авторизации.

PaymentRequired 402

Параметр этого сообщения дает спецификацию схем тарификации. приемлемый. Клиент может повторить запрос с подходящим заголовком ChargeTo.

Запрещено 403

Запрос касается чего-то запретного. Авторизация не поможет.

Не найдено 404

Сервер не нашел ничего, соответствующего указанному URI

Внутренняя ошибка 500

Сервер столкнулся с непредвиденным условием, которое помешало ему выполнить запрос.

Не реализовано 501

Сервер не поддерживает необходимое средство.

Сервис временно перегружен 502 (БУДЕТ ОБСУЖДАТЬСЯ)

Сервер не может обработать запрос из-за высокой нагрузки (будь то HTTP-обслуживание или другие пожелания). Подразумевается, что это временное состояние который может быть смягчен в другое время.

Тайм-аут шлюза 503 (БУДЕТ ОБСУЖДАТЬСЯ)

Это эквивалентно внутренней ошибке 500, но в случае сервера, который в свою очередь обращается к какой-либо другой службе, это указывает на то, что ответ из другой службы не вернулся в течение времени, когда шлюз был готов ждать. Как с точки зрения клиента и HTTP-транзакции другая служба скрыта на сервере, это может рассматриваться одинаково до Internal error 500, но имеет больше диагностическое значение.

Примечание: Коды 502 и 503 являются новыми и обсуждаются, сентябрь 19, 1994

Коды в этом разделе указывают на действие, которое необходимо предпринять (обычно автоматически). клиентом для выполнения запроса.

Перемещено 301

Запрошенным данным присвоен новый URI, изменение является постоянным. (N.B. это оптимизация, которая должна быть прагматически включена в это определение. Браузеры с возможностью редактирования ссылок должны автоматически ссылка на новую ссылку, где это возможно)

Ответ содержит одну или несколько строк заголовка вида

 URI:  Строка CrLf
 

Которые указывают альтернативные адреса для рассматриваемого объекта. Струна необязательное поле комментария. Если ответ должен указать набор вариантов каждый из которых соответствует запрошенному URI, то составная/альтернативная упаковка может использоваться для различения различных наборов

Найдено 302

Запрошенные данные фактически находятся по другому URL-адресу, однако перенаправление может быть иногда изменено (при размещении ссылок на такие виды документа браузер должен по умолчанию использовать Udi перенаправления документ, но есть возможность ссылки на окончательный документ) как для «Вперед».

Формат ответа такой же, как и для Moved .

Метод 303

 Метод: <метод> 
часть тела
 

Примечание: Этот код состояния необходимо указать более подробно. За пока только для обсуждения.

Как и найденный ответ, это говорит о том, что клиент должен попробовать другую сеть. адрес. В этом случае вместо GET можно использовать и другой метод.

Раздел body содержит параметры, которые будут использоваться для метода. Этот позволяет документу быть указателем на сложную операцию запроса.

Перед телом могут стоять следующие дополнительные поля как указано.

Не изменено 304

Если клиент выполнил условный GET и доступ разрешен, но документ не изменялся с даты и времени, указанных в Если-Изменено-С поле, сервер отвечает кодом состояния 304 и не отправляет документ тело клиенту.

Заголовки ответа такие же, как если бы клиент отправил запрос HEAD, но с ограничениями. только те заголовки, которые имеют смысл в данном контексте. Это означает, что только заголовки которые имеют отношение к менеджерам кеша и которые могли измениться независимо даты последнего изменения документа. Примеры включают Date , Server и Истекает .

Цель этой функции — обеспечить эффективное обновление локального кеша. информации (включая соответствующую метаинформацию), не требуя накладных расходов нескольких HTTP-запросов (например, HEAD, за которым следует GET) и минимизировать передача информации, уже известной запрашивающему клиенту (обычно кеширующий прокси).

Что такое коды состояния HTTP? Список важных кодов состояния

Что такое коды состояния HTTP?

Код состояния HTTP — это ответ сервера на запрос браузера. Когда вы посещаете веб-сайт, ваш браузер отправляет запрос на сервер сайта, а затем сервер отвечает на запрос браузера трехзначным кодом: кодом состояния HTTP.

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

Первая цифра каждого трехзначного кода состояния начинается с одной из пяти цифр от 1 до 5; вы можете видеть, что это выражается как 1xx или 5xx для обозначения кодов состояния в этом диапазоне. Каждый из этих диапазонов охватывает разные классы ответов сервера.

Общие классы кодов состояния HTTP:

1xxs — Информационные ответы: Сервер обрабатывает запрос.

2xxs – Успех! Запрос был успешно выполнен, и сервер дал браузеру ожидаемый ответ.

3xxs – Перенаправление:   Вас перенаправили куда-то еще. Запрос получен, но есть какая-то переадресация.

4xxs — Ошибки клиента: Страница не найдена. Не удалось получить доступ к сайту или странице. (Запрос был сделан, но страница недействительна — это ошибка на стороне веб-сайта и часто появляется, когда страница не существует на сайте.)

5xxs — Ошибки сервера:   Сбой. Клиент сделал действительный запрос, но сервер не смог выполнить запрос.

Наиболее важные коды состояния для SEO-специалистов

Каждому профессиональному SEO-специалисту и владельцу веб-сайта важно понимать коды состояния, которые оказывают наибольшее влияние на SEO.

Представьте, что вы работаете над сайтом, который показывает много ошибок 5xx; вы сразу же захотите узнать, что это проблема сервера. Ошибки 4xx влияют на взаимодействие с посетителями, поэтому вы сразу же можете начать думать о любых изменениях, которые вы могли внести в свои URL-адреса, или о том, были ли у вас удалены какие-либо страницы. Как только вы поймете причину проблемы, вы можете рассмотреть возможность реализации пользовательской страницы 404 или использовать всемогущую переадресацию 301 для отправки посетителей в нужное место.

Стоит выучить — и запомнить — самые важные коды состояния, которые должен знать каждый оптимизатор:

Код состояния HTTP 200 — OK

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

Код состояния HTTP 301 — постоянное перенаправление

Перенаправление 301 следует использовать каждый раз, когда один URL-адрес необходимо постоянно перенаправлять на другой . Перенаправление 301 означает, что посетители и боты, попадающие на эту страницу, будут перенаправлены на новый URL. Кроме того, ссылочный вес — сила, передаваемая всеми этими с трудом заработанными ссылками на ваш контент, — также передается новому URL-адресу через переадресацию 301. Несмотря на заявления Google о том, что все редиректы 3xx обрабатываются одинаково, тесты показали, что это не совсем так. Перенаправление 301 остается предпочтительным методом для постоянных перенаправлений страниц.

Код состояния HTTP 302 — временное перенаправление

Перенаправление 302 похоже на 301 в том смысле, что посетители и боты переходят на новую страницу, но ссылочный вес может не передаваться. Мы не рекомендуем использовать переадресацию 302 для постоянных изменений. Использование 302 заставит сканеры поисковых систем рассматривать перенаправление как временное, а это означает, что оно может не проходить по ссылочному весу, как это делает магический 301.

Код состояния HTTP 404 — Not Found

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

На каждом сайте есть страницы, которые возвращают коды состояния 404. Эти страницы не всегда нужно перенаправлять; Есть и другие варианты. Одним из распространенных заблуждений является то, что оптимальным для SEO является просто перенаправление 301 страниц, которые возвращают код состояния 404 на домашнюю страницу данного домена. На самом деле в большинстве случаев это плохая идея, потому что это может сбить с толку пользователей, которые могут не осознавать, что веб-страница, к которой они пытались получить доступ, не существует.

Если страницы, возвращающие коды 404, являются страницами с высоким авторитетом и большим трафиком или имеют очевидный URL-адрес, на который предназначены посетители или ссылки, вам следует использовать переадресацию 301 на наиболее релевантную из возможных страниц. Например, если ваша страница о кексах без сахара больше не существует, вы можете перенаправить этот URL-адрес с кодом 301 на страницу категории рецептов без сахара.

Вне этих случаев может быть необходимо, чтобы URL-адрес возвращал ошибку 404 — это предотвратит индексацию и повторное сканирование поисковыми системами. Предоставьте своим посетителям наилучшие возможности с пользовательской страницей 404, как это предлагается в этом руководстве Google Search Console. Например, сайты электронной коммерции часто создают страницы 404, когда товары заканчиваются на складе, поэтому эти сайты являются отличными кандидатами для создания пользовательской страницы 404 электронной коммерции.

Код состояния HTTP 410 — Исчез

Номер 410 более постоянен, чем номер 404; это означает, что страница исчезла. Страница больше недоступна с сервера, и адрес переадресации не настроен. Любые ссылки на вашем сайте, которые указывают на страницу 410, отправляют ботов и посетителей на мертвый ресурс, поэтому, если вы их видите, удалите любые ссылки или ссылки на них из своего контента.

Код состояния HTTP 500 — внутренняя ошибка сервера

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

Код состояния HTTP 503 — Служба недоступна

Другая разновидность 500, ответ 503 означает, что сервер недоступен. Всех (человеков или иных) просят вернуться позже. Это может быть связано с временной перегрузкой сервера или техническим обслуживанием сервера. Код состояния 503 гарантирует, что поисковые системы скоро вернутся, потому что страница или сайт будут недоступны только на короткое время.

Продолжайте учиться

  • Перенаправление

  • Канонизация

  • Руководство для начинающих по SEO

  • Всегда ли 404 страницы вредны для SEO?

  • Как обращаться с просроченным содержимым?

Попробуй

  • MozBar — панель инструментов SEO MozBar позволяет просматривать в браузере соответствующие показатели во время работы в Интернете.

  • Link Explorer — ваш универсальный инструмент для создания ссылок. Быстро находите возможности для создания ссылок, отслеживайте обнаруженные и потерянные ссылки с течением времени и создавайте списки отслеживания ссылок, чтобы увидеть, когда вы получили ссылку. Мощные данные о ссылках для более эффективного построения ссылок.

Задействуйте свои навыки

Измерьте влияние сайта с помощью Link Explorer

Link Explorer — это инструмент для анализа популярности и обратных ссылок, который позволяет исследовать и сравнивать любой сайт в Интернете.

Реестр кода состояния протокола передачи гипертекста (HTTP)

100 Продолжить [RFC9110, раздел 15.2.1]
101 Протоколы переключения [RFC9110, раздел 15. 2.2]
102 Обработка [RFC2518]
103 Ранние подсказки [RFC8297]
104-199 Не назначено
200 ОК [RFC9110, раздел 15.3.1]
201 Создан [RFC9110, раздел 15.3.2]
202 Принято [RFC9110, раздел 15.3.3]
203 Неофициальная информация [RFC9110, раздел 15.3.4]
204 Нет содержимого [RFC9110, раздел 15. 3.5]
205 Сбросить содержимое [RFC9110, раздел 15.3.6]
206 Частичное содержимое [RFC9110, раздел 15.3.7]
207 Мультистатус [RFC4918]
208 Уже сообщалось [RFC5842]
209-225 Не назначено
226 IM Используется [RFC3229]
227-299 Не назначено
300 Множественный выбор [RFC9110, раздел 15. 4.1]
301 Перемещено навсегда [RFC9110, раздел 15.4.2]
302 Найдено [RFC9110, раздел 15.4.3]
303 См. Другое [RFC9110, раздел 15.4.4]
304 Не изменено [RFC9110, раздел 15.4.5]
305 Использовать прокси [RFC9110, раздел 15.4.6]
306 (не используется) [RFC9110, раздел 15.4.7]
307 Временное перенаправление [RFC9110, раздел 15.4.8]
308 Постоянное перенаправление [RFC9110, раздел 15. 4.9]
309-399 Не назначено
400 Неверный запрос [RFC9110, раздел 15.5.1]
401 Неавторизованный [RFC9110, раздел 15.5.2]
402 Требуется оплата [RFC9110, раздел 15.5.3]
403 Запрещено [RFC9110, раздел 15.5.4]
404 Не найдено [RFC9110, раздел 15.5.5]
405 Метод не разрешен [RFC9110, раздел 15.5.6]
406 Неприемлемо [RFC9110, раздел 15. 5.7]
407 Требуется аутентификация прокси-сервера [RFC9110, раздел 15.5.8]
408 Время ожидания запроса [RFC9110, раздел 15.5.9]
409 Конфликт [RFC9110, раздел 15.5.10]
410 Ушел [RFC9110, раздел 15.5.11]
411 Требуемая длина [RFC9110, раздел 15.5.12]
412 Предварительное условие не выполнено [RFC9110, раздел 15.5.13]
413 Содержимое слишком большое [RFC9110, раздел 15. 5.14]
414 URI слишком длинный [RFC9110, раздел 15.5.15]
415 Неподдерживаемый тип носителя [RFC9110, раздел 15.5.16]
416 Диапазон не удовлетворяет [RFC9110, раздел 15.5.17]
417 Ожидание не оправдалось [RFC9110, раздел 15.5.18]
418 (не используется) [RFC9110, раздел 15.5.19]
419-420 Не назначено
421 Неверно направленный запрос [RFC9110, раздел 15. 5.20]
422 Необрабатываемый контент [RFC9110, раздел 15.5.21]
423 Заблокировано [RFC4918]
424 Ошибка зависимости [RFC4918]
425 Слишком рано [RFC8470]
426 Требуется обновление [RFC9110, раздел 15.5.22]
427 Не назначено
428 Требуется предварительное условие [RFC6585]
429 Слишком много запросов [RFC6585]
430 Не назначено
431 Поля заголовка запроса слишком велики [RFC6585]
432-450 Не назначено
451 Недоступно по юридическим причинам [RFC7725]
452-499 Не назначено
500 Внутренняя ошибка сервера [RFC9110, раздел 15.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *