2014-12-17 2 views
3

RESTful HTTP 서비스가 백엔드 통신에서도 인기가 높은 이유는 무엇입니까?RESTful HTTP 서비스와 백엔드 통신을위한 직접 TCP 또는 웹 소켓

  1. 는 HTTP 단방향 요청 - 응답 패러다임을 사용하는 전체되지 않습니다 :

    나는 주로하기 때문에 낮은 대기 시간 및/또는 높은 처리량을 요구하는 백엔드에 대한 HTTP-REST을 선택하지 않을 것 -duplex 스트리밍.

  2. HTTP는 패킷 길이 및 오버 헤드 인 다른 정보를 의미합니다.

많은 오픈 소스 프로젝트에서 RESTful 웹 서비스를 볼 수 있으며 대기 시간이 짧고 처리량이 많다고 주장합니다. 예를 들어 RESTful 마이크로 서비스를 생성하고 서버 측 애플리케이션에 경량 http 서버를 내장하는 것이 일반적입니다.

대신 TCP를 통해 WebSockets (물론 HTTP 업그레이드를 통해)을 사용할 수 있습니다.

HTTP가 어떻게하면 더 낮은 레이어의 TCP인지 잘 알고 있습니다. 그러나 HTTP-REST가 전문 용어이며 간단한 이유만으로 다른 장점을 사용해야한다는 점을 제외하고는 설명해주십시오. 사람들이 새로운 기술을 채택하기 때문에 새로운 기술 제품에 자신의 방법을 만들 때까지

답변

3

편안하고 HTTP가 WebSocket을 반면 잘 설립 된 기술은 하나 개의 측면에서 여름 2014

동안 W3C 권고안이되었다, 그것은 시간이 좀 걸립니다 매우 자주 웹 소켓을 갖기 위해 제품을 다시 작성하기를 원하지 않습니다.

더 중요한 것은 RESTful HTTP와 웹 소켓은 완전히 다른 기술입니다. RESTful HTTP는 상태 비 저장이므로 확장 성이 뛰어난 응용 프로그램을 작성할 수 있습니다. 다른 손에있는 WebSocket은 양방향이므로 서버와 클라이언트 양쪽 모두 통신을 트리거 할 수 있습니다. 따라서 최종 결정은 시나리오를 기반으로해야합니다. 과거에는 RESTful HTTP가 완벽한 솔루션이었고 오늘날에도 여전히 그렇습니다. 반면에 실시간 통신이나 서버 기반 이벤트가 필요한 시나리오에서는 WebSocket의 이점을 누릴 수 있습니다.

중요한 것은 : 이제부터는 선택의 여지가 있습니다!

+0

감사합니다. 귀하의 답변에 동의합니다. 그것은 단지 백엔드 수준에서도 HTTP-REST를 적용하는 아이디어가 나를 혼란스럽게합니다. –

+0

거의 모든 시스템에서 HTTP (서버/클라이언트)를 구현할 수 있습니다. 따라서 시스템 간 통신이 탁월합니다. 또한 대부분의 개발자는 인터페이스를 쉽게 맞출 수있는 HTTP "어휘"에 익숙합니다 (인터페이스 반환 코드를 결정할 필요없이 HTTP RFC가 제공합니다!). – supertopi