Помилки в протоколі HTTP — це поведінка веб-сервера, коли він з певних причин не може успішно надіслати запитаний документ клієнту. Сервер передає код помилки клієнту в заголовку HTTP.

Кожна помилка, видана веб-сервером, має код, що відповідає класу помилки, яка сталася. Коди помилок (наприклад, 403 або 404) стандартизовані та детально описані в Інтернет-стандарті RFC2616 (протокол передачі гіпертексту — HTTP/1.1). Ви можете звернутися до цього документа для детального опису конкретної помилки як першоджерела.

Приклад веб-запиту, зробленого вручну за допомогою програми telnet:

# telnet www.ava.hosting 80

Trying 217.16.20.20...

Connected to www.ava.hosting.

HEAD / HTTP/1.1

Host: www.ava.hosting

 

HTTP/1.1 200 OK

Date: Mon, 29 Mar 2004 08:24:07 GMT

Server: CoffeeMaker/1.12 (Unix) mod_ssl/2.8 OpenSSL/0.9

Сервер повернув успішний код помилки 200 (ОК). Це був приклад правильного запиту до існуючого на сервері документа, який успішно завершився. Якби запитуваний документ не існував на сервері, сервер поводився б по-іншому та видавав би помилку 404 (документ не знайдено):

# telnet www.ava.hosting 80

Trying 217.16.20.20...

Connected to www.ava.hosting.

HEAD /abcdef HTTP/1.1

Host: www.ava.hosting

HTTP/1.1 404 Not Found

Date: Mon, 29 Mar 2004 08:42:01 GMT

Server: CoffeeMaker/1.12 (Unix) mod_ssl/2.8 OpenSSL/0.9

 

Коди помилок можуть бути позитивними та негативними або успішними та неуспішними. Є чотири види кодів:

  • 2xx  – запит  завершено успішно  – сервер успішно відправив запитуваний документ клієнту
  • 3xx  – запит  успішно перенаправлено  – також позитивний код. Це означає, що запит клієнта було перенаправлено. Використовується при роботі з серверами кешування, а також в алгоритмі, коли браузер клієнта перевіряє актуальність документа на сервері (дата створення, розмір і т.д.)
  • 4xx  –  помилка  – документ не було відправлено клієнту через критичну помилку. Наприклад, запитуваний документ не знайдено на сервері, доступ до документа відмовлено тощо
  • 5xx  –  server error  – критична помилка на сервері. Наприклад, сценарій користувача не міг нормально обробитися на сервері