상세 컨텐츠

본문 제목

나를 위한 글(5): 기초적이지만 필수 개념인 세션, 쿠키에 대해.araboja

Web&APP

by 배고픈푸 2020. 3. 18. 18:20

본문

 

에이전시에서 웹기획 일을 하면서 매번 반복해서 듣는 용어가 있었습니다.

API, CRUD, 화면기획서, 그리고 세션과 쿠키.

원래 저는 웹프로토콜 방식이나 HTML에 관심이 있었기에 대충 어떤 의미인지 알고는 있어 따로 학습하려 하지 않았지만, 웹기획을 처음 시작하고 서버단에 대한 관심이 없는 분들에게는 생소한 이 단어에 대해 알아보려합니다.

 

세션과 쿠키가 무엇인지 설명하기에 앞서 HTTP의 특징에 대해 알아야 이해가 쉽습니다.

그래야 왜 세션과 쿠키를 사용해야 하는지에 대해 알 수 있기 때문이죠.

 


HTTP의 특징

 

1. 비연결지향성

기본적으로 HTTP 프로토콜에는 클라이언트와 서버를 얘기하지 않을 수 없습니다. 

간단히 말해 클라이언트는 여러분의 웹브라우저가 될 것이고, 서버는 사이트의 서버를 의미합니다.

우리가 어떤 사이트에 접속할 때 클라이언트(웹브라우저)는 서버에

"너네 사이트에 대한 정보를 내놔!"라고 '요청'을 합니다.

그 '요청'을 받은 서버는 클라이언트에게 '응답'을 하게 되고 우리는 비로서 완성된 하나의 사이트를 볼 수 있는거죠.

 

이렇게 '요청'하고 '응답'받는 과정은 한 번 이뤄지고 나면 끝나는 것이 HTTP의 첫 번째 특징입니다. 

 

2. 정보 미유지성

이렇게 서버와의 연결이 끊기는 순간, '요청'과 '응답'했을 때의 상태 정보들을 유지하지 않는 것이 HTTP의 두 번째 특징입니다.

 

이렇게 매번 하나의 '요청'과 '응답'의 과정을 거치고 나면 연결을 끊어버리고, 정보를 유지하지 않기 때문에

사이트를 방문할 때마다 내가 누구인지 인증하는 절차를 거쳐야 합니다.

아무나 집에 들일 수 없기 때문이죠.

그런데 이렇게 되면 사용자 입장에서는 매우 불편해질 수 밖에 없습니다. 

사이트의 페이지를 이동할 때마다 매번 로그인을 해야한다고 생각해보세요. 끔찍합니다.

 

이런 의미로 여기서 세션과 쿠키가 필요해지게 됩니다.

 


 

쿠키는 먹는건가?

여러분이 사이트를 방문할 경우,
그 사이트 정보를 담고 있는 서버에서 사용자의 컴퓨터에 저장하는 작은 기록 정보 파일 을 쿠키라고 합니다.

HTTP(서버)에서 클라이언트의 정보를 클라이언트의 PC에 저장하였다가 필요할 때마다 정보를 참조하고 재사용합니다.

 

1. 쿠키의 동작 순서

  • 사용자가 사이트에 접속합니다(페이지 정보를 요청)
  • 서버는 쿠키를 생성합니다.
  • 생성한 쿠키에 정보를 담아 화면을 전달할 때, 클라이언트에게 돌려준다.
  • 넘겨 받은 쿠키는 클라이언트가 가지고 있다가 페이지를 이동하는 등과 같이 다시 서버에 요청할 때 쿠키를 전송합니다. 
  • 동일 사이트 재방문시 클라이언트의 PC에 해당 쿠키가 있는 경우, 요청 페이지와 함께 쿠키를 전송합니다. 

 

2. 쿠키의 제약 조건

  • 클라이언트에 총 300개 까지 쿠키 저장가능
  • 하나의 도메인 당 20개의 쿠키값만을 가질 수 있음
  • 하나의 쿠키 값은 4096Byte까지 저장 가능

 

3. 쿠키가 사용되는 예시

  • 방문했던 사이트에 다시 방문 하였을 때 아이디와 비밀번호 자동 입력되는 것
  • 팝업창을 통해 "오늘 이 창을 다시 보지 않기" 체크
  • 페이지를 이동해도 새로 로그인을 하지 않아도 되는 것

 

세션은?

일정 시간동안 같은 사용자(브라우저)로부터 들어오는 일련의 요구를 하나의 상태로 보고, 그 상태를 일정하게 유지시키는 기술입니다. 

여기서 일정 시간은 방문자가 웹 브라우저를 통해 서버에 접속한 시점으로부터 브라우저를 종료하여 연결을 끝내는 시점을 말합니다. 즉, 방문자가 서버에 접속해 있는 상태를 하나의 단위로 보고 그것을 세션이라고 합니다.

 

1. 세션 사용 예시

  • 화면이 이동해도 로그인이 풀리지 않고 로그아웃하기 전까지 유지되는 것

쿠키 vs 세션, 뭔 차이여?

 

1. 저장 위치

      • 쿠키 = 클라이언트
      • 세션 = 서버

 

2. 보안

      • 쿠키 = 사용자 로컬에 저장되므로 해커로부터 위험해 보안에 취약함
      • 세션 = 특정 ID 값으로 구분해서 처리하기 때문에 쿠키보다는 좋음

 

3. 삭제 여부

      • 쿠키 = 만료 시간이 끝날 때까지 또는 삭제할 때까지 남아 있음
      • 세션 = 브라우저가 종료되면 삭제

 

4. 속도

      • 쿠키 = 클라이언트에 저장되어 있기 때문에 속도가 빠름
      • 세션 = 서버에 매번 요청하고 인증받아야 하므로 쿠키보다 느림

 

 

관련글 더보기

댓글 영역