기본 인증 방식이라고도 표현하며 인터넷 표준으로 이미 제정되어 있다. 요즘 브라우저 대부분 HTTP Basic 인증이 가능하도록 내장하고 있다.

<aside> 💡
주의 사항
그림을 보면 클라이언트가 서버에게 GET 방식으로 /home URL 로 요청을 하고 있으며 인증 받지 않은 상태에서 요청을 보내고 있고, 서버는 인증을 받지 않은 요청에 한해 접근을 거부한다 가정하자. 클라이언트가 인증 정보 없이 서버 접속을 시도 했을 시 서버는 차단 후 클라이언트에게 접근을 허가하지 않는다는 뜻으로 응답값을 401 Unauthorized 메세지와 WWW-Authenticate 헤더를 기술해 보안영역과 어떤 인증을 하라는 인증 방식인 Basic 인증방법을 보낸다.
보통 브라우저는 이 응답을 받으면 id 와 password 를 입력할 수 있는 프롬프트 창을 띄우게 된다. 이 상태에서 다시 서버에 로그인하게 될 것. 요청을 할 시 id 와 password 에 입력한 값을 base64 로 인코딩 한다. 그리고 Authorization : Basic /인코딩된 값 → 이라 적혀있는데 이 인코딩 된 값이 id 와 password 를 인코딩한 값이며 이렇게 다시 서버로 전송하는 것. 그러면 서버는 이 정보를 보고 기본 인증으로 인증을 위한 값이 들어왔음을 헤더를 보고 알 수 있다. 이후 성공적으로 되면 200 OK 반환. 이게 가장 기본적인 HTTP Basic 인증하는 과정이다.
이때 굉장히 중요한 주의사항이 있다.
인코딩한 값은 암호화된 값이 아니기에 디코딩이 가능하다. → 디코딩하면 인증정보 확인이 가능하다. 굉장히 위험하기에 이 상태로는 절대로 통신되면 안된다. HTTPS 보안 프로토콜과 같이 통신이 되어야 한다. 요즘은 HTTP Basic 으로 거의 사용하지 않지만 만약 한다 가정했을 시 이런 장치를 반드시 하고 통신 필요.
Spring Security 에서는 일단 HttpBasic 으로 기본 인증 할 수 있는 API 를 제공한다.
HttpBasicConfigurer 설정 클래스를 통해 여러 API들을 설정할 수 있다