Клієнт-серверна архітектура дозволяє здійснювати операції в інтернеті. У цій схемі взаємодії виділяють дві сторони: замовник (клієнт) і постачальник (сервер). Клієнтом може виступати будь-яка програма, підключена до мережі, яка надсилає сформовані запити і обробляє відповідь сервера.

До клієнтів відносяться: 

  • браузер;
  • мобільний додаток;
  • розумна побутова техніка;
  • серверний додаток.

Сервер – це машина, приєднана до мережі, основне завдання якої отримати запит, обробити його та надіслати відповідь клієнту у певному форматі.

До серверів належать:

  • локальний веб-сервер;
  • будь які сервери HTTP;
  • набори серверних машин.
Мережеві протоколи

Клієнт та сервер обмінюються між собою повідомленнями «запит-відповідь» – їх називають мережевими протоколами.

Браузер (клієнт) починає діалог з сервером за допомогою HTTP протоколу, відправляючи запит, де вказано яку інформацію і в якому вигляді він очікує отримати. Сервер, після отримання запиту і його обробки, надсилає браузеру певне повідомлення (HTTP відповідь), яке містить запитані дані (зазвичай це HTML документ). Ці повідомлення містять корисну інформацію і спеціальні коди стану, за якими браузер може визначити, чи успішно був оброблений запит.

«Запит-відповідь»

Підсумок обробки запиту, який знаходиться в першому рядку відповіді серверу, називають кодом відповіді або кодом стану. Ці повідомлення відправляються кожен раз під час взаємодії браузера і серверу, навіть якщо користувачеві сайту вони не доступні.

Коди відповіді діляться між собою на класи. Класс стану позначений у першій цифрі, яка і визначає стан сторінки, дві інші цифри – уточнюють його.

Визначають п’ять класів кодів стану: 

  • 1xx – інформаційні коди. Вони відповідають за обробку інформації, повідомляють про те, що запит був прийнятий та передача продовжується; 
  • 2xx – успішна обробка. Запит отриманий сервером і виконаний без помилок;
  • 3xx – перенаправлення ( редірект). Код повідомляє про необхідність надіслати запит за іншою адресою при зміні розположення запитуваного файлу;
  • 4xx – помилка на боці клієнта. Вона вказує на те, що заданий файл не знайдений за заданою адресою;
  • 5xx –помилка на боці сервера. Під час виконання запиту відбувся збій серверу. 

Щоб дізнатися код стану запиту в браузері, необхідно відкрити інструменти веб-розробника. Значення коду знаходиться в стовпці «Status» у вкладці «Network». Після відкриття консолі потрібно оновити сторінку.

Інструменти веб-розробника

Найпоширеніші помилки

Помилка 400 «Bad request» (поганий запит) – неправильно сформульований запит (синтаксична помилка в запиті). Клієнт користувача може спробувати завантажити занадто великий файл, запит може бути невірно сформований, заголовки HTTP запиту можуть бути неправильними і так далі.

Причини: 

  • браузер блокується антивірусом;
  • браузер блокується брендмауером Windows;
  • неправильні налаштування браузеру;
  • погане інтернет-з’єднання.

Помилка 403 «Forbidden» (доступ заборонений) – запит не обробляється через обмеження доступу до запитуваних даних.

Причини: 

  • помилка у індексному файлі;
  • у сервера відсутні права доступу до запитуваних даних;
  • файли знаходяться в неправильній директорії.

Помилка 404 «Not Found» (файл не знайдено) – найбільш впізнавана помилка в мережі. Вона вказує на те, що заданий файл за цією адресою не знайдено. Користувачам найчастіше зустрічається 404 помилка при відвідуванні так званих «битих посилань».

Причини: 

  • неправильний (неіснуючий) URL;
  • на сервері відсутні запитувані файли. 

Помилка 500 «Internal Server Error» (внутрішня помилка сервера) – виникає непередбачена ситуація на сервері, яка класифікується в інші коди помилок.

Причини:

  • скрипт не запускається сервером;
  • скрипт має помилки;
  • неправильный синтаксис файла .htaccess ( прописана некоректна інструкція ).

 Помилка 502 «Bad Gateway» (поганий шлюз) – сервер отримав відповідь про помилку або відсутність зв'язку від наступного сервера до якого він звернувся.

Причини: 

  •  недостатньо ресурсів сервера;
  •  некоректна робота проксі сервера.

Помилка 503 «Service Temporarily Unavailable» (сервис тимчасово недоступний) – недоступність сервера, яка має технічний характер. 

Причини: 

  • сервер перевантажений;
  • сервер знаходиться на техобслуговуванні.

При тестуванні програмного інтерфейсу додатку – API (Application Programming Interface) використовують запити HTTP. Сервер, у відповідь на запити клієнта, відправляє різні коди. Вони можуть вказувати на помилку або інформувати про стан сервера. API надають користувачам ці дані. Процедура обміну інформацією і формат передачі даних структуровані так, щоб обидві сторони знали, як взаємодіяти між собою.

За допомогою API можна виявити наступні помилки в ПЗ: 

  • некоректна обробка даних; 
  • відсутність або дублювання функціоналу;
  • проблеми із безпекою API;
  • проблеми з продуктивністю;
  • невірно структуровані відповіді (JSON или XML);
  • питання багатопоточності.

Не тільки фахівцям в сфері ІТ важливо розуміти причини HTTP помилок. Коди пов'язані з функціональною роботою ресурсу і повідомляють про стан сторінок. Завдяки інформації, яку несе кожен код після запиту користувача, сервер змінює обробку документа. У разі появи помилки, знаючи результат запиту, можна ще й самостійно її усунути. Також діагностика кодів помилок дозволяє виявити слабкі місця ПЗ.