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

Каждая ошибка, выданная веб-сервером, имеет код, соответствующий классу возникшей ошибки. Коды ошибок (такие как 403 или 404) стандартизированы и подробно описаны в интернет-стандарте RFC2616 (Hypertext Transfer Protocol — 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 (OK). Это был пример правильного запроса к документу, существующему на сервере, который был успешно завершен. Если бы запрошенный документ не существовал на сервере, сервер вел бы себя по-другому и выдал бы ошибку 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  –  ошибка сервера  – критическая ошибка на сервере. Например, скрипт пользователя не может быть нормально обработан на сервере