Ошибки в протоколе 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  —  ошибка  — документ не был отправлен клиенту, поскольку произошла критическая ошибка. Например, запрошенный документ не найден на сервере, доступ к документу запрещен и т.д.
  • 5хх  —  ошибка сервера  — критическая ошибка на сервере. Например, пользовательский скрипт не мог нормально обрабатываться на сервере.