HTTP 접속

By | 2009년 3월 12일

쿠키와 세션을 공부하기 전에 다음의 경우를 생각해 보자. 우리가 전화로 여행사를 통하여 항공기 좌석을 예약한다고 가정하자. 우선 항공기 예약을 하려면 통화 중인 여행사 직원에게 원하는 날짜 및 시간, 목적지 등과 함께 자신의 간단한 신상을 제공할 것이다. 그러면 여행사 측에서 고객에게 예약번호를 부여한 후 항공기 예약을 완료하게 되고 전화를 끊는다. 그러나 사정이 생겨 후에 예약 내용을 변경하거나 취소 하려면 여행사에 전화를 걸어 자신의 예약번호 또는 이름, 주민등록번호와 같이 자신이 누구임을 밝힐 수 있는 정보를 고객이 여행사에 먼저 알려 줘야 한다. 그래야 항공기의 예약을 변경 또는 취소할 수 있기 때문이다. 만약 여행사에 전화를 걸어 예약과 관련된 정보(예약번호, 이름, 주민등록번호 등)를 알려주지 않고 무작정 예약을 변경 또는 취소한다고 하면 여행사 직원은 너무나도 당연한 얘기지만 올바른 처리를 할 수 없을 것이다.


사용자 삽입 이미지

항공편 예약 처리 과정


사용자 삽입 이미지

예약항공편 변경 처리 과정



http 접속은 사용자(클라이언트 또는 웹브라우저)로부터 웹 서버로 접속 요구가 시작되면 서버가 접속을 요구한 클라이언트로 데이터(일반적으로 HTML)를 보내기위해 연결을 설정한다. 그 후 데이터를 전송하고 데이터가 전송되면 그 연결을 지속적으로 유지하지 않고 자동으로 끊는다. 그 후 서버는 또 다른 접속 요구를 기다리고 위와 같은 방법으로 다른 클라이언트로부터의 접속요청을 처리한다. 다음 그림은 http 접속 과정을 나타낸 것이다.

사용자 삽입 이미지

http 접속 절차


이 방법은 연결이 지속적으로 유지되는 것에 비해 서버 및 네트워크의 부하를 많이 줄일 수 있지만 서버와 클라이언트 사이에 지속적인 정보를 유지하기가 어렵다.

Daum(http://www.daum.net)을 예를 들어보자. Daum에서 웹메일을 이용하기 위해서는 로그인을 해야한다. 이 때 로그인이 성공적으로 이루어지면 웹메일을 이용할 수 있는 화면으로 이동하여 메일읽기, 메일보내기 등 다양한 서비스를 이용할 수 있다. 이 때 각 서비스는 메뉴화면에서 해당 메뉴를 클릭함으로써 이용할 수 있다. 그러나 서비스를 이용하기 위해 메뉴를 클릭한다는 것은 이미 로그인 이라는 하나의 http 접속 주기(요청, 연결, 전송, 해제)를 완료하고 새로운 접속을 요청하고 있음을 의미한다. 즉 이 상황은 앞의 예에서 전화를 걸어 항공기 예약을 마친후 나중에 어떠한 사정으로 인하여 예약을 변경하는것에 비유될 수 있다. 따라서 로그인 후 각종 서비스를 이용하기위해 클릭을 하여 서버로 새로운 접속을 요구하게 되면 서버는 접속을 요구한 사용자가 어떤 사용자인지를 파악할 방법이 없습니다. 이를 위해서는 전화를 통한 예약 변경시 전화를 걸어 예약번호와 같은 자신의 정보를 직원에게 알려주는 것과 같은 방법으로 사용자가 서버에게 자신을 알릴 수 있는 어떤 정보를 알려줘야 한다. 바로 이러한 일련의 작업은 쿠키 또는 세션이라 불리는 기술을 통해서 구현할 수 있다.


답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.