세션과 쿠키
온라인 쇼핑몰에서 쇼핑을 하면서 구매하기를 원하는 물품들을 장바구니에 넣어둡니다. 이 장바구니에 물품을 새로 추가할 수 있고, 장바구니에 있던 물품을 삭제시킬 수도 있습니다. 장바구니를 온라인이나 오프라인에서 많이 사용한 경험이 있을 것입니다. 장바구니를 들고 다니면서 필요한 물품을 그 안에 넣어두고 다시 새로운 물품을 넣고, 필요 없는 물품은 다시 뺄 수도 있는 장바구니는 세션을 사용함으로 가능하게 됩니다. HTTP프로토콜은 상태가 없는 프로토콜이라고 하는데, 사용자의 브라우저와 서버 간의 상태에 대한 보존 없이 매 순간 순간 새로운 연결을 하고, 요청에 대한 응답을 서버가 전송하고 나면 모든 연결이 끊어지게 됩니다. 이렇게 연결이 끊어지게 되면 지금 어떤 사람이 로그인되어 있는지에 대한 내용도 모두 잃어버리게 됩니다. 또한 그 사람이 담아두었던 장바구니의 물품 정보 또한 잃어버리게 됩니다. 이렇게 상태가 없는 프로토콜을 이용하면서 상태에 대한 보전을 위해서 세션을 사용합니다. 사용자의 브라우저와 서버 간의 논리적인 연결이라고 생각하면 됩니다. 클라이언트가 서버로 요청을 할 때 보내지는 정보에는 그 클라이언트에 대한 정보도 포함이 되어서 전송됩니다. 서버에서는 요청에 실려져온 브라우저에 대한 정보를 알 수 있습니다. 이 정보를 세션에 이용하는 것입니다. 특정한 클라이언트에서 서버로 요청을 보냈다면 서버는 이 클라이언트가 보낸 요청에 함께 존재하는 그 클라이언트의 정보를 가지고 있다가 다시 그 클라이언트로부터 또 다른 요청이 왔을때는 이미 가지고 있던 정보를 비교해서 동일한 브라우저인지를 판단하게 됩니다. 서버가 자신에게 접속한 클라이언트의 정보를 갖고 있는 상태를 '세션'이라고 합니다.
'Network' 카테고리의 다른 글
jsp - 디폴트 객체 (0) | 2017.02.20 |
---|---|
쿠키(Cookie) - 웹 프로그래밍 (0) | 2017.02.19 |
표현언어와 JSTL (0) | 2017.02.14 |
클라이언트 프로그램과 서버 프로그램 (0) | 2017.02.13 |
웹 프로그램의 이해 (0) | 2017.02.13 |