리오집사의 기억저장소

HTTP는 요청과 응답의 과정에서 상태 정보를 저장하지 않는 무상태 프로토콜이다. 따라서 상태를 유지하면서 연속적인 응답을 해야 할 때에는 쿠키를 사용하여 세션을 인식할 수 있도록 한다.

예를 들어, 온라인 쇼핑의 경우, 세션과 쿠키가 없다면 상품을 고르는 기능, 구매 결정 기능, 지불 기능 등이 따로 놀기 때문에, 각각의 기능 요청에 대해서 어떤 사용자가 보낸 것인지 알 길이 없다.

반대로 쿠키가 있다면,

1. 사용자가 처음 접속하면, 요청에 대한 응답에 쿠키를 함께 보낸다.

2. 쿠키를 함께 보낼 때, 쿠키 정보가 클라이언트 PC 에 저장된다.

3. 다음 요청부터는 메시지를 보낼 때에 쿠키를 함께 보낸다.

4. 웹 서버나 웹 서비스는, 쿠키를 보고 같은 사용자의 요청인지 판단한다.

와 같이 동작하여, 연속적인 응답을 해결할 수 있게 된다.


쿠키 정보는 악용될 경우 보안 문제 발생->기본적으로 웹 브라우저가 이에 대한 방어책을 자체적으로 구현하고 있음

 웹 브라우저는 응답받은 메시지의 헤더에 'Set-Cookie:' 라는 문자열이 있는지 확인하고, 만약 있다면 그 내용을 로컬 디스크에 쿠키 형태로 저장한다. 이때  브라우저에는 expires, max-age 등으로 유효기간을 설정하여 자동 폐기하거나, 웹 서버와 동일한 도메인을 사용하는 웹 사이트에만 쿠키가 전송되도록 제한하는 등의 방법으로 보안 문제에 대한 자체 방어책을 가지고 있다.


반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band