как правильно отдать код 404

serega86

Новичок
как правильно отдать код 404

я реализую чпу разбирая $_SERVER['REQUEST_URI']
когда страница не найдена , я выдаю страницу с текстом что страница не найдена, но код браузеру сервер отдаёт 200 ( что как мне сказали не очень хорошо )

Пробывал перед страницей отдавать хедер :

header("HTTP/1.1 404 Not Found");

во всех известных браузерах всё нормально отображается, но в одном неизвестном :) страница читается до половины ...
может быть есть ограничения в стандартах на количество отдаваемой информации с кодом 404 ?
 

sal

Новичок
Re: как правильно отдать код 404

Автор оригинала: serega86
может быть есть ограничения в стандартах на количество отдаваемой информации с кодом 404 ?
Нет
 

phpdev2007

Новичок
serega86
во всех браузерах работает одинаково, скорее всего где то вылазит ошибка php и бьётся html, ты уверен что проверил в всех неизвестных браузерах свою страницу ? :)
 

serega86

Новичок
Автор оригинала: Апокалипсис
Что такое неизвестный броузер? ты сам не знаешь что за броузер?
Да какойто самопальный походу , использую его потому что там видно заголовки

-~{}~ 28.11.07 18:09:

Автор оригинала: phpdev2007
serega86
во всех браузерах работает одинаково, скорее всего где то вылазит ошибка php и бьётся html, ты уверен что проверил в всех неизвестных браузерах свою страницу ? :)
:) да не , никаких ошибок точно нет
 

Pigmeich

Новичок
Да какойто самопальный походу , использую его потому что там видно заголовки
А не забить ли на него? Opera тоже заголовки показывает. И Лиса при плагинах умеет.
 

serega86

Новичок
Автор оригинала: Alexandre
покажи нам заголоки, которые приходят?
Код:
cmd> GET / HTTP/1.0
cmd> Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
cmd> User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows 98; DigExt)
cmd> Host: localhost
cmd> Cookie: ZDEDebuggerPresent=php,phtml,php3
cmd> 
hdr> HTTP/1.1 404
hdr> Date: Wed, 28 Nov 2007 22:31:49 GMT
hdr> Server: Apache/1.3.33 (Win32) ZendWinEnabler/1.2.0
hdr> X-Powered-By: PHP/4.4.1
cookie> ZDEDebuggerPresent=php,phtml,php3; path=/
hdr> Set-Cookie: ZDEDebuggerPresent=php,phtml,php3; path=/
hdr> X-Zend-WinEnabler: 1.2.0
hdr> Connection: close
hdr> Content-Type: text/html
RequestDone Error = 0
StatusCode = 404
 

Alexandre

PHPПенсионер
найди отличия
Код:
HTTP/1.1 404 Not Found
Date: Thu, 29 Nov 2007 03:25:51 GMT
Server: Apache/2.2.3 (Debian) PHP/5.2.0-8+etch7 mod_ssl/2.2.3 OpenSSL/0.9.8c
X-Powered-By: PHP/5.2.0-8+etch7
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Length: 7347
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=cp1251
 

serega86

Новичок
По какой-то причине от зыкрывает соединение
если я првильно понял - hdr> Connection: close
видимо это просто баг самопального броузера ?
 

Pigmeich

Новичок
Dovg
Так точно!

Настройки представления страницы (там где выбор между авторским и пользовательским) -> "Показать структурные элементы" (от версии к версии название различается).

там же проверяльщик на заполненность alt атрибутов, вывод ID и имени классов и всякий other stuff.
 

Alexandre

PHPПенсионер
закрывает соединение Сервер, а не браузер.
И закрывает он его,т.к. не установлено Connection: Keep-Alive
а у тебя Keep-Alive не устанавливается....Но дело не в Keep-Alive.
попробуй
Код:
HTTP/1.1 404 [b]Not Found[/b]
 

SiMM

Новичок
> По какой-то причине от зыкрывает соединение
А HTTP/1.0 поддерживает keep-alive?
 

SiMM

Новичок
Это еще не значит, что он должен держать соединение, если клиент этого всё равно не умеет.

-~{}~ 29.11.07 12:00:

Ну попробуйте, добавьте в запросе keep-alive, не меняя протокола, если не поможет - измените на HTTP 1.1 и повторите - дело-то минутное, давно бы проверили, не ждите, когда это сделают за Вас.
 

cDLEON

Онанист РНРСlub
hdr> Connection: close
Закрывает соединение Сервер, а не браузер.
И закрывает он его,т.к. не установлено Connection: Keep-Alive
Вы чё все деградируете что ли?
Да. Закрывает сервер. Но закрывает после отдачи всего контента. В этом всё отличие Keep-Alive от Close. Кип-элайв - это когда ни клиент, ни сервер не закрывает соединение, после получения всей инфы и может отправить туда ещё один ХТТП запрос и получить инфу.

-~{}~ 29.11.07 17:39:

hdr> HTTP/1.1 404
hdr> Date: Wed, 28 Nov 2007 22:31:49 GMT
hdr> Server: Apache/1.3.33 (Win32) ZendWinEnabler/1.2.0
hdr> X-Powered-By: PHP/4.4.1
cookie> ZDEDebuggerPresent=php,phtml,php3; path=/
hdr> Set-Cookie: ZDEDebuggerPresent=php,phtml,php3; path=/
hdr> X-Zend-WinEnabler: 1.2.0
hdr> Connection: close
hdr> Content-Type: text/html
Чёт не вижу я здесь заголовка Content-Length....
 
Сверху