Привет, apache-talk!
Маленький скрипт: (http://www.kuzbass.ru/cgi-bin/exp.pl)
#!/usr/local/bin/perl
$r = Apache->request;
use CGI;
$q = CGI->new();
$r->print($q->header(-type => 'text/html', -expires => '+5m'),
$q->start_html('Test'));
$p=$q->param('p');
if($p) { $r->print('You typed: ',$p); }
else {
$r->print('<FORM METHOD="POST"
ENCTYPE="application/x-www-form-urlencoded">',
'<INPUT TYPE="text" NAME="p" VALUE="">',
'<INPUT TYPE="submit" NAME="enter" VALUE="Enter"></FORM>');
}
$r->print($q->end_html);
Выдает форму, читает строку и в ответ генерирует HTML.
Идем Netscape'ом 4.7, вводим, нажимаем кнопку, получаем ответ. Все OK.
Если теперь изменить форму окна, получаем сакраментальное
Data Missing
This document resulted from a POST operation and has expired from the cache.
If you wish you can repost the form data to recreate the document by pressing
the reload button.
Почему? 'Expires' в заголовках ответа имеется, а Netscape в 'Page Info'
пишет 'Expires: 1 января 1970 г. 8:00:01'.
В реальной ситуации ответ генерится из базы, весьма небыстро.
Что нужно сказать, чтобы Netscape кэшировал ответ?
IE 4.0 нормально перерисовывает окно.
Евгений Гросбейн.
=============================================================================
= Apache-Talk@lists.lexa.ru mailing list =
Mail "unsubscribe apache-talk" to majordomo@lists.lexa.ru if you want to quit.
= Archive avaliable at http://www.lexa.ru/apache-talk =