junior
В чем разница между методами GET и POST
GET и POST — два основных HTTP-метода, принципиально различающихся по семантике, способу передачи данных и безопасности.
| Критерий | GET | POST |
|---|---|---|
| Передача данных | В URL (query string) | В теле запроса |
| Ограничение размера | ~2-8 КБ (длина URL) | Настраивается сервером (~2-10 МБ) |
| Кэширование | Кэшируется браузером и прокси | Не кэшируется |
| Безопасность данных | Параметры видны в URL, логах, истории | Данные скрыты в теле запроса |
| Идемпотентность | Да | Нет |
| Закладки | Можно сохранить URL с параметрами | Нельзя сохранить параметры из тела |
| Повторная отправка | Безопасно повторить | Браузер предупреждает о повторной отправке |
Практическое правило: GET — для получения данных (поиск, фильтрация, навигация), POST — для изменения данных (создание записей, отправка форм, загрузка файлов). Для API вместо GET/POST для обновления и удаления лучше использовать PUT/PATCH/DELETE согласно REST-конвенциям.
На собеседовании: не говорите, что POST «безопаснее» GET — оба передают данные по HTTP в открытом виде. POST лишь скрывает данные из URL. Реальная безопасность обеспечивается HTTPS.