Go, Vantage point
가까운 곳을 걷지 않고 서는 먼 곳을 갈 수 없다.
Github | https://github.com/overnew/
Blog | https://everenew.tistory.com/
HTTP와 Socket의 차이점 (실시간 채팅 서비스로 알아보는)
실시간 채팅 서비스를 만든다고 가정해 보자.이런 서비스에서 HTTP를 기반으로 메시지를 주고받는다면 어떻게 될까? HTTP(7계층)HTTP의 경우 stateless 서비스이다. (연결성의 보장은 4계층인 TCP의 역할)따라서 HTTP는 상대의 요청에 의한 Response만 가능하기 때문에 아래와 같이 클라이언트가 주기적으로 서버에 새로운 메시지의 여부를 물어보게 된다.이러한 과정을 폴링이라고 한다. 이런 과정은 당연히 폴링의 주기에 따라 서버의 부하가 달라진다.실시간 채팅이라면 연결과 해제가 수도 없이 발생하여 비효율적이다. 이런 문제를 해결하기 위해 롱 폴링 기법 사용된다. 롱 폴링은 연결 후 응답이 오거나 time out까지 연결을 유지할 수 있다.하지만 채팅이 적다면 time out마다 재연..
개발/네트워크 & Ubuntu
2024. 9. 19. 16:01