Коды состояния http и что они значат для seo (перевод)

Почему появляется ошибка 500 Internal Server Error

2.1. Серверные ошибки

Начните работу по исправлению 500 внутренней ошибки сервера с анализа логов ошибок. Чтобы их проверить, перейдите в панель управления хостингом и найдите раздел с настройками ресурса.

Выберите в логах вкладку «Error» и необходимую дату, чтобы просмотреть отчёт за определённый день, или укажите диапазон времени.

Ещё один способ обнаружить источник ошибку 500 Internal Server Error — провести техническую проверку, которая доступна в разделе настроек.

2.2. Некорректный файл .htaccess

Зачастую error 500 отображается из-за неправильных директив в .htaccess. Любая некорректная команда или лишний символ могут вызвать сбой работы ресурса. Узнать, что ошибка именно в .htaccess, можно при помощи простого теста. Зайдите в панель управления хостинг-провайдера, перейдите в раздел «Файл-менеджер», чтобы попасть в корневой раздел проекта, и смените имя .htaccess на другое, например, test.

Если проект заработал с неактивным файлом .htaccess, то проблема именно в нём. В такой ситуации внимательно проверьте файл, а если это вызывает затруднения, воспользуйтесь онлайн-тестером. Скопируйте содержимое .htaccess и вставьте в соответствующее поле, укажите домен, обязательно начав его с http://, и нажмите «Test».

В отчёте строки с ошибками будут выделены красным цветом.

Если тестер обнаружил какие-то проблемы, вероятнее всего, именно они стали причиной внутренней серверной ошибки.

Также ошибку могут вызывать комментарии, размещённые в .htaccess не в начале строки. При добавлении комментариев в середине строки после любых директив возникнет внутренняя ошибка 500, поэтому размещайте символ #, открывающий комментарий, только в начале строки.

Ещё одна потенциальная причина ошибки 500 — некорректный синтаксис директивы FilterProvider, отвечающей за сжатие контента для ускорения работы. Эта директива включает сжатие на основании заголовков Content-Type, а на хостинге сжимать контент может Nginx, и до Apache такие запросы не дойдут. Следует также учитывать, что для различных версий Apache используется разный синтаксис.

2.3. Неверные права доступа

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

Чтобы узнать, какие права доступа установлены, откройте в файл-менеджере необходимый документ и зайдите через контекстное меню в его свойства либо раздел «Права доступа».

Допустимые права доступа к каталогам и файлам — 640 или 755.

2.4. Ошибки в Perl и Python скриптах

Иногда 500 ошибка возникает при выполнении скриптов. В данной ситуации нужно проверить, выполняются ли указанные условия:

  • Каталоги, в которых размещены скрипты, как и сами файлы, имеют права доступа 755, т.е. открыты для записи только владельцу.
  • Загрузка скриптов на сервер происходит по FTP, с использованием режима ASCII.
  • В начале файла указан корректный путь к интерпретатору для обработки скрипта, после этого нет спецсимволов, для перевода строки используется \n.
  • Если скрипт что-то выводит в браузер, в начале добавлен заголовок Content-Type: text/html и одна пустая строка.
  • Заканчивает файл также пустая строка.

2.5. Медленная скорость работы PHP-скриптов

На проекте могут присутствовать слишком медленные скрипты, которые не успевают вовремя обработать поток информации, из-за этого возникает внутренняя серверная ошибка.

2.6. Конфликты после обновлений и установки плагинов

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

2.7. Устаревшая версия PHP

Устаревшие версии PHP 5.6 и 7.0 не получают обновления безопасности, они работают медленнее, и у них могут возникать проблемы с различными плагинами и скриптами. Помимо этого, ресурсы с устаревшей версией PHP хуже ранжируются. Проверить текущую версию можно на хостинге в разделе «Настройки» — «Настройка PHP».

Быстро проверять коды ответа сервера страниц сайта вам поможет Netpeak Spider — инструмент для регулярного SEO-аудита, быстрого поиска ошибок, системного анализа и парсинга сайтов. У краулера есть бесплатная версия без ограничений по времени,в которой доступны многие .

Чтобы получить доступ к бесплатному Netpek Spider, достаточно просто зарегистрироваться, скачать и установить программу

In summary: HTTP 302 FAQs

What does the HTTP 302 status code mean?

The HTTP 302 status stands for “Found” and means that a resource has been temporarily relocated to another URL.

