Как проверить код ответа сервера и почему важно делать такие проверки

Коды ошибок клиента

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

400 Bad Request

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

401 Unauthorized

Информация доступна только зарегистрированным пользователям или запаролена. Если пользователь не авторизовался, доступ к странице невозможен.

403 Forbidden

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

Если пользователю www-data, под которым запущен сервер, закрыт доступ к чтению файла, поможет команда sudo chmod o=r /usr/share/nginx/html/index.html

Еще одна причина — пользователь обратился к закрытому каталогу, в котором нет индексного файла. Разрешение на просмотр каталога включается в настройках сервера.

404 Not Found

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

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

Код ответа 404 Not Found

Ссылки на удаленные разделы сайта будут возвращать код 404. На такие документы не нужно тратить краулинговый бюджет, поэтому в файле robots.txt запрещают роботу посещение и индексацию таких страниц.

405 Method Not Allowed

Недоступен метод, которым совершается запрос. Сервер выдает этот код для конкретных отдельных объектов на странице. К примеру, строка запроса, запускающая скрипт, отличается от запроса, который совершает пользователь.

406 Not Acceptable

Код ответа означает, что запрашиваемый файл существует, запрос сформулирован верно, но кодировка документа недоступна для расшифровки роботом.

407 Proxy Authentication Required

Этот код похож на 401 и 407, он используется, если вопрос корректен, но клиент может получить доступ к документу только с помощью авторизации через прокси. Клиент авторизуется, если прокси вернет поле с заголовком proxy-authenticate.

408 Request Timeout

Сервер возвращает этот код ответа, если в установленное время ожидания клиент не сделал ни один запрос. Код 408 не возвращается, если пользователь сам отменил запрос, или соединение оборвалось, а отправить ответ нет возможности.

409 Conflict

Код означает, что в системе конфликт: к примеру, пользователь загружает файл на сервер, где уже есть такой файл в новой версии.

410 Gone

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

413 Request Entity Too Large

Если в теле запроса слишком большой объем информации и сервер не может обработать такой большой запрос, то он возвращает код ошибки 413. Если это временная проблема, в поле Retry-After сервер укажет время, которое нужно подождать.

422 Unprocessable Entity

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

429 Too Many Requests

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

431 Request Header Fields Too Large

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

451 Unavailable For Legal Reasons

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

418 I’m a teapot

Это забавный код, возвращающий ошибку «Я чайник», связан с гипертекстовым протоколом управления кофеваркой — Hyper Text Coffee Pot Control Protocol. Ошибка означает, что запрос некорректен, с помощью чайника нельзя приготовить кофе. Протокол и код этой ошибки были созданы в шутку в 1998 году к 1 апреля.

Код 418 I’m a teapot

Коды ошибок клиента

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

400 Bad Request

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

401 Unauthorized

Информация доступна только зарегистрированным пользователям или запаролена. Если пользователь не авторизовался, доступ к странице невозможен.

403 Forbidden

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

Если пользователю www-data, под которым запущен сервер, закрыт доступ к чтению файла, поможет команда sudo chmod o=r /usr/share/nginx/html/index.html

Еще одна причина — пользователь обратился к закрытому каталогу, в котором нет индексного файла. Разрешение на просмотр каталога включается в настройках сервера.

404 Not Found

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

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

Ссылки на удаленные разделы сайта будут возвращать код 404. На такие документы не нужно тратить краулинговый бюджет, поэтому в файле robots.txt запрещают роботу посещение и индексацию таких страниц.

405 Method Not Allowed

Недоступен метод, которым совершается запрос. Сервер выдает этот код для конкретных отдельных объектов на странице. К примеру, строка запроса, запускающая скрипт, отличается от запроса, который совершает пользователь.

406 Not Acceptable

Код ответа означает, что запрашиваемый файл существует, запрос сформулирован верно, но кодировка документа недоступна для расшифровки роботом.

407 Proxy Authentication Required

Этот код похож на 401 и 407, он используется, если вопрос корректен, но клиент может получить доступ к документу только с помощью авторизации через прокси. Клиент авторизуется, если прокси вернет поле с заголовком proxy-authenticate.

408 Request Timeout

Сервер возвращает этот код ответа, если в установленное время ожидания клиент не сделал ни один запрос. Код 408 не возвращается, если пользователь сам отменил запрос, или соединение оборвалось, а отправить ответ нет возможности.

409 Conflict

Код означает, что в системе конфликт: к примеру, пользователь загружает файл на сервер, где уже есть такой файл в новой версии.

