2013-04-18 2 views
1

В чем причина того, что мы не можем использовать кнопку «Назад в браузере» при отправке страницы с помощью HTTP POST? Но это нормально с HTTP GET? Я прочитал, что браузер пытается предотвратить несколько POSTS (чтобы избежать нескольких обновлений для сервера), потому что он не может отличить BACK и RELOAD от браузера? Как браузер не может указывать между BACK и RELOAD?Почему кнопка «Назад» не работает с HTTP POST?

ответ

3

Назад не является специальным запросом, который отправляется на сервер. Назад просто переместится на предыдущую страницу, так же, как если бы вы только что ввели URL-адрес в навигационной панели и нажали кнопку go. Это действительно то же самое, что и перезагрузка, которая совпадает с базовым запросом страницы с точки зрения сервера. Они все просто GET-запросы.

Когда вы нажимаете на страницу, использующую сообщение, она отправляет сообщение, а не получает. Как правило, браузеры защищают от этого («Вы уверены, что хотите вернуться назад? Браузер отправит ранее отправленную информацию»).

Причина, по которой он не перезагружает сообщения, как это происходит, потому что, как вы сказали, он не хочет повторно отправлять информацию, используемую для получения этой страницы на сервер, потому что она будет дважды публиковать что-либо или удваивать покупку что нибудь.