인증 (Authentication) : 사용자의 신원을 확인
인가 (Authorization) : 사용자의 권한을 확인
사진 처럼 HTTP 웹 브라우저는 상태를 저장하지 않는다. 그래서 첫번째 요청을 보내고, 서버에서 이 첫번째 요청에 대한 응답이 오고나면 둘의 관계는 끊기게 된다. 그래서 같은 사용자가 같은 웹브라우저를 통해서 요청을 보내게되면, 서버에서는 같은 사용자에 의한 요청인지 알 수 없다.
그래서 HTTP에서 상태 정보를 유지하기 위해서는 쿠기와 세션이 필요하다.
클라이언트에 저장될 목적으로 생성한 작은 정보를 담은 파일로 볼 수 있다.
세션은 서버에서 일정시간 동안 클라이언트 상태를 유지하기 위해 사용하는 것이다.
동작원리를 보면
1. 클라이언트가 로그인하여서버에 요청을 한다.
2. 서버에서 인증과정을 거쳐, 인증이 완료되면 사용자에 대한 세션ID를 생성하고, 응답 헤더에 전달한다.
3. 웹 브라우저가 응답받은 세션을 쿠키에 저장한다.
4. 클라이언트가 다음 요청에는 쿠키값에 들어있는 세션ID를 포함해서 요청을 보낸다.
5. 웹 서버에서는 세션ID를 보고, 같은 사용자임을 파악하고 그에 맞는 처리를 할 수있게 된다.