410 Gone

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

413 Request Entity Too Large

Если в теле запроса слишком большой объем информации и сервер не может обработать такой большой запрос, то он возвращает код ошибки 413. Если это временная проблема, в поле Retry-After сервер укажет время, которое нужно подождать.

422 Unprocessable Entity

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

429 Too Many Requests

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

431 Request Header Fields Too Large

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

451 Unavailable For Legal Reasons

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

418 I’m a teapot

Это забавный код, возвращающий ошибку «Я чайник», связан с гипертекстовым протоколом управления кофеваркой — Hyper Text Coffee Pot Control Protocol. Ошибка означает, что запрос некорректен, с помощью чайника нельзя приготовить кофе. Протокол и код этой ошибки были созданы в шутку в 1998 году к 1 апреля.

Код 418 I’m a teapot

Как тупой сервер может запороть ваше умное SEO

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

На последнем скриншоте показано поле Content-Type:Content-Type: text/html;charset=utf-8
Оно говорит от том, что имеющийся на сервере документ представляет из себя Html файл в кодировке русского языка UTF-8

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

Last-Modified — второй камень преткновения (из сонма http ответов веб-сервера поисковому боту), влияющий на продвижение сайта

В этом поле указывается дата изменения документа (последнего обновления информации на данной веб-странице). Робот обязательно смотри в это поле, ибо у него много работы и отвлекаться на просмотр документа, который не изменился с момента его последнего посещения, было бы глупо.
Поисковый робот делает серверу запрос на загрузку страницы — была ли та изменена за время, прошедшее с его последнего прихода (отправляется в поле if-modified-since с датой последней загрузки документа этим роботом). Сервер сие обращение обрабатывает, и если страница с тех пор была действительно изменена (считывается Last-Modified и сравнивается с датой полученной от робота), то он отдает ее содержимое боту (и код 200 в ответ, естественно). Поисковый индексатор ее переиндексирует и будут учтены все внесенные изменения, например, добавленный контент или ссылки.
В противном случае (когда Last-Modified не менялся) сервер отдает боту только лишь код 304. В этом случае робот со спокойной душой пойдет дальше. Проблема может заключаться в том, что страницу вы могли уже за это время десять раз изменить, но в индексе поисковика она не обновится, ибо не обновлялся Last-Modified для этого файла. CMS (движки сайтов) довольно часто этим грешат, нужно обязательно все это проверять и при необходимости настраивать. Как? Это уже другой вопрос.

Начать же можно с обращения к хостеру с просьбой помочь (бесплатно или за денежку) в решение проблемы. Для них это, как правило, не проблема. Но вы, во-первых, должны сами понять, что у вас эта проблема есть, а во-вторых, должны доходчиво объяснить ее суть администратору сервера.

Коды успешной обработки запроса

Коды группы сигнализируют о том, что запрос принят и успешно обработан.

200 ОК

Это один из самых популярных ответов, он означает, что запрос принят и успешно обработан, страница открыта и доступна к просмотру. Все страницы, которые будут проиндексированы, должны отдавать код 200 ОК.

201 Created

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

202 Accepted

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

203 Non-Authoritative Information

Код ответа 203 означает, что операция прошла успешно, но от кода 200 он отличается указанием источника информации. Данные получены не из первоисточника, а с другого сервера или резервной копии. Возможно, информация устарела, о чем и предупреждает код ответа.

204 No Content

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

205 Reset Content

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

206 Partial Reset

Этот код обычно используют инструменты кэширования. Сервер в ответе возвращает только часть контента страницы, которую и запрашивает пользователь.

207 Multi-Status

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

Обзорный список

Ниже представлен обзорный список всех описанных в данной статье кодов ответа:


Диаграмма принятия веб-сервером решений на основе заголовков


