sont des sockets ne sont qu'une connexion entre 2 machines? et si les sockets peuvent être établis, pourquoi utilisons-nous même httpconnection? p>
4 Réponses :
http est un protocole construit sur des sockets. P>
Lorsque vous utilisez HTTP, vous utilisez un niveau d'abstraction plus élevé sur les sockets. Vous utilisez toujours des sockets. P>
C'est un peu comme disant "Pourquoi utiliseriez-vous un document .xyz lorsque vous pourriez simplement utiliser un fichier?" p>
ou "Pourquoi utiliser un ordinateur lorsque vous avez un abaque?".
@NEBUKADNEZZAR - Je ne pense pas que c'est une bonne analogie. On utilise un ordinateur ou un abaque; En utilisant un ordinateur, vous n'utilisez pas implicitement un abaque, la manière dont l'utilisation d'une httpconnection utilise implicitement une prise. Abacus n'est pas une abstraction de l'ordinateur.
@Leguri je pense que vous le comprenez mal. J'utilisais le terme ordinateur comme métaphore pour une calculatrice (surdimensionnée). Mais je vois ton point. :-)
@NEBUKADNEZZAR - Ahhh, je l'obtiens maintenant. Ya, je pense que "calculatrice" aurait été le mot;)
Veuillez noter que http b> est construit sur Sockets B> NOT WebSockets b>. Cela m'a eu confus pendant un moment!
Permet de dire que la prise est juste un flux entre 2 systèmes distants utilisant TCP / IP ou peut-être des protocoles de niveau inférieur à la mise à niveau des données de transport. Et http est le protocole de niveau supérieur qui spécifie comment les systèmes communiquent. P>
petit exemple: l'air est un niveau de transport pour la voix, mais vous avez besoin de mots (un protocole de niveau supérieur) pour la communication avec d'autres ppl. p>
Mais mieux pour vous de lire ici: http://fr.wikipedia.org/wiki/osi_model < / a> p>
LIRE À propos du modèle OSI pour les communications réseau: http://en.wikipedia.org/wiki/osi_model Il devrait faire un bon travail d'explication de chacun de ces composants. p>
Je suppose qu'il s'agit d'une question très générale sur la relation entre les sockets et les connexions HTTP. Je suppose également que "httpconnection" ne fait pas référence à quelque chose impliquant une API / environnement / environnement spécifique, même si c'est un chameau Boîtier Terme avec des espaces enlevés pourraient suggérer autrement. P>
Maintenant que c'est hors de la route, je vous présente, le modèle OSI : < / p>
p>
Le modèle OSI décrit des niveaux d'abstraction pour la communication réseau. Un socket est un concept qui existerait quelque part sur la couche 3, le couche réseau , dans le cadre du protocole Internet (IP) . P>
HTTP est une abstraction plus élevée que la propriété intellectuelle, généralement considérée comme étant en hausse dans la couche d'application, à le "haut" du modèle OSI. p>
Vous pouvez définir le transport et le trafic d'une ville à différentes "couches" de la même manière que nous définissons des trucs de réseau. P>
Deux choses importantes: p>
Premièrement, chaque couche dépend de celui "ci-dessous". Sans bâtiments (destinations) Les routes deviennent idiotes. Sans routes, les lois sur la circulation sont stupides. Sans lois sur la circulation, les feux de circulation sont idiotes. P>
Deuxièmement, les spécificités des couches supérieures varient en fonction de la ville dans laquelle vous vous trouvez: Parfois, vous vous trouvez dans un pays où les gens conduisent à gauche, parfois ils conduisent à droite. Parfois, vous pouvez activer un rouge, parfois pas. Parfois, il y a des routes, mais elles sont sans lois. P>
Donc sur Internet, vous communiquez parfois avec différents types de serveurs. En dessous, ils peuvent tous s'appuyer sur des sockets (les «routes» de lui Internet), mais elles ont tous leurs propres "lois sur la circulation" que vous devez respecter - des protocoles tels que http ou ftp ou savon. P>
Je ne sais pas comment je suis tombé ici et j'aime votre analogie, sauf que je vous ai perdu à la fin, où les spécificités des couches supérieures dépendent de l'endroit où vous êtes. Essayez-vous de dire que HTTP est différent aux États-Unis vs Russie? Bien sûr, il existe différents protocoles, mais le protocole établi par l'ISO doit être constamment mis en œuvre. Au lieu de cela, je changerais d'analogie pour dire que vous avez besoin de lois différentes pour le type de trafic que vous avez - les voitures peuvent vouloir prendre HOV, des camions devront peut-être être pesées - tout le trafic utilise toujours les routes, mais avoir des exigences différentes et suivre différentes exigences. Protocoles.
Quelqu'un peut-il élaborer sur cette réponse pour expliquer ce que l'on entend par un cadre tel que Socket.io ou Firebase en utilisant des "prises"? Je sais sur http et comment il est construit, mais peut-être que la sémantique de dire "il utilise des prises" me jette une balle de courbe. En d'autres termes, je préférerais une explication technique sur l'analogie
Pourquoi avons-nous besoin de voitures quand nous avons des roues?
Il y a du mérite d'utiliser des sockets lorsque vous pouvez contrôler les deux extrémités et vous disposez d'un boîtier d'utilisation spécifique (p. Ex. Poussez la messagerie à une application de bureau). Seul problème est que vous limitez certains types d'environnements qui n'autorisent que http (tel que JavaScript). Si votre cas d'utilisation est un transfert de fichier HTML / BASIC cependant, HTTP présente des avantages en ce sens qu'il contient également des informations pertinentes telles que la longueur du contenu, l'agent utilisateur, etc.