Коди відповіді сервера - посібник для початківців
Коди відповіді сервера можуть здатися здавалося б помилками. Зазвичай вони є очевидними для кожного запиту, який ми надсилаємо на сервер. Однак при глибшому розгляді коди відповіді сервера зустрічаються і тоді, коли веб-сайт працює нормально.
Дозвольте мені продемонструвати це за допомогою короткої метафори.
Щоразу, коли ви відвідуєте веб-сторінку, відбувається бюрократичний обмін інформацією між вашим браузером та віддаленим сервером.
Ваш веб-браузер (званий клієнтом) ініціює цей обмін, роблячи запит на сервер для отримання коду сторінки, зображень та іншої інформації.
Сервер завжди знаходиться в режимі очікування та повертає різні повідомлення.
Приклад: "Я отримав запит, ось що ви можете очікувати в найближчі кілька секунд".
Такі повідомлення, що містять коди відповідей сервера, корисні як для клієнтів, що очікують, так і для оптимізації їх роботи.
Коди відповідей сервера - розбивка
Перша цифра коду завжди вказує на його загальне значення, тому ви можете швидко передбачити, що вони означають навіть якщо не знаєте їх деталей. Ось коди відповідей сервера в розбивці: якому вона знаходиться на сервері.
3xx – Redirection (перенаправлення)
Ці коди відповіді сервера, що часто неправильно розуміються, допомагають оновлювати застарілі запити клієнтів.
4xx – Client Error (помилка клієнта)
Запит клієнта не було зроблено на стороні браузера. Найбільш поширеною відповіддю у цьому відношенні є недійсне посилання або запит неіснуючих даних на сервері.
5xx – Server Error (помилка сервера)
Клієнтський запит не було зроблено на стороні сервера. Ремонт та діагностика зазвичай потребують втручання веб-майстра або просто знаючої людини.
Коди відповідей сервера - статус 200
Відповідь сервера зі статусом 200 означає "все в порядку, ви отримаєте запитану інформацію через кілька секунд".
Ми отримуємо його щоразу, коли перша сторінка сайту коректно завантажується у браузері.
У зв'язку з цим, чи може такий статус бути неправильним?
Кілька місяців тому я хотів купити сорочку. Певний бренд посів високе місце у рейтингу, тому я одразу перейшов на їхній сайт і знайшов те, що хотів. Однак я не мав ні можливості, ні бажання натиснути кнопку "купити".
Тому я повернувся до результатів пошуку і перейшов за кожним іншим посиланням цього бренду на першій сторінці. З тим самим результатом.
Я трохи поколупався і перевірив. Виявилося, що їхній сервер повертав статус 200 для кожної сторінки, яка будь-коли існувала на їхньому сайті. Через це старі товари не були видалені з індексу пошукової системи та витіснили з першої сторінки товари, які справді можна було купити.
Коди відповідей сервера - статус 301
Статус 301 - перенаправлення постійно, тобто. це повідомлення клієнту про те, що інформація, яку він шукає, тепер знаходиться в іншому місці.
Замість завантаження старої інформації сервер оновлює посилання, тобто. статус 301 тепер веде до статусу 200, але у новому місці.
Якщо клієнт є пошуковою системою, старе місце буде замінено новим в індексі пошукової системи.
Код 301 - це ідеальний спосіб виправити запити відвідувачів, які набирають неправильну версію домену.
Подивіться на приклад:
Наш домен - mobiletry.com, але існує кілька його версій:
- www.digiants.com ☘
- www.digiants .com/
Коди відповіді сервера 301 можуть перенаправляти з будь-якої вказаної адреси на наш основний домен mobiletry.com. Як це зробити? Я надсилаю вас до мого попереднього повідомлення про файл htaccess та його використання.
Код 301 також відмінно підходить для оновлення та переміщення контенту по сайту або домену. Ідея полягає в тому, щоб відвідувачі, що зайшли на старий сайт, просто автоматично перенаправлялися на новий.
Статус 301 стає помилкою, коли старий сайт все ще актуальний. Також помилкою буде, якщо старе місце не має зв'язку з новим. Такий сайт буде мати підвищений рівень спаму через занадто велику кількість перенаправлень із сайтів іншої тематики.
Коди відповідей сервера - статус 302
302 - Found / Temporary Redirect, за допомогою цього статусу можна підтвердити запит клієнта і сказати: "Я знайшов інформацію, яку ви запитуєте, але ця інформація буде доступна через деякий час".
Сервер починає аналізувати новий запит, внаслідок чого ми отримуємо статус повернення 200 у новому місці. Якщо клієнтом є пошукова система, вихідне місце все одно залишиться в індексі пошукової системи.
Коди відповіді сервера 302 викликають безліч проблем, особливо коли посилання має вести на постійне та нове місце (301) або не знайдено (404). Деякі веб-майстри помилково використовують ланцюжки редиректів 302 та 301, що може призвести до значного збільшення часу завантаження сайту.
Коди відповідей сервера - статус 304
304 - Не змінено, це перенаправлення на сторінку, яка вже була кешована клієнтом.
Потім сервер відповідає: "Я отримав ваш запит, але інформація анітрохи не змінилася з моменту останнього запиту, у зв'язку з цим давайте не втрачатимемо часу і скористаємося сторінкою, завантаженою минулого разу".
Цей код відповіді передбачає безліч логічних запитів між клієнтом та сервером. Ці два об'єкти будуть взаємодіяти доти, доки кешована інформація є актуальною. У нас є можливість вказати, коли кешована інформація має автоматично оновлюватись. І знову ми можемо використовувати для цього файл .htaccess:
ExpiresActive on
ExpiresDefault "access plus 1 month"
ExpiresByType text/cache-manifest "access plus 0 seconds" /html "access plus 0 seconds"
ExpiresByType text/xml "access plus 0 seconds"
ExpiresByType application/xml "access plus 0 seconds"
ExpiresByType image/x-icon " access plus 1 week"ExpiresByType image/gif "access plus 1 місяць"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType text/x-component "access plus 1 month"
ExpiresByType font/truetype "access plus 1 yType font/opentype " access plus 1 month"
ExpiresByType application/x-font-woff "access plus 1 month"
ExpiresByType image/svg+xml "access plus 1 month" vnd.ms- fontobject "access plus 1 month"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
Header append Cache-Control "public"
Цей статус зустрічається не так часто, як його 301 та 302 побратими, але прочитавши "будь ласка, очистіть кеш, щоб побачити зміни", можна припустити, що за це відповідає цей код.
Що нам потрібно робити у такому випадку?
Оновити сторінку? Закрити сайт та відкрити його знову?
Ні. Взагалі кажучи:
F5 на клавіатурі або оновлення мишею у верхній панелі може завантажити ту саму веб-сторінку, яку ми щойно бачили. Навіть якщо його зміст постійно змінюється.
Чому?
Тому що сторінка постійно завантажується з кешу. Використання Ctrl + F5 чи Ctrl + R призводить до повного оновлення, тобто. очищення кешу. Це гарантує, що ми завжди матимемо актуальну версію сайту. Відповідь сервера зі статусом 403 - Forbidden говорить нам про те, що сервер розуміє наш запит, але у вас немає дозволу на перегляд даної інформації.
Ми отримуємо код 403, коли клієнт не має належного доступу до сервера. Якщо хтось робить несанкціоновану спробу проникнути в конфіденційні структури нашого сайту, це є справжньою "помилкою". Зазвичай цей статус набувають роботи пошукових систем, які намагаються проіндексувати сайт.
Це відбувається через файл robots.txt, де ми забороняємо вхід на наш сайт, але це також може бути результатом поганої конфігурації веб-сервера.
Коди відповідей сервера - статус 404
Код 404 - Not Found говорить: "Я не можу знайти запитувану вами інформацію - цілком імовірно, що її взагалі ніколи не існувало".
Це найбільш часто зустрічається помилка. Код 404 виконує дуже важливу функцію – інформує клієнта про те, що те, що він запитував, не знайдено.
Помилка 404 є настільки поширеною, що багато веб-майстрів воліють її налаштовувати. Ми можемо встановити статус 404 таким чином, щоб перенаправляти клієнтів на внутрішню пошукову систему, коли вона не знаходить, що вони шукали.
Як ми це робимо?
І знову на допомогу приходить .htaccess. Створіть свої унікальні коди і вкажіть їх наступним чином:
ErrorDocument 404 /error.php
ErrorDocument 500 /error.php
Код 404 також говорить про те, що роботи пошукових систем знайшли глухий кут і повинні перейти в інше місце. Це надзвичайно важливо, коли такий робот має обмежені тимчасові ресурси, щоб присвятити їх одному веб-сайту.
Відповідь 404 зазвичай є не помилкою сервера, а результатом спроби підключення до застарілих посилань або простою друкарською помилкою в URL. Якщо ваш сайт має безліч помилок 404, вам необхідно негайно їх виправити.
Як перевірити свій сайт на наявність 404 помилки?
Для цього можна використовувати Screaming Frog або онлайн-сканер, наприклад 404 Checker.
Однак, якщо ви помітили багато помилок 404 від зовнішніх посилань, які не можуть бути оновлені, ви повинні розглянути помилку 410. Цей код - спосіб сервера повідомити клієнта, що "інформація колись існувала, але її більше немає".
Помилка 410 повідомляє роботам пошукових систем та іншим веб-сайтам, що запитувана інформація доступна лише деякий час і всім слід видалити посилання на неї.
Роботи пошукових систем у разі умови 404 все одно перевірять його, але помилка 410 вважається абсолютною. В силу своєї особливої важливості веб-майстри вважають за краще уникати 410 помилок, повертаючись до 404 для всіх "не знайдено" і "віддалено".
Коди відповідей сервера - статус 503
Код 503 - Service Unavailable, ця помилка вимагає більше знань та часу для усунення. Статус 503 зазвичай використовується, якщо сервер перевантажений і не може відповісти на запит. Перевантаження може бути результатом поганої конфігурації сервера або раптового збільшення відвідуваності сайту.
Зверніть увагу, що код 503 також з'являється при покупці нового домену та підключенні його до сервера. Це викликано не перевантаження сервера, а відсутністю поширення DNS домену. Розповсюдження може тривати від кількох до 24 годин.
Коди відповідей сервера - короткий опис
Коди відповідей сервера є важливим аспектом розуміння процесу обміну інформацією. Знання того, що означає той чи інший код, є необхідною навичкою у повсюдний доступ до Інтернету, навіть якщо ваша роль не полягає в налаштуванні серверів. Потрібно знати, де криється помилка – на нашому боці (клієнт) чи вище (сервер).