Come già Darin answered, HTTP è un protocollo TCP con un sovraccarico che è esattamente ciò che viene utilizzato nella definizione RESTful. Quindi no, non è possibile rimuovere l'overhead HTTP.
credo che la tua domanda "Posso usare TCP per un'applicazione più veloce RESTful?" è correlato con la domanda "Perché così tanti siti web stanno utilizzando REST se HTTP è più lento di TCP puro?".
La verità è: HTTP è infatti più lento rispetto alla forma pura TCP binario, ma in più applicazioni, i tuoi utenti non noteranno la differenza perché il sovraccarico è davvero molto piccola e di solito il cliente farà solo un poche richieste al minuto.
Ad esempio: GET /posts?userId=5
Se la richiesta richiede più di pochi millisecondi per completare, quindi il problema non è nel protocollo HTTP. Il problema di prestazioni è correlato alla latenza della rete, con il codice lato server e il modo in cui si recuperano i dati dal database.
D'altra parte, se il codice cliente sta facendo migliaia di richieste al minuto, quindi questo singolo client noterà un problema di prestazioni relativo al sovraccarico HTTP. In questo caso, forse è possibile eseguire il batch di molte operazioni in un'unica operazione e ridurre la quantità di richieste di rete.
Se un singolo cliente ha davvero bisogno di fare migliaia di richieste al minuto, allora si può pensare di evitare REST e iniziare a cercare un altro approccio. Basta ricordare che SOAP può usare un binding TCP, ma le richieste hanno anche overheads per analizzare gli XML. Inoltre, SOAP è stato e HTTP è senza stato. Un approccio stateful è peggiore per la scalabilità.
Non ho mai sentito dire che i "principi" di REST hanno lo scopo di renderlo più efficiente. –