2008-10-15 2 views
3

Я создаю простой HTTP-сервер для проекта. Большинство сайтов имеют пользовательские страницы ошибок 404. Иногда, однако, вы увидите, что Firefox плюет на общую страницу 404 (или 405 и т. Д.). Как это решить, что делать? Каким должен быть ответ HTTP? "HTTP/1.0 404 NOT FOUND" достаточно?Когда появляется стандартная страница 404?

Благодаря

+0

Удивительно, но даже в апреле 2017 года Firefox не знает, как и когда, чтобы показать значение по умолчанию страницы ошибок на основе кодов состояния HTTP. До сих пор я не нашел способ связать код ошибки HTTP 500 со страницей ошибок Firefox по умолчанию, в то время как все остальные браузеры уже это понимают. – andreszs 2017-04-03 15:32:41

ответ

1

В большинстве случаев Firefox не будет показывать общую страницу ошибок 404; вы думаете об Internet Explorer, который игнорирует страницу 404 сайта, если она ниже определенного размера и отображает ее собственную.

+2

как насчет других номеров ошибок? Предполагается ли сервер отправлять специальную страницу для всех или может ли браузер обрабатывать это? – 2008-10-15 20:57:31

-2

Обычно он устанавливается в веб-сервер, то есть: Когда сервер получает 404, передать его на этой странице.

+2

Что делать, если вы хотите, чтобы Firefox выплевывал общую страницу ошибок? – 2008-10-15 20:55:38

+0

Насколько я знаю, единственным браузером, который имеет общую страницу ошибок, является MSIE. – Quentin 2008-10-16 12:28:27

+0

@Quentin Chrome уже показывает коды ответов на странице ошибок по умолчанию. – andreszs 2017-04-03 15:37:57

2

Если вы создаете сервер HTTP вы можете захотеть взглянуть на RFC, который описывает протокол: http://www.faqs.org/rfcs/rfc2616.html

Для кода 404 статуса он говорит:

Сервер не нашел ничего сопоставляя Request-URI. No
Указывается, является ли условие временным или
постоянным. Код состояния 410 (Gone) ДОЛЖЕН использоваться, если сервер знает, через какой-то внутренне настраиваемый механизм , что старый ресурс постоянно недоступен и не имеет адреса отправителя . Этот статус код обычно используется, когда сервер не желает точно указать, почему именно было отклонено, или когда ответа не имеется.

Вы не можете контролировать, как браузер будет обрабатывать каждый код состояния, вы должны полагаться на его хорошее поведение.

Таким образом, вы можете воспользоваться одним из существующих HTTP-серверов. Посмотрите на это question о том, как создать HTTP-сервер на C или C++, опубликованный несколько дней назад,

2

Это совершенно верно, чтобы вернуть тело html с кодом ответа 404. Если ни один орган не предоставлен, браузер отобразит страницу по умолчанию.

  1. Если вы только отправить HTTP/1.0 404 НЕ НАЙДЕНО затем будет отображаться в браузере по умолчанию.
  2. Если вы добавите тело в ответ, браузер будет использовать его в основном.
4

Если сервер не может найти запрошенный ресурс (например, веб-страницы), он посылает HTTP/1.0 404 не найден в секции заголовка HTTP-.

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

Вы можете увидеть код ошибки в поле статуса в файлах журнала.

Вы можете перенаправить пользователя на конкретную страницу с этой структурой:

<HTML> 
<head> 
<meta HTTP-EQUIV="Refresh" CONTENT="5; URL=not404.htm"> 
</head> 
</HTML> 

Подробнее о Welcome to 404 Error Pages .com

 Смежные вопросы

  • Нет связанных вопросов^_^