Puis-je utiliser TCP dans un service RESTful?
RESTE est à l'aide des fonctionnalités du Web et de l'application de certains principes sur elle pour la rendre plus efficace. Il utilise les verbes HTTP standard pour la communication et prendre l'aide de ses apatrides de la nature.
Cependant, est-il possible qu'un service REST utiliser le protocole TCP pour sa communication? Si oui, alors il viole ses principes?
source d'informationauteur funsukvangdu
Vous devez vous connecter pour publier un commentaire.
HTTP est un protocole TCP/IP basé sur le protocole. Ainsi, lorsque vous utilisez le REPOS que vous êtes déjà à l'aide de TCP pour la communication. Mais si vous souhaitez utiliser RESTE plus pure socket TCP, sans HTTP, alors non, ce n'est pas logique parce que le REPOS est basé sur HTTP verbes et les en-têtes. Ces notions n'existent que dans le protocole HTTP.
Angle légèrement différent:
1 . Ne pas utiliser WCF pour créer RESTE en fonction des services. Utilisation Asp.Net WebAPI.
2 . Juste pour le fun: si vous souhaitez utiliser WCF TCP liaisons avec le "RESTE" des principes à l'esprit, peut-être vous pouvez créer un apatride API basée sur "ressources" à la place d'un type RPC.
De cette façon, vous n'aurez pas à définir contrat différent pour chaque service et il suffit de régler vos ressources pour différentes interactions.
NOTE: je ne dis pas à personne de le faire: c'est de réinventer la roue. Utilisation WebAPI si vous souhaitez vous REPOSER.
Que Darin déjà réponduHTTP est un protocole TCP avec une surcharge, c'est exactement ce qui est utilisé dans la définition Reposant. Donc, non, vous ne pouvez pas supprimer le HTTP généraux.
Je crois que votre question "puis-je utiliser TCP pour une plus Reposante app?" est lié à la question "Pourquoi tant de nombreux sites web utilisent REPOS si HTTP est plus lent que pure TCP?".
La vérité est la suivante: HTTP est en effet plus lent que le pur binaire TCP forme, mais dans plus applications, votre les utilisateurs ne remarqueront pas la différence parce que la surcharge est vraiment très petit, et généralement, le client va faire quelques requêtes par minute.
Par exemple:
GET /posts?userId=5
Si cette requête prend plus que quelques millisecondes pour terminer, le problème n'est pas dans le protocole HTTP. Le problème est lié à la latence du réseau, avec votre code côté serveur et comment vous êtes la récupération de données à partir de votre base de données.
D'autre part, si votre code client est faire des milliers de requêtes par minute, donc ce seul client remarquerez un problème de performance liés avec le HTTP généraux. Dans ce cas, vous pourriez peut-être le lot de nombreuses opérations en une seule opération et de réduire la quantité de requêtes réseau.
Si un seul client a vraiment besoin de faire des milliers de requêtes par minute, alors vous pouvez penser à éviter de REPOS et de commencer la recherche d'une autre approche. Juste rappelez-vous que le SAVON peut utiliser une liaison TCP, mais les demandes ont également des frais généraux pour analyser les XMLs. Aussi, le SAVON est dynamique et HTTP est sans état. Une approche dynamique de pire pour l'évolutivité.
Vous ne pouvez pas utiliser d'autres de liaison à l'exception de Http pour le Repos en fonction des services. C'est en raison de Rest est un style d'architecture qui repose sur certains principes. L'un de ce principe est de prendre l'aide de protocole sans état de web qui est http, aussi il veulent aussi Http mots tels que Get, Port,Put et Delete à utiliser et qui ne sont pas disponibles au Protocole TCP