Используйте HTTP, если вам нужны предоставляемые им услуги - например, создание сообщений, кэширование, перенаправление, метаданные контента, частичные ответы, согласование контента - а также большое количество понятных инструментов, реализаций, документации и т. Д. .
Используйте TCP, если вы не можете работать с этими ограничениями. Однако, если вы используете TCP, вы создадите новый протокол приложения, который имеет ряд подводных камней.