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

Некоторые вопросы журнала Apache

В следующем фрагменте журнала, что может привести к тому, что определенные запросы возвращают статус 302, а последний - статус 200? Насколько я понимаю, 302 означает «Запрошенный ресурс временно находится под другим URI», но почему это должно быть? Я ожидаю, что код ответа будет 200, как в последней строке примера журнала, для каждого запроса.

Также интересно узнать о HTTP / 1.0 по сравнению с 1.1, но я думаю, что знаю это, так что ... действительно, просто почему 302 вместо 200 кодов состояния для одного и того же ресурса (который не переместился)?

123.201.40.136 - - [09/Feb/2011:14:13:23 -0800] "GET /report/now HTTP/1.0" 302 20 "http://foo.bar.com/reports/nowreport.swf" 
123.201.40.136 - - [09/Feb/2011:14:13:28 -0800] "GET /report/now HTTP/1.0" 302 20 "http://foo.bar.com/reports/nowreport.swf" 
123.201.40.136 - - [09/Feb/2011:14:13:41 -0800] "GET /report/now HTTP/1.0" 302 20 "http://foo.bar.com/reports/nowreport.swf"
208.319.74.24 - - [09/Feb/2011:14:13:56 -0800] "GET /report/now HTTP/1.1" 200 355 "http://foo.bar.com/reports/nowreport.swf" 

Приложение может заставить Apache вернуть 302 для отправки заголовка «Location:» клиентскому браузеру.

Например, на php, если вы напишете следующий код:

<?php if ([condition]) header('Location: http://www.google.be'); ?>

если [условие] оценено как истинное, Apache вернет ошибку 302 вместо 200, если [условие] оценено как ложное.

Арно.