HTTP 통신

Client 요청(Request)이 있을 때만 Server가 응답(Response)하고 곧바로 연결을 종료하는 단방향통신

  • stateless : 요청시마다 스트림을 연결해서 데이터를 주고받음 => 응답 후 연결 끊으니 session필요
  • 기본적으로 소켓 연결 위에서 맺어지는 애플리케이션 계층의 연결 방식
  • 최근에는 성능상의 이유(connetion을 맺고 끊는 비용이 비쌈)로 Keep Alive 옵션을 통해 일정기간 클라이언트와 connection 유지하는 방식으로 통신 가능
  • 필요한 경우에만 Server로 접근하는 콘텐츠 위주의 데이터를 사용할 때 용이


Socket 통신

Client, Server 가 특정 포트를 통해 연결을 유지하고 있어 실시간으로 양방향통신

  • stateful : 연결이 지속되어있음
  • Client, Server 양쪽에서 서로에게 데이터전달
    • Client 가 Server에 요청 보낼 수 있음
    • Server 역시 Client로 요청을 보낼 수 있음
  • 실시간 Streaming or 실시간 채팅과 같이 즉각적으로 정보를 주고받는 경우 용이
    • HTTP통신하면?
      사용자가 서버로 동영상을 요청하기 위해서 동영상 보는동안 계속해서 Http Request를 보내야 함
      계속 연결을 요청하기 때문에 부하
  • 포트 : HTTP(80), HTTPS(443)과 동일한 포트 사용


=> 자주 데이터를 주고받는 환경 : 소켓통신
     아닌경우 : HTTP통신 유리



Reference
https://kotlinworld.com/75?category=999308
https://mangkyu.tistory.com/48?category=762469
https://bitcodic.tistory.com/151

업데이트: