¿Cuál es la diferencia entre la programación de sockets y la programación Http? alguien puede ayudar por favor?
fuente
¿Cuál es la diferencia entre la programación de sockets y la programación Http? alguien puede ayudar por favor?
HTTP es un protocolo de aplicación. Básicamente significa que HTTP en sí mismo no se puede usar para transportar información hacia / desde un punto final remoto. En cambio, se basa en un protocolo subyacente que en el caso de HTTP es TCP.
Puede leer más sobre las capas OSI si está interesado.
Los sockets, por otro lado, son una API que la mayoría de los sistemas operativos proporcionan para poder hablar con la red. La API de socket admite diferentes protocolos desde la capa de transporte y hacia abajo.
Eso significa que si desea utilizar TCP, utilice sockets. Pero también puede usar sockets para comunicarse usando HTTP, pero luego debe decodificar / codificar mensajes de acuerdo con la especificación HTTP ( RFC2616 ). Dado que eso puede ser una tarea enorme para la mayoría de los desarrolladores, también preparamos clientes en nuestros marcos de desarrollo (como .NET), por ejemplo, WebClient
las HttpWebRequest
clases o .
Con HTTP, usa el protocolo HTTP de alto nivel (que funciona sobre un socket). No tiene sesión, lo que significa que envía una solicitud de texto como
GET google.com
y recibe texto o datos binarios a cambio, después de que se cierra la conexión (en HTTP 1.1, las conexiones persistentes están disponibles)Ejemplo de MSDN:
Con los sockets, vas al nivel inferior y realmente controlas la conexión y envías / recibes bytes sin procesar.
Ejemplo:
fuente
Connection
esté configurado el encabezado;)fuente
La programación HTTP o la solicitud HTTP se utilizan para un acoplamiento flexible y una comunicación de tecnología de lenguaje de plataforma neutral donde se utiliza una programación de socket donde el sistema tiene un protocolo de especificación de lenguaje
fuente
para que dos puntos finales puedan comunicarse entre sí, ambos deben seguir un conjunto de reglas. en la computadora, este conjunto de reglas se llama protocolo.
por ejemplo, para un punto final como el navegador y para otro como un servidor web, ambos deben seguir un conjunto de reglas o protocolo llamado http para poder comunicarse e intercambiar información. por lo que en la World Wide Web y en este tipo de comunicaciones, solo aquellos que hablan en base a este protocolo http pueden comunicarse entre sí.
socket es solo un punto final. podría seguir el protocolo http para entrar en una comunicación en www como un cliente que solicita una página o podría actuar como un servidor que escucha las conexiones. o tal vez podría seguir otro conjunto de reglas o protocolos como ssh, ftp y comunicarse de otras formas.
ahora, en la programación de sockets, puede hacer un socket, vincularlo a una dirección IP y un número de puerto para que actúe como un número de puerto y decirle que siga http, ssh, ftp o lo que desee en función de las comunicaciones que desee utilizar su enchufe para.
fuente