본문 바로가기
개인공부/패스트캠퍼스 CS

[CS] 1-2. 쿠키와 세션

by 뭉지야 2023. 7. 27.
728x90

# 쿠키(cookie)
-쿠키: 사용자가 특정한 웹 사이트에 방문할때, 사용자 컴퓨터에 저장하는 기록 파일이다.
-서버의 자원을 전혀 사용하지 않는다.
-사용 예시: "아이디와 비밀번호를 저장하시겠습니까?"

#세션(session)
-세션: 한명의 사용자(브라우저)의 상태를 유지하는 기술이다.
-서버가 클라이언트에게 고유한 Session ID를 부여하면, 클라이언트는 접속할 때마다 Session ID와 함께 요청한다.
-사용예시: 웹 사이트에 한번 로그인 하면, 다른 페이지로 이동해도 계속 접속 상태가 유지된다.
-만약 Session ID를 다른 클라이언트에게 탈취당하면, 다른 사람이 자신의 행세를 할 수 있다.

#세션 개요
-서버에서 가지고 있는 객체로, 특정 사용자의 로그인 정보를 유지하기 위해 사용할 수 있다.
-예를 들어 우리가 웹 사이트에 로그인한 뒤에, 서버에서는 세션ID에 따른 회원ID 정보를 기록한다.
-클라이언트는 해당 세션을 계속 유지한다. 예를 들어 메일함에 접속할 때도 세션ID를 서버에 전송한다.
-다시 말해 세션은 자신이 누구인지를 서버에 알려주는 역할을 수행한다.

#세션 인증 방식 예시

1. client가 server에게 로그인 페이지 요청
2. server가 client에게 로그인 페이지 응답
3. client가 server에게 로그인요청(ID, Password)
4. server에서는 데이터베이스를 검증하여 회원정보가 일치하는 경우 세션을 생성하거나 기존의 세션을 유지한다.
5. client가 세션ID와 함께 하고자하는 요청(글쓰기 등)을 전송한다.server에게
6. 세션 ID를 통해 회원ID에 접근하고 해당하는 회원에 대하여 서비스(글쓰기 등) 수행한다.

#세션 방식의 특징
장점
- 클라이언트에게는 세션ID(회원 식별 목적)을 제공하고, 회원에 대한 중요한 정보를 서버가 가지고 있다.
- 민감한 데이터를 클라이언트에 직접적으로 보내지 않는다.
- 클라이언트 브라우저가 가지고 있는 세션 ID 자체에는 개인정보를 포함하고 있지 않다.
단점
- 악의적인 공격자가 세션ID를 탈취하여 사용자인 척 위장할 수 있다.
- 웹 서버에 세션 정보를 기록하고 있어야 하므로, 접속자가 많을 때 서버에 메모리 부하가 존재할 수 있다.

728x90

'개인공부 > 패스트캠퍼스 CS' 카테고리의 다른 글

[CS] 2-1. 컴퓨터 구조 기초  (0) 2023.08.07
[CS] 1-6. JWT(JSON Web Token)  (0) 2023.08.05
[CS] 1-4. REST API  (0) 2023.08.01
[CS] 1-5. OAuth  (0) 2023.08.01
[CS] 1-3.HTTP(HyperText Transfer Protocol)  (0) 2023.07.27