В какой части HTTP запроса будешь передавать логин и пароль

«В какой части HTTP запроса будешь передавать логин и пароль» — вопрос из категории Сети, который задают на 24% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для передачи логин-пароля в HTTP-запросе обычно используют:

  1. Headers (Basic Auth):
val credentials = "login:password".toByteArray().base64()
val authHeader = "Basic $credentials"
request.addHeader("Authorization", authHeader)
  1. Body (POST-запрос):
{
  "username": "login",
  "password": "password"
}
  1. Query params (не рекомендуется из-за безопасности):
https://api.com/login?user=login&pass=password

Лучший вариант - HTTPS POST с данными в теле запроса. Basic Auth в headers тоже допустим, но требует кодирования base64. Никогда не передавайте пароли открытым текстом в URL!