Как легко проверить код ответа сервера? понятно о http status code
Содержание:
- Наиболее важные коды состояния HTTP для SEO
- HTTP status codes 404
- Дополнительная информация о кодах состояния HTTP
- 1xx: Information — информационные
- Коды состояния и ошибок помогают в устранении неполадок
- HTTP Status Code 302: “Moved Temporarily”
- Исправление проблем на стороне клиента
- Краткий обзор ошибок клиента и сервера
- Importance of HTTP 302 status codes for SEO
- Migrating from v1.x.x
- Коды редиректов
- Ошибка 503 – Service Temporarily Unavailable
- 10.1 1xx — Информационные коды.
- Проверка http заголовков с помощью Curl
- Ошибка 401 Unauthorized
- Examples for 302 redirect implementations
- Что такое код ответа сервера?
Наиболее важные коды состояния HTTP для SEO
Как мы уже говорили, список кодов длинный, но есть пара особенно важных для оптимизаторов и тех, кто работает со своим сайтом самостоятельно. Составим сокращенный список, который вы должны знать лучше таблицы умножения:
200: OK / Успешно
Вот как должно быть: клиент запрашивает у сервера контент и сервер отвечает сообщением 200. Это означает, что запрос прошел успешно – браузер получает содержимое, которое удовлетворяет потребностям клиента. И сервер, и клиент довольны. Пользователь счастлив. Все сообщения класса 2xx означают успешное выполнение какой-либо операции.
301: Перемещено навсегда
Заголовок HTTP 301 используется, когда запрашиваемый URL перемещен на новое место. Поскольку вы работаете с сайтом, с кодом придется сталкиваться часто – чтобы перенаправить старый URL на новый, вам обязательно нужно делать 301 редирект. Если вы этого не сделаете, пользователи, открывая старый URL, увидят страницу с кодом ошибки (404).
Подробнее о редиректе читайте в статье 10 популярных 301 редиректов в .htaccess
302: Найдено
Код состояния HTTP 302 означает, что целевой контент был найден, но находится в другом месте. Это довольно неоднозначный код состояния – он не говорит, временная это ситуация или нет. Используйте 302 редирект только в том случае, если хотите временно перенаправить URL на другой источник, и вы уверены в том, что будете использовать URL снова. Этим кодом вы сообщаете поисковым системам, что URL-адрес будет использоваться, а значит ссылочный вес не перенесется на новый URL. Поэтому не пользуйтесь 302 редиректом при перемещении домена или серьезных изменениях в структуре сайта.
307: Временное перенаправление
Код состояния 307 заменяет 302 в спецификации HTTP1.1 и может рассматриваться как единственный истинный редирект. Вы можете использовать 307 если вам нужно временно перенаправить URL на новый, оставив оригинальный метод запроса без изменений. 307 выглядит как 302, за исключением того, что он конкретно сообщает о временном характере нового местоположения. Запрос может меняться с течением времени, поэтому клиент должен продолжать использовать оригинальный URL при создании новых запросов.
403: Запрещено
403 сообщает браузеру, что запрошенное содержимое запрещено для пользователя. Если пользователь не сможет предоставить корректные учетные данные для входа, содержание останется недоступным.
404: Не найдено
Код заголовка HTTP 404 – один из наиболее важных. Когда сервер дает ответ в виде ошибки 404, вы получаете информацию о том, что содержимое не было найдено, и, вероятно, удалено. Старайтесь не раздражать посетителей сообщениями с этим кодом, исправляйте ошибки как можно скорее. Используйте редирект для перенаправления посетителей сайта со старого URL на новую статью или страницу, которая имеет связанный контент.
Мониторьте 404 сообщения в интерфейсе ошибок (Crawl errors) Google Search Console и пытайтесь свести их количество к минимуму. Большое количество ошибок этого типа может быть расценено Google как признак плохого обслуживания, а это повлияет на рейтинг сайта.
410: Удален
Результат кода 410 такой же, как 404 – содержимое не было обнаружено. Тем не менее, с 410 вы сообщаете поисковым системам об удалении запрошенного содержимого. Таким образом, этот код намного конкретнее 404. В некотором смысле вы отдаете команду поисковой машине удалить URL из индекса. Перед тем, как окончательно удалить что-то с сайта, подумайте, есть ли где-нибудь эквивалент страницы. Если да, сделайте редирект. Если нет, страницу нужно удалить или улучшить.
451: Информация недоступна по юридическим причинам
Относительно новое дополнение. Код состояния HTTP 451 показывает, что запрошенное содержимое было удалено по юридическим причинам. Если вы получили запрос на удаление, нужно использовать этот код, чтобы сообщить поисковым системам, что случилось со страницей.
500: Внутренняя ошибка сервера
Ошибка 500 – сообщение о том, что сервер столкнулся с неким условием, которое не позволяет ему выполнить запрос, без указания на то, что является его причиной. Причиной ошибок может стать что угодно, например, неисправный скрипт на вашем сайте. Проверьте журналы сервера, чтобы увидеть, где проблемы.
503: Сервис недоступен
Сервер отправляет сообщение об ошибке 503, когда не может обработать запрос из-за сбоя или перегрузки. Используйте этот код всякий раз, когда вам требуется временный простой – например, когда вы проводите обслуживание сайта. Таким образом, роботы поисковых систем узнают, что ваш сайт вскоре возобновит работу, и они могут вернуться позже.
HTTP status codes 404
HTTP status codes indicate We’ll take a closer look at the various has been completed. Responses are generally grouped into five classes:
- Informational responses (100-199)
- Successful responses (200-299)
- Redirects (300-399)
- Client errors (400-499)
- Server errors (500-599)
The 1xx class of status codes is informational and they indicate that a request was received and understood. It is issued as a provisional status, while the process is still undergoing. It also tells the client to wait for a final response. These messages consist of the status line and the optional header fields.
The 2xx range of codes generally means that the request was successfully received, understood ,and accepted, while the 3xx range of codes indicates that the client must take additional action to complete the specific request. This is often used in URL redirection.
The 4xx class of status codes is aimed at situations where the error seems to have been caused by the client. These status codes are applicable to any request method and user agents should display any included entity to the user.
The 5xx range of codes refers to server error codes that indicate the request was accepted, but that there was an error that prevented the server from fulfilling the request.
Although there is a long list of HTTP error codes, you’ll likely only encounter about a dozen of them. But once you understand what they mean, you’ll know what needs to be done to fix them.
We’ll take a closer look at the various HTTP response codes and what they mean.
Looking for the Fastest, Cheapest CDN for your company?
Дополнительная информация о кодах состояния HTTP
Другие коды состояния HTTP существуют в дополнение к кодам 4xx и 5xx. Есть также коды 1xx, 2xx и 3xx, которые являются информационными, подтверждают успех или соответственно диктуют перенаправление. Эти дополнительные типы кодов состояния HTTP не являются ошибками, поэтому вы не должны получать уведомления о них в браузере.
Панель управления Nvidia — настройка и вход для Windows и Mac
Страница реестра кодов состояния IANA Hypertext Transfer Protocol (HTTP) является официальным источником кодов состояния HTTP, но Windows иногда включает в себя дополнительные, более конкретные ошибки, которые объясняют дополнительную информацию.
Например, хотя код состояния HTTP 500 означает «ошибка сервера Интернета», Microsoft Internet Information Services (ISS) использует 500.15, чтобы указать, что прямые запросы для Global.aspx запрещены.
Вот еще несколько примеров:
- 404.13 имеет слишком большую фразу-причину HTTP длины контента .
- 500.53 означает, что произошла ошибка перезаписи при обработке уведомления RQ_RELEASE_REQUEST_STATE. Произошла ошибка выполнения правила для исходящих сообщений. Правило настроено для выполнения до обновления выходного пользовательского кеша .
- 502.3 означает «Bad Gateway: ошибка соединения сервера пересылки (ARR)» .
Эти так называемые субкоды сгенерированные Microsoft ISS, не заменяют коды состояния HTTP, а вместо этого находятся в различных областях Windows, таких как файлы документации.
1xx: Information — информационные
100 Continue — Продолжать.
Сервер доволен данными в запросе клиента, можно продолжать передачу заголовков. Появился в протоколе версии HTTP/1.1.
101 Switching Protocols — Переключение протоколов.
Сервер предлагает выбрать другой протокол, более соответствующий данному ресурсу. Протоколы предлагаемый сервером, указываются в строке заголовка Update, если предложенный сервером протокол, устраивает клиента, он высылает новый запрос с указанием нового протокола. Появился в протоколе версии HTTP/1.1.
102 Processing — Обрабатывается.
Используется в протоколе WebDAV, работающем поверх HTTP протокола. Данный код статуса информирует клиента о том, что запрос принят, но на его обработку может понадобится определенное время, что-бы он ( клиент ), не сбрасывал соединение. Клиент в этом случае должен обнулить таймер и ожидать следующей команды.
Коды состояния и ошибок помогают в устранении неполадок
Коды состояния и ошибок особенно полезны при устранения неполадок. Таким образом, можно рассматривать коды ошибок как дополнение к разделу по устранению неполадок.
Каждая часть документации может быть полезна в разделе, посвященном устранению неполадок. В разделе, посвященном устранению неполадок, можно описать, что происходит, когда пользователи уходят с проторенной дорожки и спотыкаются в темном лесу. Коды состояния похожи на подсказки, которые помогут пользователям вернуться на правильный путь.
В разделе по устранению неполадок можно перечислить сообщения об ошибках, связанных со следующими ситуациями:
- использование неправильных API ключей;
- использование неверных API ключей;
- параметры не соответствуют типам данных;
- API выдает исключение;
- нет данных для возврата ресурса;
- превышен предел скорости;
- параметры находятся за пределами приемлемых максимальной и минимальной границ;
- обязательный параметр отсутствует в конечной точке.
текст ошибки должен точно документироваться, чтобы она легко появлялась при поиске.
HTTP Status Code 302: “Moved Temporarily”
https://www.youtube.com/embed//wtc0KpWYt8Q
HTTP Status Code 302: “Moved Temporarily”
Usually, 302 redirects are used incorrectly. There are not many situations where you would want to use them as a webmaster or digital marketer.
A 302 redirect seems similar to a 301 redirect. They do the same thing for the user: move them to a new location. The difference, is that one is a permanent redirect, and the other is a temporary redirect.
A permanent (301) redirect says “Hey Google, this page has been permanently moved to this new location. Any of the rankings and link equity that it used to have, please pass those on to the new URL”.
A temporary (302) redirect says “Hey Google, this page has been temporarily moved to this new location. Do not pass any of the rankings and link equity to the new location”.
Let’s say you were running a Superbowl television ad, and your call to action was “Visit us at Website.com”. And just for that day, you wanted to temporarily redirect all the traffic that came to your homepage, to Website.com/superbowl-ad. That might be one instance where you’d be okay with a temporary redirect.
Other situations where you might use this might be temporary situations when you’re collecting data. For example, if you are manually doing an A/B test and bucketing users on your own, you might want to implement a 302 redirect.
Исправление проблем на стороне клиента
Устранение ошибки 400 Bad Request (попробуйте позже) лучше начать с исправления на стороне клиента. Вот несколько советов, что следует попробовать в браузере или на устройстве, которые выдают ошибку.
Проверьте запрошенный URL
Наиболее частой причиной ошибки 400 Bad Request является банальный ввод некорректного URL. Доменные имена (например, internet-technologies.ru) нечувствительны к регистру, поэтому ссылка, написанная в смешанном регистре, такая как interNET-technologies.RU работает так же, как и нормальная версия в нижнем регистре internet-technologies.ru. Но части URL, которые расположены после доменного имени, чувствительными к регистру. Кроме случаев, когда приложение/сервер специально осуществляет предварительную обработку всех URL и переводит их в нижний регистр перед исполнением запроса.
Важно проверять URL на неподходящие специальные символы, которых в нем не должно быть. Если сервер получает некорректный URL, он выдаст ответ в виде ошибки 400 Bad Request
Очистите соответствующие куки
Одной из потенциальных причин возникновения ошибки 400 Bad Request являются некорректные или дублирующие локальные куки. Файлы куки в HTTP – это небольшие фрагменты данных, хранящиеся на локальном устройстве, которые используются сайтами и веб-приложениями для «запоминания» конкретного браузера или устройства. Большинство современных веб-приложений использует куки для хранения данных, специфичных для браузера или пользователя, идентифицируя клиента и позволяя делать следующие визиты быстрее и проще.
Но куки, хранящие информацию сессии о вашем аккаунте или устройстве, могут конфликтовать с другим токеном сессии от другого пользователя, выдавая кому-то из вас (или вам обоим) ошибку 400 Bad Request.
В большинстве случаев достаточно рассматривать только ваше приложение в отношении файлов куки, которые относятся к сайту или веб-приложению, выдающему ошибку 400 Bad Request.
Куки хранятся по принципу доменного имени веб-приложения, поэтому можно удалить только те куки, которые соответствуют домену сайта, сохранив остальные куки не тронутыми. Но если вы не знакомы с ручным удалением определённых файлов куки, гораздо проще и безопаснее очистить сразу все файлы куки.
Это можно сделать разными способами в зависимости от браузера, который вы используете:
- Google Chrome;
- Internet Explorer;
- Microsoft Edge;
- Mozilla Firefox;
- Safari.
Загрузка файла меньшего размера
Если вы получаете ошибку 400 Bad Request при загрузке какого-либо файла, попробуйте корректность работы на меньшем по размеру файле, Это включает в себя и «загрузки» файлов, которые не загружаются с вашего локального компьютера. Даже файлы, отправленные с других компьютеров, считаются «загрузками» с точки зрения веб-сервера, на котором работает ваше приложение.
Выйдите и войдите
Попробуйте выйти из системы и войти обратно. Если вы недавно очистили файлы куки в браузере, это приводит к автоматическому выходу из системы при следующей загрузке страницы. Попробуйте просто войти обратно, чтобы посмотреть, заработала ли система корректно.
Также приложение может столкнуться с проблемой, связанной с вашей предыдущей сессией, являющейся лишь строкой, которую сервер посылает клиенту, чтобы идентифицировать клиента при будущих запросах. Как и в случае с другими данными, токен сессии (или строка сессии) хранится локально на вашем устройстве в файлах куки и передаётся клиентом на сервер при каждом запросе. Если сервер решает, что токен сессии некорректен или скомпрометирован, вы можете получить ошибку 400 Bad Request.
В большинстве веб-приложений выход повторный вход приводит к перегенерации локального токена сессии.
Краткий обзор ошибок клиента и сервера
Ошибки клиента (коды состояния HTTP 400-499) возникают из-за HTTP-запросов, отправленных клиентом (веб-браузером или другим клиентом HTTP). Хотя данные типы ошибок связаны непосредственно с клиентом, системному администратору полезно знать, с какими кодами ошибок может столкнуться пользователь, чтобы определить, можно ли решить эту проблему в конфигурациях сервера.
Ошибки сервера (коды состояния HTTP 500-599) возникают тогда, когда веб-сервер не в состоянии обработать запрос из-за какой-либо ошибки или сбоя.
Общие советы по устранению ошибок HTTP
- При использовании веб-браузера для тестирования веб-сервера не забудьте обновить браузер после внесения изменений в настройки сервера.
- Проверяйте логи сервера, чтобы получить подробные сведения о том, как сервер обрабатывает запросы. Например, веб-серверы Apache и Nginx создают два файла по имени access.log и error.log, в которых можно найти соответствующую информацию.
- Запомните: определения кодов состояния HTTP являются частью стандарта, который реализуется обслуживающим запросы приложением. Это означает, что фактический код состояния, который возвращается в результате, зависит от того, как программное обеспечение сервера обрабатывает конкретную ошибку.
Ознакомившись с основными понятиями кодов состояния HTTP, приступим к обзору наиболее часто встречающихся ошибок.
Importance of HTTP 302 status codes for SEO
Using HTTP 302 status codes is highly recommended from an SEO perspective. If the location of a resource has changed and no redirect status codes are issued, they will instead return another status code, typically . This is the ‘page not found’ status code, and it indicates a resource was not found at the provided URL.
Search engines such as Google continually recrawl and re-index websites. How often any particular site is re-indexed will depend on many factors, but pages and locations that return 404 status codes will be removed from search results. This means that pages that appear high in search results risk being removed, potentially resulting in major traffic losses.
The key difference between using a 301 or 302 redirect is how search engines and browsers deal with the original URL. When a 301 permanent redirect is used, browser caches and search engine crawl bots update the URL of the resource and do not attempt to access the original URL again. When a 302 temporary redirect is used, browser caches and search engine crawl bots will continue to try to access the original URL in subsequent visits.
Migrating from v1.x.x
http-status-codes v2 is mostly backwards compatible with v1. There is a single breaking change and two recommended changes.
The reason phrase for the status code has been changed from to . This is the correct phrase according to RFC7231. If you are migrating from v1, and have code that relies on the result of or , then this could affect you.
The function has been renamed to . The old function is still available, but may be deprecated in a future version. To fix this simply rename instances of to . The function is otherwise the same as it was before.
In http-status-codes v1, Status Codes were exported directly from the top-level module. i.e. . In v2 all Status Codes live under an object called . i.e. . We made this change to cater to TypeScript users who prefer a dedicated value with an enum type. The previous values are still exported, but we won’t continue to update them. Please migrate if you’re using the old-style imports.
Коды редиректов
Класс кодов показывает, что для успешного выполнения запроса клиенту нужно совершить переход, то есть редирект.
300 Multiple Choices
Робот не может проиндексировать страницу, поскольку не может сопоставить ресурс и URL. Частая причина — ресурс перемещен на другой адрес. Сервер предлагает клиенту выбор альтернатив для перехода. Для успешной индексации нужно либо правильно указать ресурс, либо поправить заголовки.
301 Moved Permanently
Если у проиндексированной страницы изменился адрес, то со старого URL на новый настраивают 301 редирект. Код ответа показывает, что запрашиваемый документ был навсегда перенесен на другой URL, куда пользователя перенаправляет ссылка. Робот проиндексирует страницу, на которую ведет редирект, и склеит исходный адрес и новый.
302 Found
Код означает не постоянное, а временное перемещение страницы на другой адрес, поэтому страницу удалять из индекса не нужно. В ответе указано новое расположение данных.
Страница остается в индексе, ссылочный вес продолжает передаваться.
303 See Other
Сервер сигнализирует, что ресурс, который указан в запросе, расположен на другом адресе. Обычно он используется для перенаправления пользователя к выбранному ресурсу выводом данных POST-активированного скрипта.
В ответе сервера будет указан адрес, по которому нужно искать результат, удовлетворяющий запрос.
304 Not Modified
Код рекомендуется выдавать, если страница не менялась с момента ее последнего посещения роботом. Сервер дает сигнал об этом боту, бот получает от документа http-заголовки, не загружая страницу повторно, из-за чего индексирование проходит быстрее и уменьшается нагрузка на сервер.
305 Use Proxy
Код ответа связан с безопасностью данных. Сервер выдает код 305, если доступ к ресурсу, который запрашивает клиент, возможен только с прокси. Прокси указан там же в ответе сервера.
307 Temporary Redirect
Код 307 похож на 302, но дает более конкретный ответ. Код означает, что ресурс, который требует клиент, на время переведен на другой адрес, а новый URL нужно прописать в Location.
Каждый сайт, располагаясь на хостинге, имеет в распоряжении ограниченное количество рабочих процессов в зависимости от тарифа. Процессы выполняются по очереди и, чем больше процессов, тем сильнее забивается очередь, количество процессов в которой ограничено. Таким образом, если процесс не вмещается в установленный объем очереди, он не выполнятся. При этом сервер выдает ошибку «Сервис временно недоступен». Причины появления ошибки:
- Ограниченность времени работы скрипта. Так как через некоторое время скрипты прекращают свою работу, они могут не успеть передать большой файл. Чтобы устранить эту ошибку, отключите все плагины по очереди, выявляя из их числа самые тяжелые. Виновника следует заменить на аналогичный плагин или же отказаться от него вовсе.
- Высокое количество запросов. Причины возникновения:
- Ресурс ссылается на слишком большое количество файлов, загрузка каждого из которых занимает отдельный процесс. Для решения постарайтесь объединить как можно больше файлов в один.
- Спам и DDoS-атаки могут вызывать высокое количество запросов. В случае DDos-атаки, нужно постараться ее устранить.
10.1 1xx — Информационные коды.
Этот класс кодов состояния указывает предварительный (временный)
ответ, состоящий только из строки состояния (Status-Line) и
опциональных заголовков, и завершающийся пустой строкой. Так как
HTTP/1.0 не определял никаких 1xx кодов состояния, серверы НЕ
ДОЛЖНЫ посылать 1xx ответы HTTP/1.0 клиентам, за исключением
экспериментальных условий.
10.1.1 100 Продолжать, Continue.
Клиент может продолжать запрос. Этот промежуточный ответ
используется, для того, чтобы сообщить клиенту, что начальная
часть запроса была получена и еще не отвергнута сервером. Клиенту
СЛЕДУЕТ продолжить посылку оставшихся данных запроса или, если
запрос уже был выполнен, игнорировать этот ответ. Сервер ДОЛЖЕН
послать заключительный ответ после того, как запрос будет
выполнен.
10.1.2 101 Переключение протоколов, Switching Protocols.
Сервер понимает и желает выполнить запрос клиента, если протокол
прикладной программы в этом соединении будет изменен на тот,
который указан в поле заголовка сообщения Upgrade ().
Сервер переключит протокол на тот, который определен в поле
заголовка ответа Upgrade непосредственно после пустой строки,
которая завершает ответ с кодом состояния 101.
Протокол должен быть переключен только тогда, когда это принесет
выгоду. Например, переключение на более новую версию HTTP выгодно
по сравнения с использованием более старых версий, а переключение
на синхронный протокол реального времени может быть выгодно при
предоставлении ресурсов, которые используют такие возможности.
Проверка http заголовков с помощью Curl
Для проверки заголовков мы тоже можем использовать утилиту curl. Чтобы вывести заголовки страницы запустите ее с опцией -I:
Здесь отображается код ответа сервера, а также принятые http заголовки. Из них мы можем сделать такие выводы:
- Страница сгенерирована в nginx 1.10.2;
- Это обычная html страница (text/html);
- Размер страницы 102452 байт или 100 кб;
- Страница последний раз изменялась 18:13:12 (last_modified) это очень важный параметр для поисковых систем;
- Сервер будет выдавать разные версии страниц при изменении поля Accept-Encoding (Vary);
- Страница может храниться в любом кэше (public) на протяжении часа (expires);
Таким способом может быть выполнена проверка http заголовков для любой страницы или ресурса чтобы сразу определить все ли отправляется правильно. Например, посмотрим заголовки для изображения:
Мы можем видеть, что картинка будет храниться в кэше намного дольше (max-age) чем html страница.
Осталось проверить работают ли такие заголовки, как If-Modified-Since и If-None-Match. Первый позволяет выполнять проверку актуальности кэша по дате модификации, второй — по контрольной сумме поля ETag. Кэш очень важен, чтобы снизить нагрузку на ваш сервер. Если страница не изменилась, то сервер лишь сообщает что она не изменилась, отправляя код ответа 304, вместо передачи полного файла.
Конечно, вы можете использовать для этого онлайн сервисы, но работают они плохо и не всегда показывают верное значение. Поэтому пользуемся опять curl.
Проверка If-Modified-Since
Сначала запрашиваем нашу страницу для просмотра заголовков http, а затем копируем поле Last-Modified:
Теперь запрашиваем ее еще раз, но уже с заголовком If-Modified-Since: и ваша дата:
В ответ вы должны получить не саму страницу, а только заголовок HTTP/1.1 304 Not Modified. Если так, значит проверка кода ответа сервера пройдена и все работает верно.
Проверка If-None-Match
Заголовок If-None-Match работает похожим образом, только здесь используется значение контрольной суммы кэша из поля ETag. Опять запросим нашу страницу и скопируем сумму:
Затем отправим полученную сумму с заголовком:
И снова мы должны получить ответ 304, страница не изменена.
Проверка сжатия
Сжатие позволяет уменьшить размер передаваемых данных, но в то же время создает дополнительную нагрузку на сервер. Чтобы проверить поддерживает ли сервер сжатие gzip нужно отправить в запросе заголовок Accept-Encoding с параметром gzip:
В ответе мы увидим поле Content-Encoding: gzip. Это будет означать, что сжатие используется.
Код статуса 401, или ошибка Unauthorized («неавторизован») значит, что пользователь, пытающийся получить доступ к ресурсу, не прошел авторизацию (или не смог пройти ее, указав неверные учетные данные). Чтобы иметь возможность просматривать защищенный ресурс, пользователь должен предоставить корректные учетные данные.
Например, ошибка 401 Unauthorized может возникнуть, если пользователь пытается получить доступ к ресурсу, который защищен HTTP-авторизацией (как в этом руководстве по Nginx). В подобной ситуации ошибка 401 будет появляться снова и снова до тех пор, пока пользователь не предоставит корректный логин и пароль (который внесен в файл .htpasswd).
Examples for 302 redirect implementations
HTTP status codes may be implemented in a number of ways. One of the most common ways to implement them is through the .htaccess file. This is applicable to those running Apache servers, though other server software will typically have a similar feature. An example of a .htaccess 302 redirect is as follows:
<IfModule mod_rewrite.c> RewriteEngine on RedirectMatch 302 ^/originalpage/?$ http://website.com/newpage/ </IfModule>
You can also use PHP to implement a 302 redirect:
<?php header("Location: http://www.new_domain.com"); <?php header("Location: http://www.domain.com/new_page.php");
A limitation of this implementation is that it can only be used with pages containing HTML. This means that it cannot be used with images or other multimedia file requests.
Content Management Systems may offer plugins or native features that help implement redirects. For example, WordPress supports a function. This allows programmers to implement a 302 redirect within the code of a website. For those without access to the underlying code, there are also plugins that can be used to implement 302 redirects. An example of this is the Quick Page/Post Redirect Plugin.
Redirects may be chained, though performance can degrade with each subsequent redirect, so they should be limited to as few as possible. You should avoid redirect loops, which can result in pages becoming inaccessible to search engines and visitors.
Что такое код ответа сервера?
Для нормальной работы различных программ, работающих по протоколу HTTP сервер возвращает не только текст страницы, но и трехзначный код, который позволяет определить результат запроса. С помощью этого кода можно не только описать какая ошибка возникла во время обработки, но и перенаправить пользователя на другую страницу, или же сказать, что страница не была изменена. Вот самые распространенные коды ответа сервера:
1xx — информационные:
- 100 — сервер принял первую часть запроса, можно подрожать передачу;
- 101 — нужно изменить протокол работы на более подходящий;
- 102 — на обработку запроса уйдет много времени, используется чтобы браузер не разрывал соединение раньше времени;
2хх — операция успешна:
- 200 — запрос выполнен успешно, отправляется для большинства запрашиваемых страниц;
- 201 — после выполнения запроса был создан ресурс;
- 202 — запрос принят, но еще не обработан;
- 203 — запрос выполнен успешно, но информация для ответа взята из прокси;
- 204 — запрос обработан, но контента для отображения нет;
- 205 — попросить пользователя ввести необходимые данные;
- 206 — запрос обработан, но передана только часть контента;
3xx — перенаправления:
- 300 — есть несколько страниц для этого запроса, например, на нескольких языках;
- 301 — страница навсегда перемещена по новому адресу;
- 302 — документ был временно перемещен;
- 303 — документ необходимо загрузить по указанному адресу с помощью протокола GET;
- 304 — документ не изменился с последнего запроса;
- 305 — нужно использовать прокси;
- 307 — ресурс временно перемещен на новый адрес.
4хх — ошибка в запросе:
- 400 — неверный запрос;
- 401 — необходимо аутентифицироваться;
- 403 — запрос принят, но у вас нет доступа;
- 404 — страница не найдена на сервере;
- 405 — используемый метод нельзя применять на сервере;
- 408 — время ожидания передачи запроса истекло;
- 410 — ресурс полностью удален;
- 411 — нужно указать длину запроса;
- 413 — запрос слишком длинный;
- 414 — URI запроса слишком длинная.
5хх — ошибка сервера:
- 500 — внутренняя ошибка сервера;
- 501 — нужная функция не поддерживается;
- 502 — прокси не может соединиться со шлюзом;
- 503 — сервер не может обрабатывать запросы по техническим причинам;
- 504 — прокси не дождался ответа от сервера;
- 505 — версия протокола HTTP не поддерживается.