반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 빈 타입 조회
- k번째큰수
- removeAll
- SOLID원칙
- 후위표기식
- 팩토리 패턴
- 리버스 프록시
- 자바의 면접
- 참조형 매개변수
- 쇠막대기
- 스프링 빈
- 팩토리패턴
- 네트워크
- 스프링
- www.naver.com치면 발생하는일
- 스프링 싱글톤
- 옵저버 패턴
- Class Loader
- 스프링 컨테이너
- mvvm패턴
- 포워드 프록시
- 참조형 반환타입
- 백준 2164
- try-catch
- @Tranctional
- 전략 패턴
- 기본형 매개변수
- 백준 1935
- TCP/IP 4계층
- 싱글톤 패턴
Archives
- Today
- Total
스파이더 웹 개발
쿠키(Cookie)와 세션(Session) 본문
728x90
반응형
HTTP 프로토콜의 특성이자 약점을 보완하기 위해 쿠키 또는 세션을 사용한다
HTTP의 특성인 비연결성과(Connectionless) , 무상태성(Stateless)의 특징을 가지고 있어, 서버는 클라이언트가 누군지 매번 확인해야한다. 이러한 특성을 보완하기 위해서 쿠키와 세션을 사용한다
무상태 프로토콜 – Stateless
서버가 클라이언트의 상태를 보존하지 않음
장점 : 서버 확장성 높음(스케일 아웃)
단점 : 클라이언트가 추가 데이터 전송
비 연결성 – Connectionless
HTTP는 기본이 연결을 유지하지 않는 모델
HTTP는 먼저 클라이언트가 request를 서버에 보내면, 서버는 클라이언트에게 요청에 맞는 response를 보내고 접속을 끊는 특성이 있다.
이러한 HTTP의 정보가 유지되지않는 특징에 대처하기 위해 쿠키와 세션을 사용한다
두가지의 가장 큰 차이는 정보의 저장 위치이며, 쿠키는 클라이언트에 저장하고, 세션은 서버에 저장한다
쿠키(Cookie)
쿠키란 HTTP 프로토콜을 사용하는 인터넷 사용자가 어떤 웹사이트를 방문할 경우, 사용자와 서버 사이의 연결을 확인하기 위한 정보이며, 쿠키가 클라이언트에 저장되며 쿠키를 통해 서버는 클라이언트를 특정할 수 있다
쿠키 특징
- 이름, 값, 만료일(저장기간), 경로 정보로 구성(유효일이 정해지면 브라우저가 종료되도 유지된다)
- 클라이언트에 총 300개의 쿠키를 저장할 수 있다
- 하나의 도메인 당 20개의 쿠키를 가질 수 있다
- 하나의 쿠키는 4KB까지 저장 가능하다
- Response Header에 Set-Cookie 속성을 사용하면 클라이언트에 쿠키를 만들 수 있다
- 쿠키는 사용자가 따로 요청하지 않아도 브라우저가 Request시에 Request Header를 넣어서 자동으로 서버에 전송한다
쿠키 동작과정
- 클라이언트가 서버에 연결 요청을 보낸다
- 서버는 이때 쿠키를 생성한다
- 그리고 쿠키와 함께 연결 응답 정보를 전송한다
- 클라이언트는 쿠키를 가지고 있다가 다시 서버에 요청할 때 요청과 함께 쿠키를 전송한다.
- 서버는 이때 쿠키를 확인하고 사용자가 누구인지 확인한 후 그에 따른 응답을 한다

쿠키 사용예
- 장바구니(쇼핑몰 장바구니)
- 아이디 저장(로그인시 아이디 저장 체크박스)
세션(Session)
세션은 쿠키를 기반하지만 사용자 정보를 클라이언트가 아닌 서버가 가지고 있다
서버는 클라이언트를 구분하기 위해 세션ID 를부여하며 웹 브라우저가 서버에 접속해서 브라우저를 종료할때 까지 인증상태를 유지한다
세션은 사용자 정보를 서버에서 관리하고 있기에 보안에 좋지만, 서버 메모리를 많이 차지한다
세션 특징
- 웹 서버의 저장된다
- 브라우저를 닫거나, 서버에서 세션을 삭제했을 때만 삭제가 되므로, 쿠키보다 비교적 보안이 좋다.
- 각 클라이언트에 고유 Session ID를 부여한다. Session ID로 클라이언트를 구분해 각 요구에 맞는 서비스를 제공
세션 동작과정
- 클라이언트가 서버에 접속시 서버는 세션ID를 생성한다
- 클라이언트는 세션ID에 대해 쿠키를 사용해서 저장하고 가지고 있는다
- 클라이언트는 서버에 요청할 때, 쿠키의 세션 ID를 같이 서버에 전달 요청
- 서버는 세션 ID를 전달 받아서 별다른 작업없이 세션 ID로 세션에 있는 클라이언트 정보를 가져와서 사용
- 클라이언트 정보를 가지고 서버 요청을 처리하여 클라이언트에게 응답

세션 사용 예
- 로그인
728x90
반응형
'Study' 카테고리의 다른 글
동기 와 비동기의 개념 (0) | 2022.08.18 |
---|---|
forward proxy 와 reverse proxy의 차이 (0) | 2022.08.18 |
일급 객체 (0) | 2022.08.11 |
지네릭 - 와일드 카드 (0) | 2022.08.09 |
정규 표현식 (0) | 2022.08.08 |
Comments