GET (и несколько других методов) определены как «SAFE» в спецификации http ( RFC 2616 ):
9.1.1 Безопасные методы
Разработчики должны знать, что программное обеспечение представляет пользователя в их взаимодействиях через Интернет, и должны быть осторожны, чтобы позволить пользователю быть в курсе любых действий, которые он может предпринять, которые могут иметь неожиданное значение для них или других.
В частности, было установлено, что методы GET и HEAD НЕ ДОЛЖНЫ иметь значение выполнения действия, отличного от извлечения. Эти методы следует считать «безопасными». Это позволяет пользовательским агентам представлять другие методы, такие как POST, PUT и DELETE, особым образом, чтобы пользователь знал о том, что запрашивается небезопасное действие.
Естественно, невозможно гарантировать, что сервер не генерирует побочные эффекты в результате выполнения запроса GET; на самом деле, некоторые динамические ресурсы считают, что это особенность. Важным отличием здесь является то, что пользователь не запрашивал побочные эффекты, поэтому не может нести за них ответственность.
Это означает, что запрос GET никогда не должен иметь каких-либо серьезных последствий для пользователя, кроме того, что он видит то, что может не захотеть видеть, но запрос POST может изменить ресурс, который важен для него или для других людей.
Хотя это изменилось в JavaScript, традиционно существовали разные пользовательские интерфейсы - пользователи могли инициировать GET-запросы, щелкая ссылки, но для заполнения POST-запроса приходилось заполнять форму. Я думаю, что разработчики HTTP стремились поддерживать различие между безопасными и небезопасными методами.
Я также не думаю, что когда-либо нужно будет перенаправлять на POST. Любое действие, которое необходимо выполнить, можно предположительно выполнить, вызвав функцию в коде на стороне сервера, или, если это должно произойти на другом сервере, вместо того, чтобы отправлять перенаправление, содержащее URL-адрес браузера для POST, на сервер. может сделать запрос к самому серверу, действуя как прокси для пользователя.