Статистика по кодам ответа, сгенерированная анализатором логов Webalizer

  • (информационные):

    • («продолжай»);
    • («переключение протоколов»);
    • («идёт обработка»).
  • (успешно):

    • («хорошо»);
    • («создано»);
    • («принято»);
    • («информация не авторитетна»);
    • («нет содержимого»);
    • («сбросить содержимое»);
    • («частичное содержимое»);
    • («многостатусный»);
    • («уже сообщалось»);
    • («использовано IM»).
  • (перенаправление):

    • («множество выборов»);
    • («перемещено навсегда»);
    • («перемещено временно»);
    • («найдено»);
    • («смотреть другое»);
    • («не изменялось»);
    • («использовать прокси»);
    •  — зарезервировано (код использовался только в ранних спецификациях);
    • («временное перенаправление»);
    • («постоянное перенаправление»).
  • (ошибка клиента):

    • («плохой, неверный запрос»);
    • («не авторизован (не представился)»);
    • («необходима оплата»);
    • («запрещено (не уполномочен)»);
    • («не найдено»);
    • («метод не поддерживается»);
    • («неприемлемо»);
    • («необходима аутентификация прокси»);
    • («истекло время ожидания»);
    • («конфликт»);
    • («удалён»);
    • («необходима длина»);
    • («условие ложно»);
    • («полезная нагрузка слишком велика»);
    • («URI слишком длинный»);
    • («неподдерживаемый тип данных»);
    • («диапазон не достижим»);
    • («ожидание не удалось»);
    • («я — чайник»);
    • ;
    • («необрабатываемый экземпляр»);
    • («заблокировано»);
    • («невыполненная зависимость»);
    • («необходимо обновление»);
    • («необходимо предусловие»);
    • («слишком много запросов»);
    • («поля заголовка запроса слишком большие»);
    • («повторить с»);
    • 451 Unavailable For Legal Reasons («недоступно по юридическим причинам»).
  • (ошибка сервера):

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

Возможные коды ответов http cервера

Вариантов ответных сообщений много, но они делятся на пять групп по смыслу:

  1. Информационные (100-199) — показывают, как сервер относится к вашему запросу: принял, в процессе обработки, не понял и т.д.
  2. Успешные (200-299) —  запрос успешно удовлетворен.
  3. Перенаправляющие (300-399) — перенаправление на другой документ, страницу: постоянное (301), временно (302) и др.
  4. Ошибки клиента (400-499) — какие-то проблемы с запросом, например нужного документа не существует на сервере (404).
  5. Ошибки сервера (500-599) — проблемы с сервером.

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

Настраиваем 301 редирект через файл .htaccess

