본문 바로가기
web/network

HTTP & 쿠키 & 세션

by su0a 2024. 3. 13.

서론

웹개발에 아주 기초인 HTTP, Cookie, Session 에 대해 정리하고자 글을 쓰게 되었다.

 

HTTP란?

  • HTTP는 인터넷 상에서 데이터를 주고 받기 위한 서버-클라이언트 모델을 따르는 프로토콜이다.
  • 클라이언트가 서버에게 요청을 보내면 서버는 응답을 보냄으로서 데이터를 교환한다.
  • HTTP는 비연결성(connectionless), 무상태성(stateless)라는 특징을 가지고 있다.
  • 위의 특징으로 인해 서버는 클라이언트에 대한 이전의 정보가 남아있지 않다. (ex. 클라이언트가 로그인을 한 경우에도 http의 stateless 성질로 인해 클라이언트는 또다시 로그인 해야함)

HTTP의 비연결성, 무상태성의 단점을 보완하고자 cookie / session 이 사용된다.

 

cookie란?

  • 서버가 사용자의 웹브라우저에 전송하는 작은 데이터 조각이다. 
  • 브라우저는 이 데이터 조각들을 저장해 놓았다가 동일한 서버에 요청을 보낼 경우 이 조각들을 함께 보낸다.
  • 사용자가 따로 요청하지 않아도 브라우저가 Request시에 Request Header에 쿠키를 넣어서 자동으로 서버에 전송한다.
  • 이를 이용함으로서 사용자는 로그인 상태를 유지할 수 있게된다.

 

 

session이란?

  • 인증 정보를 브라우저가 아닌 서버측에서 저장하고 관리하는 방식이다.
  • 서버에서 클라이언트를 구분하기 위해 세션 ID를 부여하여 웹 브라우저가 서버에 접속해서 브라우저를 종료할 때까지 인증상태를 유지한다.
  • 쿠키보다는 보안에 좋지만 사용자가 많아질수록 서버 메모리를 많이차지하여  서버의 부하가 심해진다.

 

쿠키 / 세션 비교

  쿠키(Cookie) 세션(Session)
저장 위치 클라이언트(=접속자 PC) 웹 서버
저장 형식 text Object
만료 시점 쿠키 저장시 설정
(브라우저가 종료되도, 만료시점이 지나지 않으면 자동삭제되지 않음)
브라우저 종료시 삭제
(기간 지정 가능)
사용하는 자원(리소스) 클라이언트 리소스 웹 서버 리소스
용량 제한 총 300개
하나의 도메인 당 20개
하나의 쿠키 당 4KB(=4096byte)
서버가 허용하는 한 용량제한 없음.
속도 세션보다 빠름 쿠키보다 느림
보안 세션보다 안좋음 쿠키보다 좋음

'web > network' 카테고리의 다른 글

JSP & Servlet  (0) 2024.03.18
Web Server, WAS, DB  (0) 2024.03.18
JWT 동작 방식 & JWT 보안  (0) 2024.03.13
JWT란? & JWT 사용이유  (0) 2024.03.13
content-type  (0) 2024.01.29