HTTP jest warstwą wbudowaną w warstwę TCP dla niektórych elementów, które standaryzują transmisję danych. Naturalnie używanie gniazd TCP będzie mniej uciążliwe niż korzystanie z protokołu HTTP. Jeśli zależy nam tylko na wydajności, to zwykły TCP jest najlepszym rozwiązaniem dla Ciebie.
Możesz rozważyć HTTP ze względu na łatwość obsługi i prostotę, która ostatecznie skraca czas programowania. Jeśli robisz coś, co może być bezpośrednio wykorzystane przez przeglądarkę (przez wywołanie AJAX), powinieneś użyć HTTP. Aby nieistniejąca przeglądarka bezpośrednio korzystała z połączeń TCP bez HTTP, musiałbyś używać Flasha lub Silverlight i zwykle dzieje się tak w przypadku treści bogatych, takich jak wideo i/lub audio. Jednak wiele współczesnych przeglądarek (od 2013 r.) Obsługuje interfejsy API, aby uzyskać dostęp do zasobów sieciowych, audio i wideo bezpośrednio za pośrednictwem JavaScript. Jedyne, co należy wziąć pod uwagę, to stopień wykorzystania nowoczesnych przeglądarek internetowych wśród użytkowników; patrz caniuse.com, aby uzyskać najnowsze informacje dotyczące zgodności przeglądarki.
Jeśli chodzi o testy porównawcze, jedyną rzeczą, jaką znalazłem, jest this. Patrz strona 5, ma wykres wydajności. Zauważ, że tak naprawdę nie porównuje jabłek z jabłkami, ponieważ porównuje opcję danych TCP/Binary z opcją danych HTTP/XML. Co nasuwa pytanie: jakie dane są na temat twoich usług? binarny (wideo, audio, pliki) lub tekst (JSON, XML, HTML)?
W ogólnym systemie zorientowanym na wydajność, takim jak w sektorze wojskowym lub finansowym, prawdopodobnie będą używane zwykłe połączenia TCP. Gdzie jako ogólne firmy skoncentrowane na sieci zdecydują się korzystać z HTTP i używać usług IIS lub Apache do hostowania swoich usług.
To zależy od tego, co chcesz zrobić. Czy masz więcej informacji na temat usług, z którymi rozmawia aplikacja internetowa? Czy prośby jednorazowe (tj. Pytanie, odpowiedź) czy rozmowa ma miejsce z kilkoma pytaniami i odpowiedziami? –