[Web] 쿠키(cookie), 세션(session) 캐시(cache)의 정의
2022.07.01 - [IT 지식/Web] - [Web] HTTPS와 HTTP의 차이
이전 글에서 HTTP는 stateless 하다는 이야기를 했다. 이전에 접속한 것과는 별도로 HTTP가 통신을 한다는 이야기였는데, 일반적으로 홈페이지 안에서는 매번 페이지가 바뀔 때마다 로그인을 할 수는 없는 노릇이다. 또한 장바구니에 담아놓은 상품들이 없어지고 하는 등의 불편을 겪을 수 있다. 그래서 쿠기와 세션, 캐시가 사용되는 것이다.
1. 쿠키(cookie)
사용자의 브라우저에 저장되고, 통신할 때 HTTP 헤더에 포함되는 텍스트 파일이다. 이름, 값 만료기간, 경로 정보가 있고 키와 벨류로 구성이 되어 있다. 사용자의 컴퓨터를 사용한다면 누구나 쿠키에 입력된 값을 확인할 수 있다.
공용 컴퓨터를 사용할 때, 쿠키를 사용한 것을 보면 아이디 비밀번호도 열람을 할 수 있다(웹 사이트 로그인 자동완성).
보안성이 아주 낮다.
2. 세션(session)
'서버'에 저장되는 쿠키이다. 클라이언트와 서버의 통신 상태, 주로 중요한 데이터를 저장할 때 사용한다.
브라우저를 종료할 때까지 유지 된다.
사용자 로컬에 저장되는 것이 아니라 서버에 저장되기 때문에 세션 안의 데이터를 탈취하는 것은 힘들다.
쿠키에 저장되는 정보들과 세션에 저장되는 정보들을 조합하여 서비스를 제공할 수 있다.
한 번 로그인을 하고 나서 다른 페이지로 가도 계속 로그인이 되어 있는 이유는 쿠키와 세션의 조합을 통해서 그 페이지에 로그인해 있다는 것을 서버가 인지하고 있기 때문이다. 만약 쿠키를 지우고 새로고침을 누를 경우 로그인이 해제되는데, 이 이유는, 서버에서는 로그인을 해있다고 인식하지만, 그것이 내가 현재 접속해있는 컴퓨터라는 것을 증명할 세션 아이디가 사라졌기 때문이다.
++ 개발자는 세션과 쿠키에 각각 어떤 정보를 저장하고 활용할 지를 생각하여 배치하는 것도 굉장히 신경써야 한다.
3. 캐시(cache)
다시 방문이 예상되는 페이지의 소스 정보들을 임시 저장하는 것.
같은 웹 페이지에 접속할 때 사용자의 PC에서 리소스를 불러와서 창을 열어준다.
이전에 사용했던 데이터를 활용해서 더 빠르게 웹 페이지에 접속할 수 있게끔 해주는 장치이다.
'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 |
댓글