12장 세션과 쿠키
- HTTP의 비연결지향이라는 특성 덕분에 서버 리소스 낭비를 줄일 수 있지만 매 통신마다 새로 커넥션을 만들어야 하는 불편함이 있다.
- 매 통신마다 클라이언트를 확인해야하는 불편함을 줄이고자 쿠키와 세션이 등장하였다.
쿠키
- 클라이언트에 로컬에 파일로 저장되는 키와 값이 들어있는 데이터파일
- 서버에 접속을 하고 끊을 때 클라이언트에 로컬에 쿠키를 남긴다.
- 쿠키를 통해 클라이언트를 인식하고 클라이언트를 재인식하는 기존의 복잡한 과정을 생략한다.
- 클라이언트의 로컬에 저장되기 때문에 보안에는 취약하다.
- 유효 기간을 넉넉하게 주면 클라이언트가 따로 쿠키를 삭제하지 않는 한 브라우저가 종료되어도 오랫동안 인증이 유지된다.
세션
- 쿠키와 마찬가지로 클라이언트를 재인식하는 기존의 복잡 과정을 생략하기 위해 만들어졌다.
- 세션은 쿠키와 다르게 서버에 사용자 정보 파일을 저장하고 관리한다.
- 사용자 정보 파일을 서버에 저장하기 때문에 쿠키보다 보안에 좋다.
- 사용자가 많아질 수록 서버 메모리를 많이 차지하게 된다.
- 서버에서 클라이언트를 위한 세션ID를 부여하고 브라우저를 종료할 때까지 인증 상태를 유지한다.
- 브라우저가 종료되면 세션ID가 지워져 인증이 끊기게 된다.
쿠키 생성
- 클라이언트가 서버로 처음 접근
- 서버에서 응답받음
- 쿠키생성
- 응답에 쿠키를 포함하여 전송
- 클라이언트가 서버로부터 응답받음
- 클라이언트가 응답에 실려온 쿠키를 저장
- 클라이언트가 서버로 접근(쿠키를 갖고있다)
- 서버가 요청에 담긴 쿠키를 읽는다.
- 쿠키정보를 읽어 클라이언트의 이전상태에 대해 정보를 읽을 수 잇다.
- 응답에 변경된 쿠키를 포함하여 전송
세션 생성
- 클라이언트가 서버로 처음 접근
- 서버가 각 클라이언트 브라우저에 세션 ID 부여
- 세션ID 서버에 저장
- 클라이언트에 ID 전달
- 클라이언트가 응답에 실려온 ID를 저장
- 클라이언트가 서버로 접근(ID를 갖고있다)
- 클라이언트가 가져온 ID가 서버가 갖고있는 ID정보와 동일한지 판단
- 변경사항 서버에 저장
'웹' 카테고리의 다른 글
마진상쇄 - 제작중... (0) | 2022.09.19 |
---|
댓글