<aside>
💡 Cookie와 Session, 주소 체계
</aside>
Cookie와 Session
-
HTTP 프로토콜의 특징
- 비연결 지향(Connectionless)
- 클라이언트가 request를 서버에 보내고, 서버가 클라이언트에 요청에 맞는 response를 보내면 바로 연결을 끊는다.
- 상태정보 유지 안 함(Stateless)
- 연결을 끊는 순간 클라이언트와 서버의 통신은 끝나며 상태 정보를 유지하지 않는다.
-
쿠키와 세션의 필요성
HTTP 프로토콜은 위와 같은 특징으로 모든 요청 간 의존관계가 없다.즉, 현재 접속한 사용자가 이전에 접속했던 사용자와 같은 사용자인지 아닌지 알 수 있는 방법이 없다.계속해서 연결을 유지하지 않기 때문에 리소스 낭비가 줄어드는 것이 큰 장점이지만, 통신할 때마다 새로 연결하기 때문에 클라이언트는 매 요청마다 인증을 해야 한다는 단점이 있다.이전 요청과 현재 요청이 같은 사용자의 요청인지 알기 위해서는 상태를 유지해야 한다.HTTP 프로토콜에서 상태를 유지하기 위한 기술로 쿠키와 세션이 있다.
Cookie란??
- 개념
- 클라이언트 로컬에 저장되는 키와 값이 들어있는 파일이다.이름, 값, 유효 시간, 경로 등을 포함하고 있다.클라이언트의 상태 정보를 브라우저에 저장하여 참조한다.
- 구성 요소
- 쿠키의 이름(name)
- 쿠키의 값(value)
- 쿠키의 만료시간(Expires)
- 쿠키를 전송할 도메인 이름(Domain)
- 쿠키를 전송할 경로(Path)
- 보안 연결 여부(Secure)
- HttpOnly 여부(HttpOnly)
Session이란??
일정 시간 동안 같은 브라우저로부터 들어오는 요청을 하나의 상태로 보고 그 상태를 유지하는 기술!
→ 웹 브라우저를 통해 서버에 접속한 이후부터 브라우저를 종료할 때까지 유지되는 상태
사용 예시 : 로그인
쿠키와 세션의 차이점
- 저장 위치
- 쿠키 : 클라이언트
- 세션 : 서버
- 보안
- 쿠키 : 클라에 저장돼 보안에 취약
- 세션 : 쿠키를 이용해 세션 아이디만 저장하고 이 값으로 구분해 서버에서 처리 → 쿠키보다 비교적 안전