HTTP - 쿠키와 세션

이건희·2023년 8월 21일
0

쿠키와 세션에 대해서 많이 들어봤지만 대강 알지 정확히 알지 못하는 것 같다. 한번 자세히 쿠키와 세션은 무엇이고, 왜 사용하지 알아보자.

쿠키와 세션 사용 이유

우선 쿠키와 세션이 왜 사용되는지 알아보자. 쿠키와 세션 사용 이유는 HTTP 특성을 보면 알 수 있다.

우리가 잘 알듯이, HTTP는 다음과 같은 특성을 가진다.

1. Conectionless(비연결성)

  • 클라이언트가 요청을 하고 응답을 받으면 연결을 끊어 버리는 특징

2. Statelesss(무상태성)

  • 통신이 끝나면 그 상태를 유지하지 않는 특징

  • 상태 정보를 저장하지 않고 지워버린다.

이러한 두가지 특성에 의해 만약 웹 페이지에 로그인을 하더라도 상태를 저장하지 않고 연결을 끊어버리기 때문에 서버는 사용자가 로그인을 했는지 하지 않았는지 알 수 없게 된다.


쿠키란?

쿠키의 동작 방식에 대해서는 HTTP-헤더,쿠키,캐시에서 설명했으니 쿠키가 무엇인지만 설명하겠다.

쿠키는 웹 서버에서 보내 사용자 브라우저에 저장되는 작은 데이터 파일이다.

쿠키의 구성요소

  1. 이름(name) : 쿠키의 고유한 식별자로 사용되는 키다. 쿠키 이름은 서버의 쿠키 생성 로직에 따라 지정된다.

  2. 값(value) : 쿠키 이름과 연관된 값으로, 저장할 정보를 포함한다. 값은 일반적으로 암호화 되어 안전하게 전송된다.

  3. 만료일(Expires) / 최대 수명(max-age) : 만료일은 날짜를 지정하고, 최대 수명은 초단위로 지정한다. 만료일을 지정하지 않으면 웹 브라우저 종료 시 쿠키도 사라진다(세션 쿠키)

  4. 도메인(Domain) : 쿠키를 사용할 수 있는 도메인을 나타낸다. 도메인이 지정되지 않으면 쿠키를 생성한 웹 사이트의 도메인이 기본값을 사용된다.

  5. 경로(Path) : 쿠키가 사용되는 웹 사이트내 경로를 지정한다. 이 경로에 해당하는 웹 페이지에서만 쿠키가 유효하며, 경로 외부에 있는 페이지에 대해서는 접근할 수 없다.

  6. Secure : 쿠키는 기본적으로 http, https를 구분하지 않고 전송되는데, Secure를 적용하면 https인 경우에만 전송된다.

  7. SameSite : 요청 도메인과 쿠키에 설정된 도메인이 같은 경우에만 쿠키를 전송한다.


세션이란?

세션은 쿠키를 기반으로 하며, 서버에서 관리하는 사용자 데이터 파일이다.

동작 방식

  1. 사용자가 웹 사이트에 접속할 때, 서버는 사용자에게 고유 세션 ID를 생성한다.

  2. 생성된 세션 ID는 웹 브라우저에서 쿠키 형태로 저장된다. 이 쿠키에는 이름, 값, 도메인, 경로 등의 정보가 포함된다.

  3. 웹 서버는 해당 세션 ID와 연결된 데이터를 서버 상의 세션 저장소(메모리, 데이터베이스) 등에 저장한다.

  4. 사용자가 웹 사이트 내에서 다른 페이지에 이동하거나 추가 요청을 할 때, 브라우저는 모든 HTTP 요청과 함께 저장된 세션 쿠키를 웹 서버에 전달한다. 웹 서버는 전달 받은 쿠키 정보를 이용해 사용자의 상태와 정보를 유지한다.

  5. 웹 브라우저를 종료하거나 웹 서비스에서 로그아웃 하는 경우, 세션 ID와 서버 상 세션 정보가 소멸된다. 이때 다시 웹 사이트를 방문하면 새로운 세션 ID가 생성된다.


쿠키와 세션의 차이점

언뜻 보면 쿠키와 세션은 비슷해 보인다. 하지만 이 둘에는 크나큰 차이가 있다. 어떤 차이가 있는지 알아보자.

1. 저장 위치 : 쿠키는 브라우저에 저장되고, 세션은 서버 측에 저장된다.

2. 데이터 보안 : 세션은 서버에서 관리하기 때문에, 보안적으로 더 안전하다.

3. 유지 기간 : 쿠키는 만료일이 지나도 파일로 저장되어 브라우저 종료에도 계속해서 정보가 남아 있을수도 있지만, 세션은 브라우저 종료 시 만료 시간에 상관 없이 소멸된다.

4. 처리 시간 : 쿠키가 세션보다 요청 속도가 빠르다. 왜냐하면 세션은 서버에서 별도의 처리가 필요하기 때문이다.

profile
광운대학교 정보융합학부 학생입니다.

0개의 댓글