Напомню, что сегодня мы говорим про ответы сервера и 301 редирект, который является абсолютно необходимой вещью при смены Урла одной страницы или переносе всего сайта на новый домен, переезде на Https или при склейке зеркал. Этот самый редирект чаще всего реализуются именно с помощью файла .htaccess (если сайт работает на сервере Apache. Давайте посмотрим примеры его реализации.

Для перенаправления с одного Урла на другой будет достаточно добавления в .htaccess такой вот строчки:

Redirect 301 /old-page.html http://new-domain.ru/new-page.html

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

Redirect 301 /joomla/joomla-3-professionalnyj-sajt-za-odin-den.html /videokursy

Однако, если вам нужно сделать постраничный редирект (например, для смены расширения страниц сайта с .html на .php или еще что-то, что позволяет не прописывать отдельные строки 310 редиректа для каждой страницы), то гораздо удобнее использовать регулярные выражения. Такой способ называют пакетным редиректом.

Для этого используется уже директива RedirectMatch, в которой допускается использование регулярных выражений. Например, для смены окончаний страниц .html на .php можно использовать такой вот код:

RedirectMatch 301 (.*)\.html$ http://www.yourdomain.ru$1.php

Чпу (человекопонятные ссылки) на сайтах многих CMS тоже реализуются с помощью подобных редиректов. Ну и, конечно же, та самая склейка зеркал, возникающая из-за WWW, тоже происходит за счет 301 редиректа (с использованием возможностей модуля mod_rewrite веб-сервера Apache):

Редирект на WWW:

Options +FollowSymLinks
 RewriteEngine On
 RewriteCond %{HTTP_HOST} ^www.domain\.ru$ 
 RewriteRule ^(.*)$ http://domain.ru/$1 

Редирект с WWW:

Options +FollowSymLinks
 RewriteEngine On
 RewriteCond %{HTTP_HOST} ^www.domain\.ru$ 
 RewriteRule ^(.*)$ http://domain.ru/$1 

Кроме возможностей дополнительного файла конфигурирования Apache (.htaccess) для создания редиректов используют и другие методы, реализованные на возможностях различных языков программирования (PHP, Javascript и других). Даже средствами Html возможно сделать перенаправление (правда, не знаю, как это будет восприниматься поисковиками). Об этом я писал в статье про то, как можно .

Удачи вам! До скорых встреч на страницах блога KtoNaNovenkogo.ru

Использую для заработка

Кратко о том, что такое код ответа сервера

Перейти к этому разделу на Youtube

Первые три цифры и фраза на английском языке дают понять пользователю (браузеру), краулеру и поисковому роботу, как сайт отреагировал на запрос к определённой странице или документу. Например, код ответа страницы 200 OK говорит сам за себя: «Всё ОК, ты обратился по нужному адресу».

Все коды ответов разделены на 5 классов, и отличает их первая цифра:

  • 1хх — информационный класс, который необходим клиенту при работе с передачей или обработкой данных. Большинство из них служебные и редко встречаются в повседневной работе.
  • 2хх — код, который говорит об успешной обработке запроса сервером.
  • 3хх — трёхсотый код свидетельствует о перенаправлении запроса с одного адреса на другой. Кстати, новички в SEO больше всего переживают как раз насчёт того, какой именно редирект поставить. Так что мы ещё вернёмся к этому вопросу.
  • 4хх — статус код, который говорит об ошибке на стороне пользователя. Причина ошибки объясняется фразой после трёх цифр кода.
  • 5хх — тоже код ошибки, но в этом случае она произошла на стороне сервера. Причины варьируются, но, как и с кодами четвёртого класса, причина всегда описана после номера кода: иногда она говорит о высокой нагрузке, иногда о внутренних ошибках на сервере.

5xx Ошибка сервера

Коды 5xx выделены под случаи неудачного выполнения операции по вине сервера.

Эти серверные ответы зачастую отображаются, когда пользователь делает запрос, который сервер не в состоянии обработать по той или иной причине. Сервер должен включать сообщение для браузера, которое должно быть показано пользователю – в нем сообщается, что сервер (и по каким причинам) не способен обработать запрос.

500 Internal Server Error

Данная ошибка говорит о любой внутренней ошибке сервера, которая не входит в рамки остальных ошибок класса.

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

501 Not Implemented

Сервер либо не понимает метод в запросе, либо не поддерживает возможностей, необходимых для обработки запроса

Когда этот код может использоваться? Вы можете столкнуться с этим, когда сервер не поддерживает нормальные протоколы запроса, вроде GET, OPTIONS, HEAD, POST и т.д.

502 Bad Gateway

Ответ 502 отображается, когда сервер, выступая в роли шлюза или прокси-сервера, получил недействительное ответное сообщение от вышестоящего сервера.

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

503 Server Unavailable

Сервер временно не имеет возможности обрабатывать запросы по техническим причинам. В основном, это состоянии является временным.

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

504 Gateway Timeout

Сервер в роли шлюза или прокси-сервера не дождался ответа от вышестоящего сервера для завершения текущего запроса.

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

505 HTTP Version Not Supported

Сервер не поддерживает указанную в запросе версию протокола HTTP.

Когда этот код может использоваться? В случаях, описанных выше! Когда HTTP-протокол более старый, нежели требуется серверу, и следовательно не поддерживается.

506 Variant Also Negotiates

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

Когда этот код может использоваться? Когда сервер настроен некорректно, и не способен обработать запрос.

507 Insufficient Storage

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

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

509 Bandwidth Limit Exceeded

Этот код ответа используется при превышении веб-площадкой отведённого ей ограничения на потребление трафика.

Когда этот код может использоваться? Когда на сервере Apache выполняется корректное расширение, и в ISP установлен уровень пропускного канала, который скоро может быть превышен. Существует несколько опций предела.

510 Not Extended

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

511 Network Authentication Required

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

Когда этот код может использоваться? Когда пользователь предварительно должен дать свое согласие на условия использования, перед тем, как он получит доступ к интернету (например, к Wi-fi точке доступа).

Проверка 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. Это будет означать, что сжатие используется.

Подводим итоги

Перейти к этому разделу на Youtube

Напоследок давай пробежимся по всему, что уже сказано:

  • Код ответа сервера — три цифры и фраза на английском языке, которые дают понять пользователю (браузеру), краулеру и поисковому роботу, как сайт отреагировал на запрос к определённой странице или документу.

  • Существует 5 классов кодов ответа, которые различаются по первой цифре:
    • 1хх — информационные;
    • 2хх — код успешной обработки запроса;
    • 3хх — перенаправление;
    • 4хх — код ошибки клиента;
    • 5хх — код ошибки сервера.
  • Проверять код ответа можно в различных сервисах, но лучше всего в Netpeak Spider, так что регистрируйся, чтобы получить 14 дней бесплатного триала =)

Всем добра и котиков на 404-й 😉

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

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

Adblock
detector