정리하기 전에..
사이드 프로젝트를 진행하면서 사용자 인증을 JWT를 통해 진행하자는 얘기가 나왔는데
Token에 대한 개념도 부족하고 왜 사용하고 어떤 장단이 있는지
인증 구현 시 어떤 방식이 있는지 찾다보니
Session과 Cookie 개념까지 왔다..
분명 저번 사이드 프로젝트에서 로그인 기능을 구현하며 세션과 쿠키 개념을 정리했다고 생각했는데 한참 잘못 생각하고 있었던 것 같다. 그래서 나중에 또 까먹을? 나를 위해 그리고 토큰 사용을 고려하기 전에 먼저 Session, Cookie에 대해 정리해보기로 했다.
(정리하는데 이게 맞는 건지 모르겠다.. 그냥 현재 수준에서 이해할 수 있을 만큼이라도 정리해 봤다.)
HTTP 이것도 다시 학습해야 될 것 같은데 우선 간단히 정리하고 넘어가기로 했다.
HTTP
HyperText Transfer Protocol
거의 모든 형태의 데이터 전송 가능
서버간의 데이터를 주고 받을 때 대부분 HTTP 사용
클리아언트 - 서버 구조 (요청에서 응답까지 동기적으로 처리)
Stateless - Scale out에 용이 (초기 - 연결을 유지하지 않음)
TCP/IP (HTTP3에서는 UDP)
Session
CS, 특히 네트워크 분야에서 반영구적이고 상호작용적인 정보 교환을 전제하는 둘 이상의 통신 장치나 컴퓨터와 사용자 간의 대화나 송수신 연결 상태를 의미하는 보안적인 다이얼로그 및 시간대를 가리킨다.
세션 수립은 연결 지향 통신을 수행하는데 기초적인 요구 사항이다.
컴퓨터 시스템의 관리자(또는 OS 또는 서버)가 자신의 자산(리소스)을 이용하는 것을 허락한 사용자(컴퓨팅)를 인식한 일정한 기간을 가리키는 것으로 광범위하게 이해될 수 있다.
-> 클라이언트가 관리자에게 자신의 리소스를 이용해도 좋다고 허락하고 이를 관리자가 인식한 시점부터 일정기간을 가리킴. (크롬을 통해 티스토리에 접근하면 크롬(브라우저)가 클라이언트이고 티스토리가 관리자라고 보면 될 듯)
세션 동안에 사용자는 시스템으로부터 허락된 범위 안에서 응용프로그램, 설정값, 자원을 사용할 수 있게 되지만, 이러한 인스턴스는 여전히 세션관리자인 컴퓨터 시스템의 감독하에 관리되어야 한다.
컴퓨터 네트워크 상에서 OSI 7 계층의 제 5 계층인 세션 계층에 해당한다.
세션 계층에서는 인증, 허가, 세션 회복 (검사 및 복구)를 한다.
음..
세션을 클라이언트와 서버의 연결 상태라고 하면
세션을 저장한다는 건 그 상태에 대한 정보를 저장한다는 거고
세션에 정보를 저장한다는건 그 세션으로 데이터를 저장한다는 건가?
Q. 실제 세션은 어디에 저장될까?
아래 글 참고
https://hyeon9mak.github.io/session-storage-location/
Cookie
웹 쿠키, 브라우저 쿠키
서버가 사용자의 웹 브라우저에 전송하는 작은 데이터 조각이다.
요청이 동일한 브라우저에서 들어왔는지 아닌지 판단 가능하다.
상태가 없는 stateless HTTP 프로토콜에서 상태 정보를 기억시켜준다.
목적
1. 세션 관리(Session management)
2. 개인화(Personalization)
3. 트래킹(Tracking)
Session 과 Cookie 비교
아래 글 참고
https://sdevstudy.tistory.com/27
Cookie
- <MDN - HTTP 쿠키>
- https://developer.mozilla.org/ko/docs/Web/HTTP/Cookies
- <블로그 - Cookie>
- https://feel5ny.github.io/2019/11/16/HTTP_011_02/
Session
- <위키백과 세션 정의>
- https://ko.wikipedia.org/wiki/%EC%84%B8%EC%85%98_(%EC%BB%B4%ED%93%A8%ED%84%B0_%EA%B3%BC%ED%95%99)
- <MDN - HTTP 세션>
- https://developer.mozilla.org/ko/docs/Web/HTTP/Session
- <KLDP - 세션관련 질의문답 >
- https://kldp.org/node/52098
- <위키백과 세션 계층 정의>
- https://ko.wikipedia.org/wiki/%EC%84%B8%EC%85%98_%EA%B3%84%EC%B8%B5
'개발 > 일지' 카테고리의 다른 글
[오류] DB 관련 오류 - 컬럼 (0) | 2022.12.24 |
---|---|
[오류 처리] Java Version 호환성 관련 문제 (0) | 2022.12.22 |
CGI, Common Gateway Interface (0) | 2022.12.22 |
팀 프로젝트 시작 전 준비 사항 - Conventions (0) | 2022.12.21 |
[DDD] Repository Pattern 이란 (0) | 2022.12.16 |