How do you implement 302 redirects?

You can implement 302 redirects using the .htaccess file, PHP, or your content management system.

What is the difference between 301 and 302 redirects?

301 redirects mean that a file has been moved permanently, while 302 redirects are used for temporary redirects.

Why is the 302 status code important for SEO?

The 302 status code is relevant for SEO because if you change a file’s location without a redirect, your page might show a 404 error. Resources that return that kind of error will be removed from search results.

Коды состояния и ошибок помогают в устранении неполадок

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

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

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

  • использование неправильных API ключей;
  • использование неверных API ключей;
  • параметры не соответствуют типам данных;
  • API выдает исключение;
  • нет данных для возврата ресурса;
  • превышен предел скорости;
  • параметры находятся за пределами приемлемых максимальной и минимальной границ;
  • обязательный параметр отсутствует в конечной точке.

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

Описание кодов ответов HTTP

  • 200 (OK) — все успешно обработано, страница загружена.
  • 201 (Created) — создан новый ресурс.
  • 202 (Accepted) — запрос обрабатывается.
  • 203 (Non-Authoritative Information) — информация загружена не с основного источника.
  • 204 (No Content) — сервер не вернул контент. Запрос считается успешно обработанным.
  • 206 (Partial Content) — пользователю был передан не весь контент.
  • 300 (Multiple choices) — многократный выбор и сервер не смог корректно обработать запрос.
  • 301 (Moved Permanently) — автоматическое перенаправление, поскольку адрес страницы перемещен на другой адрес навсегда. Этот ответ используется очень часто, поскольку адреса страниц зачастую меняются. Также этот код ответа используется, если сменися адрес сайта.
  • 302 (Moved Temporarily) — адрес временно перемещен.
  • 303 (See Other) — запрашиваемый адрес нужно смотреть по другому адресу, который можно посмотреть через GET.
  • 304 (Not Modified) — страница не измяналась. Для ускорения индексации поисковыми роботами можно использовать этот ответ.
  • 305 (Use Proxy) — доступ к странице доступен только через Proxy-сервер.
  • 306 (Temporary Redirect) — адрес сменен на короткое время.
  • 400 (Bad Request) — неверный запрос к серверу.
  • 401 (Unauthorized) — требуется авторизация пользователя
  • 403 (Forbidden) — доступ запрещен всем.
  • 404 (Not Found) — документ не найден. Часто встречаемая ошибка. Читайте: как правильно сделать страницу 404 ошибки
  • 405 (Method Not Allowed) — метод не поддерживается
  • 406 (Not Acceptable) — докумнет существует, но не в том формате
  • 407 (Proxy Authentication Required) — доступен только через proxy-сервер
  • 408 (Request Time-out) — соединение разорвано из-за долгого ответа сервера
  • 500 (Internal Server Error) — аварийный отказ сервера. Зачастую это связано с неверными настройками .htaccess
  • 501 (Not Implemented) — сервер не может выполнить действие, которое запросил клиент
  • 502 (Bad Gateway) — сервер получил неверные ответы от другого сервера
  • 503 (Service Unavailable) — какая-то служба на стороне сервера временно не работает
  • 504 (Gateway Time-out) — сервер в роли шлюза или прокси-сервера не дождался ответа
  • 505 (HTTP Version not supported) — версия HTTP, которая запрашивается не поддерживается.

Что такое редирект 302?

Code 302 indicates a temporary redirection. One of the most notable features that differentiate it from a Переадресация 301 в том, что в случае 302 перенаправлений сила SEO не переносится на новый URL.

Это связано с тем, что это перенаправление было разработано для использования в тех случаях, когда необходимо перенаправить контент на страницу, которая не будет окончательной. Таким образом, после устранения перенаправления исходная страница не потеряет свое положение в поисковой системе Google. Несмотря на то, что мы не очень часто нуждаемся в перенаправлении 302, в некоторых случаях этот параметр может быть очень полезным. Это наиболее частые случаи:

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

Коды ответов сервера

