Front-End/Web & 표준 & ETC

[Network] HTTP 통신과 작동방식 & Socket

Voyage_dev 2022. 2. 24. 12:22

통신 프로토콜(Communication Protocol, 통신 규약)

    • 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고 받는 양식 및 규칙의 체계를 의미
    • 대표적으로 HTTP, HTTPS, FTP SSL등이 있다
      • 일반적인 프로토콜
        • Http : Hyper Text Transer Protocol
        • Https : secure Hyper Text Transer Protocol
      • TCP/IP 프로토콜을 가지고 서버와 클라이언트 사이의 파일 전송을 하기 위한 프로토콜
        • FTP : File Transfer Protocol
      • 파일 전송 프로토콜
        • Telnet : Terminal NetworkSSH : Secure Shell
      • 보안된 소켓 통신을 위한 프로토콜을
        • SMTP : Simple Mail Transfer Protocol
      • 기타
        • TCP/UDP : Transmission Control Protocol/User Datagram Protocol
        • IP : Internet Protocol
    • HTTP : Hyper Text Transfer Protocol
      • 인터넷에서 통신이 일어나며 데이터를 주고받는 프로토콜을 말한다
      • 데이터는 HTML뿐만 아니라 현재는 JSON,Image 파일 등 또한 전송한다
      • TCP 위에서 동작, 하지만 TCP와는 달리 무상태성 혹은 비연결성이다
      • 그로인해 쿠키나 세션을 이용하여 클라이언트의 상태를 관리힐 수 있다
      • 응답을 받은 후 Connection이 끊어지는 것이 기본 동작이지만 성능 상 필요하다면 Keep Alive 옵션으로 일정 시간 Connection을 유지할 수 있다.
      HTTP 작동방식
      • HTTP는 서버 / 클라이언트 모델을 따른다
      • 클라이언트의 요청을 보내는 경우에만 서버가 응답 결과를 주는 단방향 통신 방식이다
      • 응답을 받았으면 후에는 연결이 바로 종료된다

 

장점

  • 불특정 다수를 대상으로 하는 서비스에는 적합하다
  • 클라이언트와 서버가 계속 연결된 형태가 아니기 때문에 클라이언트와 서버 간의 최대 연결 수보다 훨씬 많은 요청과 응답을 처리할 수 있다.

단점

  • 연결을 끊어버리기 때문에, 클라이언트의 이전 상황을 알 수가 없다.
  • 이러한 특징을 무상태(Stateless)라고 말한다.
  • 이러한 특징 때문에 정보를 유지하기 위해서 Cookie와 같은 기술이 등장하게 되었다

HTTP Stateless

  • Http 통신은 state 개념이 존재하지 X
  • 각각의 통신은 독립적이기 때문에 통신을 주고 받아도 클라이언트와 서버는 연결되어 있지 않는다

HTTP는 TCP 위에서 동작하기 때문에 시작과 끝은 TCP 연결과 해제가 이루어져야 한다

 

Socket 통신

 

 

HTTP 통신과 달리 Socket 통신이란 서버와 클라이언트가 특정 Port를 통해 서로 데이터를 주고 받으며 양방향으로 연결이 이루어지는 통신이다

 

클라이언트도 서버 양쪽에서 데이터를 전달하는 방식이며 계속 연결을 유지하는 연결지항형 통신이기 때문에 실시간 통신이 필요한 경우에 자주 사용된다

 

하지만 Socket 통신은 계속해서 Connections을 유지하고 있기 때문에 HTTP 통신에 비해 많은 리소스가 소모되므로 자주 데이터를 주고 받는 환경이 아닌 경우에는 HTTP 통신을 통해 받는 것이 유리하다

 

참고 :

https://velog.io/@sdc337dc/웹-개념-Http-통신

https://kotlinworld.com/75

https://mysterico.tistory.com/29

https://junojunho.tistory.com/3