Quelle est la différence entre la programmation de socket et la programmation Http? Quelqu'un peut-il aider s'il vous plaît?
la source
Quelle est la différence entre la programmation de socket et la programmation Http? Quelqu'un peut-il aider s'il vous plaît?
HTTP est un protocole d'application. Cela signifie essentiellement que HTTP lui-même ne peut pas être utilisé pour transporter des informations vers / depuis un point final distant. Au lieu de cela, il repose sur un protocole sous-jacent qui dans le cas de HTTP est TCP.
Vous pouvez en savoir plus sur les couches OSI si vous êtes intéressé.
Les sockets, quant à eux, sont une API fournie par la plupart des systèmes d'exploitation pour pouvoir communiquer avec le réseau. L'API socket prend en charge différents protocoles depuis la couche de transport et vers le bas.
Cela signifie que si vous souhaitez utiliser TCP, vous utilisez des sockets. Mais vous pouvez également utiliser des sockets pour communiquer en utilisant HTTP, mais vous devez ensuite décoder / encoder les messages selon la spécification HTTP ( RFC2616 ). Comme cela peut être une tâche énorme pour la plupart des développeurs, nous avons également préparé des clients dans nos frameworks de développement (comme .NET), par exemple WebClient
les HttpWebRequest
classes ou .
Avec HTTP, vous utilisez un protocole HTTP de haut niveau (qui fonctionne sur une socket). C'est sans session, ce qui signifie que vous envoyez une demande de texte comme
GET google.com
et recevez du texte ou des données binaires en retour, une fois la connexion fermée (dans HTTP 1.1, les connexions persistantes sont disponibles)Exemple MSDN:
Avec les sockets, vous allez au niveau inférieur et contrôlez réellement la connexion et envoyez / recevez des octets bruts.
Exemple:
la source
Connection
tête est défini;)la source
La programmation HTTP ou la requête HTTP est utilisée pour un couplage lâche et une communication de technologie de langage indépendante de la plate-forme où la programmation de socket est utilisée lorsque le système a un protocole de spécification de langage
la source
pour que deux terminaux puissent se parler, ils doivent tous deux suivre un ensemble de règles. en informatique, cet ensemble de règles est appelé protocole.
par exemple, pour un terminal comme un navigateur et pour un autre comme un serveur Web, ils doivent tous deux suivre un ensemble de règles ou un protocole appelé http pour pouvoir communiquer et échanger des informations. Ainsi, dans le World Wide Web et ce type de communications, seuls ceux qui parlent sur la base de ce protocole http pourraient réussir à se parler.
socket n'est qu'un point de terminaison. il pourrait suivre le protocole http pour entrer dans une communication dans www en tant que client demandant une page ou il pourrait agir comme un serveur écoutant les connexions. ou peut-être qu'il pourrait suivre un autre ensemble de règles ou de protocoles comme ssh, ftp et communiquer par d'autres moyens.
maintenant dans la programmation de socket, vous pouvez créer une socket, la lier à une adresse IP et un numéro de port pour agir comme un numéro de port et lui dire de suivre http, ssh, ftp ou tout ce que vous voulez en fonction des communications que vous souhaitez utiliser votre socket pour.
la source