Strony POST „wygasają” przez pomylenie Cache z Historią
Dokument KB na stronach Microsoftu utrzymuje, że IE odróżnia historię od cache, choć na tej samej stronie podany jest sposób w jaki nagłówkami cache wymusić odświeżenie historii.
Internet Explorer, wbrew zaleceniom specyfikacji HTTP (RFC2616/13.13) używa cache do wyświetlania historii stron.
Cofanie się w historii (przycisk "Wstecz") powinno być całkowicie nieczułe na wygasanie cache i mimo wszystko pokazywać stronę, którą użytkownik wcześniej załadował.
W Internet Explorerze możliwe jest wymuszenie odświeżenia „archiwalnych” stron w historii, a na dodatek formularze wysłane metodą POST blokują cofanie lub wymuszają wielokrotne wysłanie formularza:
Uwaga: Strona wygasła. Żądana strona została utworzona przy wykorzystaniu informacji przesłanych w formularzu. Strona nie jest dostępna. Ze wzglądów bezpieczeństwa, na wszelki wypadek, program Internet Explorer nie przesyła ponownie informacji. Aby ponownie przesłać informacje i ponownie oglądać stronę sieci Web, kliknij przycisk Odśwież.
Rozwiązanie
W odpowiedzi na każdy formularz wysłany metodą POST wysyłać przekierowanie ze statusem 303 See Other.
Po przekierowaniu dane z formularza przestaną być dostępne dla skryptu. Jeśli są niezbędne na docelowej stronie (np. do ponownego wygenerowania formularza, jeśli zawierał błędy), niestety niezbędne będzie chwilowe przechowanie danych po stronie serwera i użycie mechanizmu sesji lub unikalnego identyfikatora w adresie.
Zmodyfikowano: 16.10.2006, 12:39