Какой HTTP-метод следует использовать для передачи учетных данных при аутентификации?

«Какой HTTP-метод следует использовать для передачи учетных данных при аутентификации?» — вопрос из категории Сети, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для передачи учетных данных (например, логина и пароля) в REST API следует использовать метод POST.

Почему POST, а не GET?

  • Безопасность: Параметры GET передаются в URL, что может попасть в логи сервера, историю браузера и менее безопасно.
  • Семантика: POST предназначен для операций, которые могут изменить состояние сервера (создание сессии) и для передачи данных в теле запроса.
  • Ограничения: Длина URL ограничена, в то время как тело POST-запроса может быть больше.

Пример запроса:

POST /api/login HTTP/1.1
Content-Type: application/json

{
  "username": "user@example.com",
  "password": "your_password"
}

Важно: Всегда используйте защищенное соединение (HTTPS) для передачи учетных данных.