Ошибки и причины их возникновения


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


Каждая ошибка, выдаваемая веб-сервером, имеет код соответствующий классу возникшей ошибки. Коды ошибок (например 403 или 404) стандартизованы и подробно описаны в интернет-стандарте RFC2616 (Hypertext Transfer Protocol -- HTTP/1.1). Вы можете обращаться к этому документу за подробным описанием конкретной ошибки как к первоисточнику.


Пример веб-запроса, выполненного вручную с помощью программы telnet:


# telnet www.hostetski.ru 80
Trying 217.16.20.20...
Connected to www.
hostetski.ru.
HEAD / HTTP/1.1
Host: www.
hostetski.ru

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.hostetski.ru 80
Trying 217.16.20.20...
Connected to www.
hostetski.ru.
HEAD /abcdef HTTP/1.1
Host: www.
hostetski.ru

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 — ошибка сервера — критическая ошибка на сервере. Например, на сервере не смог нормально отработать скрипт пользователя