2008년 12월 23일
HTTP프로토콜의 이해

HTTP 프로토콜의 특성상 데이터를 요청하고 그리고 데이터를 받고 나면 바로 소켓
Connection을 해제하게 됩니다.
지속적인 연결을 하고 있으면서 데이터를 주고 받는 것이 아니라 필요할 때마다
소켓을 연결하고 데이터를 받자마자 바로 Connection을 끊어버리는 방식이
바로 HTTP 프로토콜의 연결 메커니즘입니다.
HTTP 1.0에서는 하나의 문서내에 이미지가 존재한다면 문서를 받기위해서
연결설정을 하고 이미지를 받을 때
다시 연결설정을 하게 됩니다. 이러한 원리를 그림으로 나타내면 다음과 같습니다.

하지만HTTP 1.1에서는 만약 연결설정을 한 후 하나의 문서내에 포함 되어진 다른 이미지나
Object가 존재한다면 연결설정을 다시 하지않고 연결되어진 소켓을 통해서 데이터를 이어서 받게 됩니다.
이렇게 함으로써 HTTP 프로토콜의 수행성능을 향상하게 되는 것입니다.
HTTP 1.1의 Connection 메카니즘을 그림으로 나타내면 다음과 같습니다.

HTTP 1.0에서는 하나의 문서내에 이미지가 포함되어 있을 때 2번의 연결을 하여 전체 8 Step으로
모든 작업을 완료했지만 HTTP 1.1에서는 6번의 Step으로 모든 작업을 마치게 됩니다.
만약 포함되어진 Image나 Object가 많이 존재한다면 HTTP 1.1의 수행성능은 더욱 향상될 것입니다.
HTTP 1.1 프로토콜은 처음 연결할 때 Delay가 심하지만 점점 더 속도가 빨라지는 이유가 이러한 데에서 나타납니다.
하지만 작업을 마치면 연결 자체가 해제되어 버리기 때문에 지속성 있는 작업을 계속 유지할 수 없습니다.
연결을 완전 해제해 버리기 때문에 방금 전에 접속한 클라이언트인지,
이제 처음으로 접속한 클라이언트인지 구분할 수 없습니다. 이러한 단점을 극복하기 위해 몇가지의
방법론을 다음 절에서 소개하도록 하겠습니다.
HTTP 프로토콜은 연결을 계속 유지하는 것이 아니라 작업을 마치면
바로 연결을 해제하는 방식으로 동작합니다.
이러한 Connection의 지속성이 없기 때문에 각각의 클라이언트를 구분할 수 없다는 것은
HTTP 프로토콜의 가장 큰 단점입니다. 그리고 이것이 가장 큰 장점이기도 합니다.
보다 많은 사용자에게 보다 많은 서비스를 할 수 있다는 것입니다.
TCP 프로토콜의 지속성 측면에서 프로토콜을 나누어 보면 다음과 같습니다.
TCP 프로토콜의 응용
n 지속적인 연결성을 기지고 있는(stateful) 프로토콜 à FTP, Telnet
n 지속적인 연결성을 유지하지 못하는(statelessful) 프로토콜 à HTTP
FTP, Telnet은 한번 연결되면 계속적으로 다음 작업을 서비스 받을 수 있습니다.
하지만 HTTP는 한번의 연결로 필요한 작업만을 하고 바로 Connection을 해제 해버립니다.
이러한 HTTP의 단점을 극복하기 위해서 몇가지의 방법이 제공되어집니다.
상태를 유지하기 위한 방법들
n URL Rewriting
n Hidden Form Field
n Cookie
n Session
URL Rewriting과 Hidden Form 양식을 이용하는 것은 프로그램적인 응용부분으로 생각해 볼 수
있으며 일반적으로 Cookie와 Session을 이용하는 것을 주로 합니다.
# by | 2008/12/23 08:56 | JSP/Servlet | 트랙백 | 핑백(1) | 덧글(1)





☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
... . 이러한 문제의 대안으로 다음의 방법들이 있다. URL Rewriting Hidden Form Field Cookie Session References http://darkmirr.egloos.com/1237288 ... more