Thanks to visit codestin.com
Credit goes to github.com

Skip to content

HTTP vs Socket #60

@Youngminah

Description

@Youngminah

HTTP

  • 단방향 통신
  • Client의 요청(Request)이 있을 때만 서버가 응답(Response)하여 해당 정보를 전송하고 곧바로 연결을 종료하는 방식
    image


Socket

  • port를 이용한 연결 지향형 양방향 통신
  • Server와 Client가 실시간으로 데이터를 주고받는 상황이 필요한 경우에 사용
  • 실시간 동영상 Streaming이나 온라인 게임 등과 같은 경우에 자주 사용
    image


채팅은 왜 Socket통신으로 해야할까? ⭐️

  • 우선 HTTP를 Persistent한 형태라고 해도 Keep alive한 시간이 있다. ( Timeout기준시간이라 보면됨)
  • 그 시간 동안 만약 채팅이 오지 않으면 연결이 끊기게 되고,
  • 다시 연결을 하려고 하면 또다시 연결에 필요한 오버헤드를 갖게 된다.
  • 그리고 이것보다도 프로젝트를 하면서 분명히 알았던 이유 ,
  • 메세지는 나만 보내는 것이 아닌, 상대에게서도 와야한다.
  • 이말은, 내가 요청을 안해도 상대한테서 메세지가 올수 있다는것.
  • 그렇기 때문에 단반향 통신인 HTTP로는 해결할 수 없다.
  • 따라서 채팅 때는 소켓통신을 열어 HTTP 보다 리소스가 많이 소모되긴 하지만 양방향 통신이 필요함.


Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions