네트워크/네트워크

HTTP - HTTP(Hyper Text Transfer Protocol) 개요

본클라쓰 2009. 1. 5. 12:32

 

 HTTP는 데이터 전송 프로토콜로 MIME(Multi-Purpost Internet Mail Extensions)으로 지정할 수 있는 모든 데이터 형식에 대해 8비트 이진 모드로 완전무결하게 데이터 전송을 수행할 수 있다. 또한, TCP를 이용하여 전송을 수행하지만 연결형이 아니다. 사용자는 요청을 하기전에 연결을 요청하고 연결한 후 모든 응답을 받으면 연결을 해제하는 방식으로 데이터를 전송한다.

 

 

 

HTTP 흐름도

 

접속 → 요청 → 응답 → 접속 종료

 

이런 방식은 장단점을 가지고 있다. 장점은 웹 문서는 하이퍼링크를 통해 문서를 연결하였기 때문에 전혀 다른 호스트의 웹 문서를 요청할 수도 있다. 이 때 지속적으로 연결을 유지하는 방법보다는 요청/응답 방식으로 동작하는 것이 보다 효율적이다. 하지만 단점은 동일한 호스트에서 문서를 지속적으로 요청할 때는 부담이 생길 수 있다. 또한, 커넥션의 지속성이 없기 때문에 각 각의 클라이언트를 구분 할 수 없다는 단점도 있다.

 

웹(WWW)을 구성하는 세 가지 기술 중의 하나로 그래픽, 동영상 등과 같은 멀티미디어 정보와 분산환경, 공동 작업 환경 상황에서도 빠른 속도와 편리성을 제공하는 프로토콜이다.

 

 

 

HTTP 프로토콜을 사용할 때 사용자의 정보를 유지하는 방법

 

HTTP 프로토콜을 사용자에 대해 연결을 유지하지 않는다. 즉, 요청을 받고 응답을 완료하면 연결을 해제하는 방식으로 구현되어 있다. 이 방식은 네트워크 자원을 효과적으로 사용하기 위한 방법이지만 동일한 사용자에 대해 일관된 서비스를 제공하기에는 부족한 단점도 있다. 따라서 HTTP에서 사용자를 구분하기 위한 방법이 있는데 다음과 같다.

  1. UTL Rewriting : GET 방식으로 다른 페이지로 이동할 때 URL의 뒷 부분에 정보를 가지고 다니는 방법이다. 이 방식은 정보의 양이 1024 Byte로 제한되며 보안상 문제가 존재한다.
  2. Hidden Form Field : Post 방식으로 처리하기 위한 방법으로 HTML의 <form>태그와 <input>태그의 숨겨진 텍스트 필드를 이용하는 방식이다. 이 방식은 텍스트 필드를 이용해 값을 계속 가지고 다녀야 하는 번거로움이 있다.
  3. Cookie : 클라이언트의 상태 정보를 클라이언트의 정보를 쿠키(서버가 클라이언트에 전송하여 저장하는 텍스트 조각)라는 형태로 클라이언트의 하드 디스크에 저장한 후 요청시 쿠키의 정보를 함께 서버에 전송하는 방식이다.
  4. Session : 클라이언트가 처음 서버에 접속했을 때 세션 ID를 부여하고, 서버에 세션 ID를 저장한 다음 클라이언트가 다시 접속했을 때 가져온 세션 ID를 통해 클라이언트를 구분하는 방법

 


TCP 프로토콜의 구분(연결성을 기준으로)

- 지속적인 연결을 유지하는 프로토콜 : FTP, Telnet

- 지속적인 연결을 하지않는 프로토콜 : HTTP