imort 박뉴프

쿠키(Cookie)와 세션(Session) 본문

Develop/Network

쿠키(Cookie)와 세션(Session)

박뉴프 2022. 8. 10. 13:36

2022.08.03

 

HTTP 프로토콜의 비연결성, 무상태 특성을 보완하기위해 쿠키와 세션을 사용해야 한다.

 

비연결성(Connectionless)

-클라이언트와 서버가 한 번 연결을 맺은 후에 응답을 받으면 연결을 끊어버리는 특성이다.

-서버가 인터넷 상에서 불특정 다수와 계속 연결을 유지하고있다면 유지비용이 커지기때문에 이러한 특성을 갖는다.

-하지만 같은 클라이언트와 연결할 때도 계속 연결/해제 과정을 거쳐야하므로 오버헤드가 커진다.

-이러한 문제를 해결하기위해 헤더에서 KeepAlive 속성을 사용할 수 있다. KeepAlive는 서버와 클라이언트 사이에 일정 시간 이상 패킷교환이 없을 경우, 패킷을 보내 확인하고 반응이 없다면 접속을 끊는 것이다.

 

무상태(Stateless)

-무상태란 서버가 클라이언트를 식별할 수 없어 상태를 모른다는 특성이다.

-연결을 끊으면 상태정보가 유지되지 않는다.

 

 

 

위의 두 특성을 보완하여 클라이언트의 상태 정보를 유지하는 두가지가 있다.

 

 

쿠키(Cookie)

-클라이언트에서 로컬로 저장하는 작은 데이터 파일이다.

-사용자를 식별할수 있는 유효 시간동안은 브라우저를 꺼도 인증이 유지된다.

-브라우저가 자동으로 HTTP 헤더에 넣어 서버로 전송한다.

-클라이언트에서 저장하기 때문에 상대적으로 위변조의 가능성이 높다. (변질, 스니핑 우려)

 

1. 세션관리 - 장바구니, 일주일간 보지 않음 등 정보 관리
2. 개인화 - 사용자 선호, 테마 등의 세팅
3. 트래킹 - 사용자 행동을 기록하고 분석하는 용도

 

세션(Session)

-세션을 쿠키를 기반으로 서버에서 관리하는 파일이다.

-브라우저가 서버에 접속을 종료할 때까지 세션 인증상태를 유지한다.

-클라이언트 식별을 위해 서버 접속시에 고유의 세션ID를 부여한다.

-클라이언트는 쿠키로 세션ID를 가지고있다가 세션ID를 서버에 함께 전달해서 요청한다.

-정보를 서버에서 관리하다보니 쿠키보다 보안에 좋다.

-클라이언트 수가 많아지면 서버 메모리를 많이 차지하고, 동시 접속자수가 많으면 서버과부하를 일으킨다.

 

 

 

 

 


🔍 블로그 https://parkmj236.tistory.com

🔍 Notion https://branch-frog-b20.notion.site/Park-Minji-e4fa8aa44b8c48b582a9082515dbc15e

🔍 Github https://github.com/Park-New-project/Projects


참고

https://parkmj236.tistory.com/5

 

서브넷팅(Subnetting)

2022.08.04 IPv4 -네트워크 통신을 할때 쓰는 프로토콜이다. -호스트를 구분하기위해 ip주소를 사용한다. -XXX.XXX.XXX.XXX의 형태로 32비트 주소 체계이다. -A,B,C,D,E 클래스로 구분해서 사용한다. -네트워

parkmj236.tistory.com

https://parkmj236.tistory.com/10

 

쿠키(Cookie)와 세션(Session)

2022.08.03 HTTP 프로토콜의 비연결성, 무상태 특성을 보완하기위해 쿠키와 세션을 사용해야 한다. 비연결성(Connectionless) -클라이언트와 서버가 한 번 연결을 맺은 후에 응답을 받으면 연결을 끊어버

parkmj236.tistory.com

 

Comments