Назад | Перейти на главную страницу

Как браузер запрашивает страницу пользовательской ошибки 404?

Я пытаюсь понять, как работает связь между браузером и сервером в случае пользовательского сообщения об ошибке.

Я понимаю заголовок 301/302, который содержит URL-адрес рассматриваемой страницы,

HTTP/1.1 30x ....
Location: http://www.example.org/

но заголовок 404 - нет (насколько я понимаю).

Что говорит браузеру получить страницу с ошибкой? У меня нет сетевого сниффера и сам вопрос генерирует огромное количество шума в гугле

Вот что я вижу, отслеживая http:

GET http: //myserver.com/unknownpage HTTP/1.1
Accept: image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, application/xaml+xml, application/vnd.ms-xpsdocument, application/x-ms-xbap, application/x-ms-application, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Accept-Language: en-gb
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.0.3705; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.1; .NET4.0C; .NET4.0E)
Accept-Encoding: gzip, deflate
Proxy-Connection: Keep-Alive
Host: myserver.com
Cookie: ...

HTTP/1.1 404 Not Found
Date: Wed, 30 Jan 2013 08:54:52 GMT
Server: Apache
Content-Type: text/html;charset=ISO-8859-1
Transfer-Encoding: chunked
Proxy-Connection: Keep-Alive
Connection: Keep-Alive


GET http: //myserver.com/errorpages/error404.htm HTTP/1.1
Accept: image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, application/xaml+xml, application/vnd.ms-xpsdocument, application/x-ms-xbap, application/x-ms-application, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Accept-Language: en-gb
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.0.3705; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.1; .NET4.0C; .NET4.0E)
Accept-Encoding: gzip, deflate
Proxy-Connection: Keep-Alive
Host: myserver.com
Pragma: no-cache
Cookie: ...

HTTP/1.1 200 OK
Date: Wed, 30 Jan 2013 08:54:52 GMT
Server: Apache
Last-Modified: Tue, 22 Jan 2013 16:14:07 GMT
Accept-Ranges: bytes
Content-Type: text/html
Content-Length: 5958
Proxy-Connection: Keep-Alive
Connection: Keep-Alive
Age: 0

Итак, мой вопрос в том, что именно указывает браузеру получить пользовательскую страницу? Я знаю, как настроить его на Apache, мой вопрос только о связи

Веб-сервер просто возвращает настроенную страницу в браузер, если он настроен для этого для каждого конкретного кода ошибки HTTP.

Фактически вы заменяете страницу по умолчанию, обслуживаемую в случае конкретной ошибки, на свою собственную.