본문 바로가기
Web

[Web] 쿠키(cookie), 세션(session) 캐시(cache)의 정의

by DuncanKim 2022. 7. 2.
728x90

[Web] 쿠키(cookie), 세션(session) 캐시(cache)의 정의

 

 

2022.07.01 - [IT 지식/Web] - [Web] HTTPS와 HTTP의 차이

이전 글에서 HTTP는 stateless 하다는 이야기를 했다. 이전에 접속한 것과는 별도로 HTTP가 통신을 한다는 이야기였는데, 일반적으로 홈페이지 안에서는 매번 페이지가 바뀔 때마다 로그인을 할 수는 없는 노릇이다. 또한 장바구니에 담아놓은 상품들이 없어지고 하는 등의 불편을 겪을 수 있다. 그래서 쿠기와 세션, 캐시가 사용되는 것이다.

 

 

1. 쿠키(cookie)

 

사용자의 브라우저에 저장되고, 통신할 때 HTTP 헤더에 포함되는 텍스트 파일이다. 이름, 값 만료기간, 경로 정보가 있고 키와 벨류로 구성이 되어 있다. 사용자의 컴퓨터를 사용한다면 누구나 쿠키에 입력된 값을 확인할 수 있다.

공용 컴퓨터를 사용할 때, 쿠키를 사용한 것을 보면 아이디 비밀번호도 열람을 할 수 있다(웹 사이트 로그인 자동완성).

보안성이 아주 낮다.

 

 

2. 세션(session)

 

'서버'에 저장되는 쿠키이다. 클라이언트와 서버의 통신 상태, 주로 중요한 데이터를 저장할 때 사용한다.

브라우저를 종료할 때까지 유지 된다.

사용자 로컬에 저장되는 것이 아니라 서버에 저장되기 때문에 세션 안의 데이터를 탈취하는 것은 힘들다.

 

쿠키에 저장되는 정보들과 세션에 저장되는 정보들을 조합하여 서비스를 제공할 수 있다.

한 번 로그인을 하고 나서 다른 페이지로 가도 계속 로그인이 되어 있는 이유는 쿠키와 세션의 조합을 통해서 그 페이지에 로그인해 있다는 것을 서버가 인지하고 있기 때문이다. 만약 쿠키를 지우고 새로고침을 누를 경우 로그인이 해제되는데, 이 이유는, 서버에서는 로그인을 해있다고 인식하지만, 그것이 내가 현재 접속해있는 컴퓨터라는 것을 증명할 세션 아이디가 사라졌기 때문이다.

 

++ 개발자는 세션과 쿠키에 각각 어떤 정보를 저장하고 활용할 지를 생각하여 배치하는 것도 굉장히 신경써야 한다.

 

 

 

3. 캐시(cache)

 

다시 방문이 예상되는 페이지의 소스 정보들을 임시 저장하는 것.

같은 웹 페이지에 접속할 때 사용자의 PC에서 리소스를 불러와서 창을 열어준다.

이전에 사용했던 데이터를 활용해서 더 빠르게 웹 페이지에 접속할 수 있게끔 해주는 장치이다.

 

728x90

'Web' 카테고리의 다른 글

[JavaScript] Scope란 무엇인가?  (0) 2022.07.03
[Web] 암호화 해시함수에 대한 이해  (0) 2022.07.02
[Web] HTTPS와 HTTP의 차이  (0) 2022.07.01
[Java] Error와 Exception, 예외 처리  (0) 2022.06.29
[Java] 인터페이스의 다형성  (0) 2022.06.28

댓글