Номер Поясняющая фраза Перевод
1xx Informational Информационные ответы
100 Continue Продолжить
101 Switching Protocols Переключение протоколов
102 Processing Идёт обработка
103-199 Не назначены
2xx Success Успех
200 OK Хорошо
201 Created Создано
202 Accepted Принято
203 Non-Authoritative Information Информация не авторитетна
204 No Content Нет содержимого
205 Reset Content Сбросить содержимое
206 Partial Content Частичное содержимое
207 Multi-Status Многостатусный
208 Already Reported Уже сообщили
209-225 Не назначены
226 IM Used Использовано IM
227-299 Не назначены
3xx Redirection Перенаправление
300 Multiple Choices Множество выборов
301 Moved Permanently Перемещено навсегда
302 Found Найдено
303 See Other Смотреть другое
304 Not Modified Не изменялось
305 Use Proxy Использовать прокси
306 Не используется
307 Temporary Redirect Временное перенаправление
308 Permanent Redirect Постоянное перенаправление
309-399 Не назначены
4xx Client Error Ошибка клиента
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 Необходима длина
412 Precondition Failed Условие ложно
413 Payload Too Large Большая нагрузка
414 URI Too Long URI слишком длинный
415 Unsupported Media Type Неподдерживаемый тип данных
416 Range Not Satisfiable Неприемлемый диапазон
417 Expectation Failed Ожидаемое неприемлемо
418-420 Не назначены
421 Misdirected Request Неверно адресованный запрос
422 Unprocessable Entity Необрабатываемый экземпляр
423 Locked Заблокировано
424 Failed Dependency Невыполненная зависимость
425 Не назначен
426 Upgrade Required Необходимо обновление
427 Не назначен
428 Precondition Required Необходимо предусловие
429 Too Many Requests Слишком много запросов
430 Не назначен
431 Request Header Fields Too Large Поля заголовка запроса слишком большие
432-450 Не назначены
451 Unavailable for Legal Reasons Недоступно по юридическим причинам
432-499 Не назначены
5xx Server Error Ошибка сервера
500 Internal Server Error Внутренняя ошибка сервера
501 Not Implemented Не реализовано
502 Bad Gateway Плохой, ошибочный шлюз
503 Service Unavailable Сервис недоступен
504 Gateway Timeout Шлюз не отвечает
505 HTTP Version Not Supported Версия HTTP не поддерживается
506 Variant Also Negotiates Вариант тоже проводит согласование
507 Insufficient Storage Переполнение хранилища
508 Loop Detected Обнаружена петля
509 Не назначен
510 Not Extended Не расширено
511 Network Authentication Required Требуется сетевая аутентификация
512-599 Не назначены
  • HTTP
  • Hypertext Transfer Protocol (HTTP) Status Code Registry
  • Список кодов состояния HTTP

31.08.2014

Методы обработки запросов HTTP

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

Любой веб сервер обязан работать, по крайней мере с двумя методами GET и HEAD. Если сервер не смог определить метод, указанный в заголовке запроса клиента, он должен вернуть код статуса 501 (Not Implemented), если-же метод серверу известен, но неприменим к данному ресурсу, будет возвращен код статуса 405 (Method Not Allowed). Как в первом, так и во втором случае, сервер должен включить в свой ответ, заголовок Allow со списком методов, которые он поддерживает.

Диагностика ошибки 400 Bad Request

Ошибка 400 Bad Request означает, что сервер (удалённый компьютер) не может обработать запрос, отправленный клиентом (браузером), вследствие проблемы, которая трактуется сервером как проблема на стороне клиента.

Существует множество сценариев, в которых ошибка 400 Bad Request может появляться в приложении. Ниже представлены некоторые наиболее вероятные случаи:

  • Клиент случайно (или намеренно) отправляет информацию, перехватываемую маршрутизатором ложных запросов. Некоторые веб-приложения ищут особые заголовки HTTP, чтобы обрабатывать запросы и удостовериться в том, что клиент не предпринимает ничего зловредного. Если ожидаемый заголовок HTTP не найден или неверен, то ошибка 400 Bad Request – возможный результат.
  • Клиент может загружать слишком большой файл. Большинство серверов или приложений имеют лимит на размер загружаемого файла, Это предотвращает засорение канала и других ресурсов сервера. Во многих случаях сервер выдаст ошибку 400 Bad Request, когда файл слишком большой и поэтому запрос не может быть выполнен.
  • Клиент запрашивает неверный URL. Если клиент посылает запрос к неверному URL (неверно составленному), это может привести к возникновению ошибки 400 Bad Request.
  • Клиент использует недействительные или устаревшие куки. Это возможно, так как локальные куки в браузере являются идентификатором сессии. Если токен конкретной сессии совпадает с токеном запроса от другого клиента, то сервер/приложение может интерпретировать это как злонамеренный акт и выдать код ошибки 400 Bad Request.

4xx: Client Error

Message Description
400 Bad Request The server did not understand the request.
401 Unauthorized The requested page needs a username and a password.
402 Payment Required You can not use this code yet.
403 Forbidden Access is forbidden to the requested page.
404 Not Found The server can not find the requested page.
405 Method Not Allowed The method specified in the request is not allowed.
406 Not Acceptable The server can only generate a response that is not accepted by the client.
407 Proxy Authentication Required You must authenticate with a proxy server before this request can be served.
408 Request Timeout The request took longer than the server was prepared to wait.
409 Conflict The request could not be completed because of a conflict.
410 Gone The requested page is no longer available .
411 Length Required The «Content-Length» is not defined. The server will not accept the request without it .
412 Precondition Failed The pre condition given in the request evaluated to false by the server.
413 Request Entity Too Large The server will not accept the request, because the request entity is too large.
414 Request-url Too Long The server will not accept the request, because the url is too long. Occurs when you convert a «post» request to a «get» request with a long query information .
415 Unsupported Media Type The server will not accept the request, because the mediatype is not supported .
416 Requested Range Not Satisfiable The requested byte range is not available and is out of bounds.
417 Expectation Failed The expectation given in an Expect request-header field could not be met by this server.

Прогнозирование запросов ресурсов

В типичном веб-приложении клиент отправляет GET-запрос и получает страницу в формате HTML. Обычно это индексная страница сайта. Исследуя содержимое страницы, клиент может обнаружить, что для полной визуализации страницы ему необходимо извлечь дополнительные ресурсы, такие как файлы CSS и JavaScript. Клиент определяет, что эти дополнительные ресурсы ему нужны, только после получения ответа от исходного GET-запроса. Таким образом, он должен сделать дополнительные запросы для извлечения этих ресурсов и завершения соединения страницы. Эти дополнительные запросы в конечном итоге увеличивают время загрузки.

Однако эту проблему можно решить: поскольку сервер заранее знает, что клиенту потребуются дополнительные файлы, сервер может сэкономить время клиента, отправляя клиенту эти ресурсы прежде, чем он их запросит. HTTP/1.1 и HTTP/2 имеют разные стратегии для достижения этой цели, каждая из которых описана в этом разделе.

HTTP/1.1: встраивание ресурсов

В HTTP/1.1, если разработчик заранее знает, какие дополнительные ресурсы потребуется клиентскому компьютеру для отображения страницы, он может использовать метод встраивания ресурсов для включения требуемого ресурса непосредственно в документ HTML, который сервер отправляет в ответ на исходный запрос GET. Например, если клиенту нужен определенный файл CSS для визуализации страницы, встраивание этого файла предоставит клиенту необходимый ресурс, прежде чем он его запросит. Это уменьшает общее количество запросов, которые клиент должен отправить на сервер.

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

Таким образом, основным недостатком встраивания является то, что клиент не может разделить ресурс и документ. Для оптимизации соединения необходим более высокий уровень контроля, который HTTP/2 стремится предоставить с помощью Server Push.

HTTP/2: механизм Server Push

Поскольку HTTP/2 поддерживает множество одновременных ответов на первоначальный GET запрос клиента, сервер может отправить клиенту ресурс вместе с запрошенной HTML-страницей, предоставляя ресурс до того, как клиент запросит его. Этот процесс называется Server Push. Таким образом, HTTP/2-соединение может выполнить ту же задачу по встраиванию ресурсов, при этом сохраняя разделение между помещаемым ресурсом и документом. Это означает, что клиент может решить кэшировать или отклонить отправленный ресурс отдельно от основного HTML-документа. Так HTTP/2 устраняет основной недостаток встраивания ресурсов.

В HTTP/2 этот процесс начинается, когда сервер отправляет кадр PUSH_PROMISE, чтобы сообщить клиенту, что он собирается отправить ресурс. Этот кадр включает в себя только заголовок сообщения и позволяет клиенту заранее узнать, какой ресурс отправит сервер. Если ресурс уже кэширован, клиент может отклонить отправку, отправив в ответ кадр RST_STREAM. Кадр PUSH_PROMISE также предотвращает отправку дублированного запроса на сервер (поскольку клиент знает, какие ресурсы сервер собирается отправить).

Здесь важно отметить, что Server Push делает акцент на контроль клиента. Если клиенту необходимо отрегулировать приоритет Server Push или даже отключить его, он может в любое время отправить кадр SETTINGS для изменения этой функции HTTP/2

Несмотря на то, что функция Server Push имеет большой потенциал, она не всегда оптимизирует работу веб-приложения. Например, некоторые веб-браузеры не всегда могут отменить отправленные запросы, даже если клиент уже кэшировал ресурс. Если клиент по ошибке разрешает серверу отправлять дублирующийся ресурс, Server Push может израсходовать соединение. В конце концов, принудительный Server Push должен использоваться по усмотрению разработчика. Больше о том, как использовать Server Push стратегически и оптимизировать веб-приложения, можно узнать из шаблона PRPL, разработанного Google. Чтобы узнать больше о возможных проблемах, связанных с принудительным Server Push, читайте этот пост.

Что такое редирект 302?

Code 302 indicates a temporary redirection. One of the most notable features that differentiate it from a Переадресация 301 в том, что в случае 302 перенаправлений сила SEO не переносится на новый URL.

Это связано с тем, что это перенаправление было разработано для использования в тех случаях, когда необходимо перенаправить контент на страницу, которая не будет окончательной. Таким образом, после устранения перенаправления исходная страница не потеряет свое положение в поисковой системе Google. Несмотря на то, что мы не очень часто нуждаемся в перенаправлении 302, в некоторых случаях этот параметр может быть очень полезным. Это наиболее частые случаи:

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

3, Redirection Messages

HTTP status codes 300-399 talk about redirection. These HTTP response codes mean that the request had to be redirected, for various reasons. 300 – 399 HTTP status code may need immediate action, because the redirection could be a pending request, and the web browser is stuck somewhere. 300: Multiple Choices makes it confuse for the web browser to choose where to go, so direct action must be done. 310: Resource Moved Permanently means that from that point on, the route of the request will change for good.

300 Multiple Choice

This requested resource corresponds to any one of a set of representations, each having its own specific location and information. This is provided so that the user agent can choose a specific representation and then redirect the request to that location.

301 Moved Permanently

This HTTP response code indicates that the specific URL of the resource that is requested has changed permanently. The new URL is given in the response.

302 Found

This code indicates that the URL of the requested resource has been changed temporarily. The changes in the URL might also be made in future, therefore the same URL should be used in future requests. This is an example of industry practice contradicting the standard.

303 See Other

When this status code is received it indicates that the server sends the response to direct the client to get the requested resource at another URL with a GET request.

304 Not Modified

This indicates that the client has performed a conditional request and access is allowed, but documents have not been modified, and the server should respond with the status code. It is important to note that the 304 response must not contain the message body so it is always terminated by the first empty line after the header fields.

305 Use Proxy

This code is defined as a previous version of the HTTP specification to indicate that the requested response must be accessed by proxy. It has been deprecated due to security concerns regarding in and configuration of a proxy.

306 unused

This code is no longer used. It used to mean that sub requests should use the specified proxy.

307 Temporary Redirect

For this status code, it means that the request should be repeated with another URI. However, any future requests should still use the original URI. It is essentially like the 302 Found HTTP code, but with the exception that the user agent must not change the HTTP method used. If a POST was used in the first request, a POST must be used in the second request.

308 Permanent Redirect

This status code indicates that the resource is not permanently located at another URL. This will be specified by the Location: HTTP Response header. This is also like the 301 moved permanently response code, the exception that the user agent must not change the HTTP method used. If a POST was used in the first request, a POST must be used in the second request.

3xx: Redirection

Message Description
300 Multiple Choices A link list. The user can select a link and go to that location. Maximum five addresses  .
301 Moved Permanently The requested page has moved to a new url .
302 Found The requested page has moved temporarily to a new url .
303 See Other The requested page can be found under a different url .
304 Not Modified This is the response code to an If-Modified-Since or If-None-Match header, where the URL has not been modified since the specified date.
305 Use Proxy The requested URL must be accessed through the proxy mentioned in the Location header.
306 Unused This code was used in a previous version. It is no longer used, but the code is reserved.
307 Temporary Redirect The requested page has moved temporarily to a new url.
Добавить комментарий

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

Adblock
detector