GET предназначен для безопасного получения представления, POST — для обработки переданных данных; технически сервер может изменить данные на GET, но это нарушает ожидаемую семантику.
Чем отличаются HTTP GET и POST-запросы? Можно ли технически изменить данные на сервере в ответ на GET?
GET предназначен для безопасного получения представления, POST — для обработки переданных данных; технически сервер может изменить данные на GET, но это нарушает ожидаемую семантику.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
GET предназначен для безопасного получения представления, POST — для обработки переданных данных; технически сервер может изменить данные на GET, но это нарушает ожидаемую семантику.
Изменяющие действия по GET опасны: ссылку могут открыть prefetch, crawler или пользователь повторно. «Безопасный» не исключает служебное логирование, но исключает запрошенную пользователем мутацию. Метод сам по себе не шифрует данные: для защиты транспорта нужен HTTPS.