Eugene Grosbein
2004-11-25 15:03:17 UTC
Привет!
Странное отличие работы MSIE и Netscape.
Есть CGI, работает под Apache, доступ к которому ограничен
через Basic HTTP Authorization, в результате чего пользователью
перед входом на URL браузер выдает запрос имени и пароля,
все стандартно.
В HTML, выводимом этим CGI есть одна кнопочка (с тем же action, что
наш URL), при нажатии на которую происходит submit методом POST формы,
состоящей из этой одной кнопочки. В ответ сервер выдает:
HTTP/1.1 401 Authorization Required
Expires: Thu, 01 Jan 1970 07:00:00 GMT
WWW-Authenticate: Basic realm="PasswordProtection"
После чего браузер запрашивает имя и пароль у пользователя повторно
и снова делает тот же submit формы. CGI видит повторную авторизацию
и отвечает:
Content-Type: text/html\n
Expires: Thu, 01 Jan 1970 07:00:00 GMT
Pragma: no-cache
Cache-Control: no-cache
<html><head><meta http-equiv="Refresh" content="0; URL=..."></head></html>
URL все тот же.
До сих пор и Netscape, и MSIE работают одинаково и пользователь
имеет возможность, таким образом, перелогиниться и зайти с другого
аккаунта. Однако, Refresh они обрабатывают по-разному. Netscape,
как и положено, делает новый запрос уже с новым логином, а MSIE показывает
зашированную страницу со старыми данными.
Это лечится? Использовать cookies не предлагать.
Eugene
Странное отличие работы MSIE и Netscape.
Есть CGI, работает под Apache, доступ к которому ограничен
через Basic HTTP Authorization, в результате чего пользователью
перед входом на URL браузер выдает запрос имени и пароля,
все стандартно.
В HTML, выводимом этим CGI есть одна кнопочка (с тем же action, что
наш URL), при нажатии на которую происходит submit методом POST формы,
состоящей из этой одной кнопочки. В ответ сервер выдает:
HTTP/1.1 401 Authorization Required
Expires: Thu, 01 Jan 1970 07:00:00 GMT
WWW-Authenticate: Basic realm="PasswordProtection"
После чего браузер запрашивает имя и пароль у пользователя повторно
и снова делает тот же submit формы. CGI видит повторную авторизацию
и отвечает:
Content-Type: text/html\n
Expires: Thu, 01 Jan 1970 07:00:00 GMT
Pragma: no-cache
Cache-Control: no-cache
<html><head><meta http-equiv="Refresh" content="0; URL=..."></head></html>
URL все тот же.
До сих пор и Netscape, и MSIE работают одинаково и пользователь
имеет возможность, таким образом, перелогиниться и зайти с другого
аккаунта. Однако, Refresh они обрабатывают по-разному. Netscape,
как и положено, делает новый запрос уже с новым логином, а MSIE показывает
зашированную страницу со старыми данными.
Это лечится? Использовать cookies не предлагать.
Eugene