쿠키 헤더의 속성

JunYoung·2023년 7월 23일
0
post-thumbnail

시작하기 전에 HTTP에 대해서 간략히 설명해보면 HTTP는 HyperText Transfer Protocol의 약자로 웹 상에서 데이터를 주고받기 위한 프로토콜(규정)이다.

HTTP는 클라이언트가 요청을 보내고 응답을 받으면 연결을 끊어버리는 특징(비연결성)과, 연결을 끊는 순간 상태 정보를 유지하지 않는 특징(비상태성)이 있다.

예를 들어 상태 정보가 유지되지 않으면 로그인 후 페이지를 이동할 때마다 로그인을 다시 해야하는 일이 발생할 수 있다. 따라서 이를 보완하기 위해 쿠키를 사용한다.

쿠키란 무엇인가?

"쿠키(Cookie)는 웹 사이트에서 사용자의 컴퓨터나 기기에 저장되는 작은 데이터 조각이다."

쿠키는 name=value형식의 문자열 데이터 묶음이다. 이 데이터 조각은 웹 브라우저를 통해 서버로부터 전송되고, 웹 사이트가 사용자를 식별하고 상태 정보를 기억하는데 사용된다.

쿠키는 웹 사이트에서 서버로 요청(Request)과 응답(Response)이 이루어질 때 HTTP 헤더를 통해 생성, 저장, 전송되며, 사용자의 컴퓨터나 기기에 로컬로 저장된다.
그 후 해당 웹 사이트를 재방문할 때마다 웹 브라우저는 저장된 쿠키를 서버로 다시 전송하여 사용자를 식별하거나 이전 상태 정보를 가져올 수 있다.

HTTP 헤더(HTTP Header)와 쿠키 헤더(Cookie Header)

HTTP 헤더는 서버와 클라이언트 간의 HTTP 요청과 응답 메세지에 다양한 정보가 포함된다.
Host(요청자의 호스트명, 포트번호), User-Agent(요청자의 소프트웨어 정보), Accept(요청자가 원하는 미디어의 타입 우선순위), cookie(서버에 의해서 이전에 저장된 쿠키를 포함시키는 속성) 등 매우 많은 속성 정보를 가지고있다.

쿠키 헤더는 웹 브라우저와 웹 서버 간에 쿠키 정보를 전달되는데 사용되는 특정 유형의 HTTP 헤더이다.

쿠키의 특징

장점

  • 세션 관리: 로그인 정보, 장바구니 내역과 같은 사용자 상태를 유지한다. 세션 쿠키는 사용자가 웹 사이트를 떠나면 브라우저에서 삭제된다.
  • 개인화: 사용자의 선호 설정을 기억한다. 예를 들어 사용자가 언어 설정을 한국어로 선택한 경우, 다음 방문 때도 이 설정을 유지한다.
  • 추적 및 분석: 웹 사이트 사용 패턴을 추적하여 통계 및 분석에 활용한다. 이를 통해 웹 사이트의 효율성을 높이는 데 도움이 된다.
  • 티켓 광고: 사용자의 관심사에 맞는 광고를 표시하는 데 사용된다.

단점

  • 보안 위협: 쿠키는 클라이언트 측에 저장되기 때문에 보안에 취약할 수 있다.
  • 개인 정보 보호 문제: 일부 사용자들은 쿠키 사용에 동의하지 않을 수 있다.
  • 용량 제한: 쿠키는 브라우저에 저장되는 용량에 제한을 받는다. 너무 많은 쿠키가 브라우저에 저장되면 성능에 영향을 미칠 수 있다.

쿠키와 세션

세션은 웹의 상태 정보를 클라이언트가 아닌 서버에 저장하기 때문에 쿠키보다 보안적으로 안전하다고 볼 수 있다. 노출되면 안되는 정보들은 세션으로 서비스 제공자가 직접 관리하는 것이 좋다.
하지만 너무 많으면 서버에 부담이 갈 수 있다.

쿠키는 사용자의 편의를 위한 것이고, 클라이언트 측에 저장되기 때문에 서버에 부하를 덜 주고 효율적으로 관리할 수 있다.

따라서 일반적으로 민감한 정보를 다룰 때는 세션을 사용하고, 사용자 설정과 같은 간단한 정보를 저장하고 싶을 때는 쿠키를 사용한다.

쿠키 헤더란 무엇인가?

쿠키 헤더는 위에서도 잠깐 나왔지만 한번 더 적어보면 HTTP 요청이나 응답에서 사용되는 헤더 중 하나이며, 웹 브라우저는 쿠키 헤더를 사용하여 쿠키를 서버로 전송하고, 서버는 쿠키를 클라이언트에게 설정하거나 수정하는 데 활용한다.

쿠키 요청 헤더(Cookie Request Header)

쿠키 요청 헤더는 클라이언트(웹 브라우저)가 웹 서버에게 요청을 보낼 때, 이전에 서버로부터 받았던 쿠키들을 함께 전송하기 위해 사용된다.

Cookie: 키=값; 키=값; ...

위의 코드와 같이 Cookie 속성은 클라이언트가 이전에 받았던 쿠키들을 전송하는 데 사용된다. 여러 개의 쿠키가 있을 경우 세미콜론으로 구분하여 하나의 문자열로 표현한다.

쿠키 응답 헤더는 웹 서버가 클라이언트에게 쿠키를 설정하거나 수정하라고 명령하는 응답 헤더이다.

F12 -> Application -> Cookies를 통해 현재 적용되는 속성을 볼 수 있다.

서버는 HTTP 응답 헤더에 Set-Cookie 헤더를 포함하여 클라이언트에게 쿠키를 전송한다. 응답 헤더에서 주요한 속성들은 다음과 같다.

Set-Cookie:키=값;
  • Set-Cookie: 쿠키를 설정하거나 수정할 때 사용되는 주요 속성이다. 쿠키의 이름과 값은 필수로 설정되어야 하며, 다양한 옵션들을 선택적으로 설정할 수 있다.
  • name=value: 쿠키의 이름과 값이며, 서버에서 클라이언트로 전송되어 저장된다.
  • expires=data: 쿠키의 만료일을 설정한다. 해당 일자가 지나면 쿠키가 삭제된다.
  • domain=domainName:쿠키가 유효한 도메인을 설정한다. 해당 도메인과 서브 도메인에서만 쿠키가 전송된다.
  • path=pathName: 쿠키가 유효한 URL경로를 설정한다. 지정된 경로와 하위 경로에서만 쿠키가 전송된다.
  • secure: 이 속성이 설정된 경우, 쿠키는 HTTPS 연결을 통해서만 전송된다. 보안 연결이 아닌 HTTP에서는 쿠키를 전송하지 않는다.
  • httponly: 자바스크립트를 통해 쿠키에 접근하는 것이 제한된다. 쿠키를 훔치는 등의 공격을 방지할 수 있다.

등 다양한 속성들이 존재한다.

이러한 속성들을 적절하게 설정하여 쿠키를 보안적으로 안전하게 사용하고, 사용자와 서버 간의 상태를 유지하며 사용자 경험을 개선하는 데 활용할 수 있다.
보안 요건에 맞게 쿠키의 속성을 설정하는 것이 중요하다.

0개의 댓글

관련 채용 정보