- 쿠키와 세션2023년 08월 26일 08시 44분 36초에 업로드 된 글입니다.작성자: IIIIIIIIIIIIIIIIIIIIl
쿠키(Cookie) 소개
쿠키(Cookie)는 클라이언트 측에서 데이터를 저장하는 방식으로, 클라이언트 측에 저장된 데이터를 서버가 읽어 사용할 수 있습니다. 쿠키는 브라우저에서 저장되며, 만료 기간을 설정하여 일정 기간 동안만 유지되도록 할 수 있습니다. 일반적으로 로그인 정보나 선호 설정 등을 저장하는 데 사용됩니다.
- 클라이언트는 서버에 HTTP Request를 보냅니다.
- 서버는 HTTP Request를 받고, 요청을 처리합니다.
- 서버는 HTTP Response의 Set-Cookie 헤더를 이용하여 쿠키를 생성합니다.
- 서버는 쿠키 정보를 HTTP Response의 헤더에 추가하여 클라이언트에게 전달합니다.
- 클라이언트는 다음 요청 때, HTTP Request의 헤더에 쿠키 정보를 포함하여 서버에 요청을 보냅니다.
- 서버는 쿠키 정보를 이용하여 클라이언트를 식별하고, 요청을 처리합니다.
세션(Session) 소개
세션(Session)은 서버 측에서 데이터를 저장하는 방식으로, 클라이언트와 서버 간의 연결이 유지되는 동안에만 유효합니다. 세션은 일반적으로 쿠키를 사용하여 세션 ID를 클라이언트 측에 저장하고, 클라이언트 측에서 서버로 요청을 보낼 때마다 세션 ID를 함께 전송하여 서버에서 해당 세션을 식별하고 데이터를 유지합니다.
- 클라이언트는 서버에 HTTP Request를 보냅니다.
- 서버는 HTTP Request를 받고, 요청을 처리합니다.
- 서버는 새로운 세션을 생성하기 위해 세션 매니저에게 요청합니다.
- 세션 매니저는 새로운 세션을 생성하고, 세션 ID를 반환합니다.
- 서버는 세션 ID를 포함한 쿠키를 HTTP Response의 헤더에 추가하여 클라이언트에게 전달합니다.
- 클라이언트는 다음 요청 때, HTTP Request의 헤더에 쿠키 정보를 포함하여 서버에 요청을 보냅니다.
- 서버는 HTTP Request의 헤더에서 세션 ID를 추출하여 세션 매니저에게 전달합니다.
- 세션 매니저는 세션 ID를 검증하고, 해당 세션에 대한 데이터를 반환합니다.
- 서버는 세션 데이터를 이용하여 요청을 처리하고, HTTP Response를 클라이언트에게 전달합니다.
쿠키(Cookie)와 세션(Session) 차이점
쿠키와 세션은 웹 개발에서 사용되는 상태 관리 기술로, 사용자의 상태 정보를 저장하고 유지하는 데 사용됩니다.
일반적으로, 쿠키는 작은 양의 정보를 클라이언트에 저장하고 전송하며, 세션은 더 많은 데이터를 서버에서 관리하고 보안적으로 안전한 방식으로 사용자의 상태를 유지합니다. 주요 차이점은 아래와 같습니다.
- 쿠키(Cookie):- 저장 위치: 쿠키는 클라이언트(웹 브라우저)에 저장됩니다. 서버에서 생성한 쿠키는 클라이언트의 웹 브라우저에 저장되며, 클라이언트가 동일한 웹 사이트를 방문할 때마다 서버에 전송됩니다.
- 용량 제한: 쿠키는 보통 작은 용량(4KB)으로 제한되므로, 작은 데이터 조각(예: 사용자 선호 설정, 로그인 정보)를 저장하기에 적합합니다.
- 보안: 쿠키에 저장되는 정보는 클라이언트의 브라우저 내에 저장되므로, 보안에 취약할 수 있습니다. 민감한 정보를 저장할 때는 보안 문제에 주의해야 합니다.
- 수명 설정: 쿠키는 만료 날짜나 기간을 설정하여 지속적으로 유지될 수 있습니다. 만료 날짜가 설정되지 않으면 세션이 종료될 때까지 유지됩니다.
- 세션(Session):
- 저장 위치: 세션은 서버에 저장됩니다. 클라이언트와 서버 간의 정보 교환은 쿠키를 통해 이루어지지만, 실제 데이터는 서버 내의 세션 저장소에 저장됩니다.
- 용량 제한: 세션은 서버 측에서 데이터를 관리하므로 쿠키보다 훨씬 더 많은 양의 데이터를 저장할 수 있습니다.
- 보안: 쿠키보다는 상대적으로 안전합니다. 클라이언트에 민감한 정보가 저장되지 않으며, 세션 ID만 쿠키에 저장되고 실제 데이터는 서버에 저장되기 때문입니다.
- 수명 설정: 보통 웹 브라우저를 닫거나 로그아웃할 때 세션이 종료됩니다. 서버에서 세션의 유지 기간을 설정할 수도 있습니다.
- 상태 유지: 쿠키와 달리 세션은 클라이언트 측에서 정보를 유지하지 않기 때문에 클라이언트를 더 효과적으로 관리할 수 있습니다.
참고자료
https://www.bugbountyclub.com/
https://developer.mozilla.org/ko/docs/Web/HTTP/Cookies
https://ko.wikipedia.org/wiki/HTTP_%EC%BF%A0%ED%82%A4
https://developer.mozilla.org/ko/docs/Web/HTTP/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)
'웹애플리케이션 해킹' 카테고리의 다른 글
교차 출처 리소스 공유(Cross-Origin Resource Sharing, CORS) (0) 2023.08.31 동일 출처 정책(Same-Origin Policy) (0) 2023.08.31 인코딩(Encoding) (0) 2023.08.31 웹 애플리케이션 작동 원리 (0) 2023.08.25 웹의 이해와 HTTP (0) 2023.08.24 다음글이 없습니다.이전글이 없습니다.댓글