해당 글의 출처는 가장 아래에 있습니다ㅏㅏㅏㅏ
++ 서론
더보기
코드 구현 시에 쿠키와 세션을 구분해야 할 경우가 생겼다
하지만, 그 둘에 대해서 잘 알지 못해 한번 정리하고 넘어가기로 했다!
먼저, 쿠키와 세션이 존재하는 이유부터 보자
우리가 인터넷에 접속해서 정보를 교환하기위해 사용하는
HTTP는 무연결성, 무영속성의 특징을 가지는 프로토콜이다
( 무연결성, 무영속성은 데이터베이스의 상태를 떠올리면 될 것 같다ㅏㅏㅏ )
여튼 이러한 약점을 보완하기 위해 세션과 쿠키가 등장한다!
쿠키런?
쿠키 는 브라우저( 로컬 )에 저장되는 작은 데이터 파일이다
사용자 인증이 유효한 시간을 명시할 수 있고,
유효시간이 정해지면, 브라우저가 종료되어도 인증이 유효하다!
쿠키의 양, 구성요소, 동작방식
이러한 쿠키의 용량은
- 클라이언트 상에 300개 한도로 저장 가능,
- 하나의 도메인 당 20개 한도,
- 하나의 쿠키 값은 4KB까지 저장 가능하다
쿠키의 구성요소 ( 속성 )
- 이름
- 값
- 유효시간
- 도메인
- 경로
쿠키의 동작방식
- 사용자 ----페이지 요청----> 서버
- 서버가 쿠키를 생성
- HTTP 헤더에 쿠키 포함시켜 응답
- 브라우저가 종료되어도 유효시간 동안 쿠키가 만료되지 않음
( 클라이언트 상에 보관 ) - 같은 요청시에 서버로 HTTP 헤더에 쿠키를 함께 보냄
- 서버에서 쿠키를 읽어 상태정보 변경 시에 쿠키를 업데이트
이러한 쿠키의 사용예시를 들면,
- 자동 로그인
- 팝업 -> "이 창을 오늘 더 이상 보지 않음" -> 만료시간 하루
등이 있다ㅏㅏ
세션이란?
세션 은 쿠키를 기반으로,
사용자 정보를 브라우저에 저장하는 쿠키와 달리,
서버측에서 관리함으로써 브라우저가 종료되면 함께 만료되는 특징이 있다
사용자 정보를 서버에 두기 때문에,
쿠키보다 보안성이 높다
BUT,
사용자가 많아질 수록 메모리 차지가 높아지게 되는 단점이 있다
세션의 동작방식
- 사용자가 서버 접속시 세션ID 발급
- 사용자는 세션ID에 대해 쿠키를 저장 , 보유
- 사용자는 서버에 요청할 때 (사용자 브라우저에 남아있는)쿠키(내)의 세션ID를 서버에 전달해서 사용
- 서버는 해당 세션ID를 받아서 별다른 작업없이 세션ID로 세션에 있는 클라이언트 정보를 가져옴
처음엔, 이 일련의 과정들이 이해가 잘 안갔지만!
세션을 일종의 DB라고 생각하면서 감이 왔다ㅏㅏㅏ
( 실제로, 세션을 MYSQL같은 DB 저장소로 관리하기도 한다! )
여튼 이렇게 세션과 쿠키에 대해 알아보는 시간이었다ㅏㅏㅏ
https://interconnection.tistory.com/74
http://docs.meba.kr/s-plus/index/cookie/
'끄적 정리' 카테고리의 다른 글
소스트리 원격 저장소 클론 후, 로컬 폴더 연결 (0) | 2021.08.02 |
---|---|
GitHub access token 발행과 소스트리 연결하기 (0) | 2021.07.01 |
정보처리기사 실기 시험 정리 4. 논리 데이터 저장소 확인 (0) | 2021.04.25 |
정보처리기사 실기 시험 정리 3. 분석 모델 확인하기 (0) | 2021.04.24 |
정보처리기사 실기 시험 정리 2. 요구사항 확인 (0) | 2021.04.24 |