웹에서 쿠키와 세션이라는 단어는 자주 등장한다. 언뜻 보면 비슷해보이지만 둘은 확실히 다르다.
먼저 웹환경의 client <--> server 관계에서 client 가 request 를 보내면 server는 해당 request 에 대한 response를 보낸다.
client 는 response 를 받은 후에 server 와의 "연결"을 끊어버리는 특징이 있음
- 왜? 계속 유지하면 비용이 듦으로
- 하지만, 연결을 매번 끊으면 불편한 상황이 많이 초래될 수 있음
- ex) 네이버에서 사이트를 움직일 때 마다 로그인이 풀려서 매번 계속 로그인을 해야하는 귀찮은 상황 등등..
이러한 불편한 상황을 타개할 수 있는 것이 '쿠키'와 '세션'이다.
- 내가 브라우저를 통해 웹서핑을 하면 서버는 나에게 '나라는 것을 유추할 수 있는' 임시키(쿠키)를 발급해줌
- 나는 브라우저 로컬에 쿠키를 저장해놨다가 해당 웹사이트(서버)에 request 보낼 때마다 "쿠키"를 함께 보냄
- 서버에도 내 정보가 저장되어 있는데 이것이 "세션"
- 서버는 내가 보낸 쿠키 정보를 세션과 대조해서 나라는 것을 알아낼 수 있고, 나에게 맞는 정보를 response 로 줄 수 있음
쿠키 | 세션 |
-클라이언트 브라우저 로컬에 저장 | -서버측에서 관리 |
-도난당해도 크게 상관없는, 크게 안 중요한 정보들 | -회원정보 등등 나에 대한 중요한 정보를 보관함 |
-내가 가지고 있으므로 쉽게 변조 가능 | -어떤 정보를 쿠키/세션으로 나눌지는 서버에서 정함 |
사용 예시
- 네이버에서 로그인 정보가 계속 유지되는것
- 여러 웹사이트별로 자동 완성 비밀번호
- 쇼핑몰 광고사이트 "1일간 보지 않기" 등등
'JAVA 웹개발 - 코드프레소' 카테고리의 다른 글
TWIL 1 (3.15 - 3.22) (0) | 2022.03.15 |
---|---|
클라우드 컴퓨팅 첫 걸음 (0) | 2022.02.23 |
Spring Boot 웹 개발 초급 (0) | 2022.02.23 |
SQL 프로그래밍 입문 (0) | 2022.02.03 |
Spring Boot 웹 개발 입문 (0) | 2022.02.03 |