본문 바로가기

WEB BASED

WEB 통신 방식 ( HTTP, Socket)

일반적으로 클라이언트에서 필요로 하는 데이터들은 Server가 관리하게 됩니다. 클라이언트가 웹서버로 원하는 데이터요청을 보내고, 서버에서는 클라이언트가 요청한 데이터를 응답해 주기 위해서는 크게 2가지 통신 방식이 존재합니다.

HTTP 와 Socket 통신에 대하여 알아보겠습니다.

1. HTTP 통신

 

HTTP (Hypertext Transfer Protocol)란?

  • 팀 버너스리(Tim Berners-Lee)와 그가 속한 팀은 CERN에서 HTML뿐만 아니라 웹 브라우저 및 웹 브라우저 관련 기술과 HTTP를 발명하였습니다.
  • 문서화된 최초의 HTTP버전은 HTTP v0.9(1991년)입니다.
  • HTTP는 서버와 클라이언트가 인터넷상에서 데이터를 주고받기 위한 프로토콜(protocol)입니다.
  • HTTP는 계속 발전하여 HTTP/2까지 버전이 등장한 상태입니다.

 

HTTP 작동방식

  • HTTP는 서버/클라이언트 모델을 따릅니다.
  • 장점
    - 불특정 다수를 대상으로 하는 서비스에는 적합하다.
    - 클라이언트와 서버가 계속 연결된 형태가 아니기 때문에 클라이언트와 서버 간의 최대 연결 수보다 훨씬 많은 요청과 응답을 처리할 수 있다.
  • 단점
    - 연결을 끊어버리기 때문에, 클라이언트의 이전 상황을 알 수가 없다.
    - 이러한 특징을 무상태(Stateless)라고 말한다.
    - 이러한 특징 때문에 정보를 유지하기 위해서 Cookie와 같은 기술이 등장하게 되었다.

 

URL (Uniform Resource Locator)

  • 인터넷 상의 자원의 위치
  • 특정 웹 서버의 특정 파일에 접근하기 위한 경로 혹은 주소

 

Http 통신의 특징

  • Client가 요청을 보내는 경우에만 Server가 응답하는 단방향 통신이다.

  • Server로부터 응답을 받은 후에는 연결이 바로 종료된다. 

  • 실시간 연결이 아니고, 필요한 경우에만 Server로 요청을 보내는 상황에 유용하다.

  • 요청을 보내 Server의 응답을 기다리는 어플리케이션(Android or Ios)의 개발에 주로 사용된다

 

 

HTTP의 주요 메소드

  • GET : 정보를 요청하기 위해서 사용한다. (SELECT)
  • POST : 정보를 밀어넣기 위해서 사용한다. (INSERT)
  • PUT : 정보를 업데이트하기 위해서 사용한다. (UPDATE)
  • DELETE : 정보를 삭제하기 위해서 사용한다. (DELETE)
  • HEAD : (HTTP)헤더 정보만 요청한다. 해당 자원이 존재하는지 혹은 서버에 문제가 없는지를 확인하기 위해서 사용한다.
  • OPTIONS : 웹서버가 지원하는 메서드의 종류를 요청한다.
  • TRACE : 클라이언트의 요청을 그대로 반환한다. 예컨데 echo 서비스로 서버 상태를 확인하기 위한 목적으로 주로 사용한다.

그렇다면 HTTPS란 무엇일까?

HTTPS란 HTTP에 SECURE라는 보안이 강화된 것이라고 생각하면된다.

여기서 SECURE에는 SSL(Secure Sockey Layer) 프로토콜을 이용, 클라이언트와 서버가 데이터를 주고 받는 통신 규약이다. 

 

2. Socket 통신

 

       Server와 Client가 특정 Port를 통해 실시간으로 양방향 통신을 하는 방식

 

Socket통신은 Http 통신과 달리 Server와 Client가 특정 Port를 통해 연결을 성립하고 있어 실시간으로 양방향 통신을 하는 방식입니다. Client만 필요한 경우에 요청을 보내는 Http 통신과 달리 Socket 통신은 Server 역시 Client로 요청을 보낼 수 있으며, 계속 연결을 유지하는 연결지향형 통신이기 때문에 실시간 통신이 필요한 경우에 자주 사용됩니다. 예를 들면, 실시간 Streaming 중계나 실시간 채팅과 같이 즉각적으로 정보를 주고받는 경우에 사용합니다. 예를 들어 실시간 동영상 Streaming 서비스를 Http 통신으로 구현하였다고 가정하겠습니다. 이러한 경우에 사용자가 서버로 동영상을 요청하기 위해서는 동영상이 종료되는 순간까지 계속해서 Http 통신을 보내야 하고 이러한 구조는 계속 연결을 요청하기 때문에 부하가 걸리게 됩니다. 그러므로 이러한 경우에는 Socket을 통해 구현하는 것이 적합합니다.

 

Socket 통신의 특징

  • Server와 Client가 계속 연결을 유지하는 양방향 통신이다.

  • Server와 Client가 실시간으로 데이터를 주고받는 상황이 필요한 경우에 사용된다.

  • 실시간 동영상 Streaming이나 온라인 게임 등과 같은 경우에 자주 사용된다.