HTTP 프로토콜에서 Authorization 헤더는 클라이언트가 서버에 인증 정보를 전달하는 표준 필드다.
💡 인증이 아니라 왜 인가 헤더라고 부를까?
<aside>
HTTP에서 Authorization 헤더는 원래부터 인증 정보(자격 증명)를 담는 헤더 이름이다. 우리가 보안 개념에서 말하는 인가(Authorization = 권한 판정) 와 단어는 같지만, HTTP 스펙에서는 “이 자격 증명을 가진 요청을 허용할 수 있느냐”는 넓은 의미로 이름이 붙어 있어서, 오늘날 쓰는 엄밀한 “인증/인가” 구분과는 용어만 살짝 어긋나는 것이다.
</aside>
인증 스킴이란?
*Authorization: <스킴> <credentials>
Authorization: Bearer <JWT 문자열>
스킴 예: Baisc, Bearer, Digest
어떤 스템을 쓰느냐에 따라 <credentials>를 어떻게 해석할 지 규칙이 달라진다.
즉, 스킴이란 이 뒤에 오는 문자열을 어떤 인증 규칙으로 해석할 지 알려주는 것.*
Basic. base64 인코딩된 문자열
Bearer. 토큰 문자열(JWT일 수도 있고, 랜덤 토큰일 수도 있음) → JWT 전용 ❌