Compartir a través de


Terminología de red (WinHTTP)

Al desarrollar una aplicación que usa servicios HTTP de Microsoft Windows (WinHTTP), es importante comprender los siguientes conceptos y terminología relacionados con las redes en general y el protocolo HTTP en particular.

Transacciones HTTP

Cuando trabaja con transacciones HTTP, va a intercambiar información con otro equipo en otra parte de una red. La información intercambiada puede ser un archivo que contiene texto o multimedia, o bien puede ser los resultados de una consulta de base de datos. Un fragmento de información intercambiada a través de una red se denomina recurso de . Normalmente, el equipo que envía un recurso es el servidor y el equipo que recibe ese recurso es un cliente. Sin embargo, también es posible que un cliente publique datos en un servidor. A veces, una transacción HTTP implica un servidor de nivel intermedio. Un servidor de nivel intermedio recopila varios recursos de otros servidores, compila la información en un recurso y envía ese recurso al cliente.

El proceso de obtención de un recurso mediante el protocolo HTTP requiere que se intercambie una serie de mensajes entre el cliente y el servidor. El cliente inicia la transacción enviando un mensaje que solicita un recurso. Este mensaje se denomina solicitud HTTP o, a veces, simplemente una solicitud. Una solicitud HTTP consta de los siguientes componentes.

  • Método, identificador uniforme de recursos (URI), número de versión del protocolo
  • Encabezados
  • Cuerpo de la entidad

Cuando un servidor recibe una solicitud, responde enviando un mensaje de vuelta al cliente. El mensaje enviado por el servidor se denomina respuesta HTTP. Una respuesta HTTP consta de los siguientes componentes.

  • Número de versión del protocolo, código de estado, texto de estado
  • Encabezados
  • Cuerpo de la entidad

La respuesta indica que la solicitud no se puede procesar o proporciona información solicitada. Dependiendo del tipo de solicitud, puede ser información sobre un recurso, como su tamaño y tipo, o puede ser parte o todo el propio recurso. La parte de una respuesta que incluye algunos o todos los recursos solicitados se denomina "datos de respuesta" o "cuerpo de entidad", y la respuesta no se completa hasta que se reciben todos los datos de respuesta.

Para obtener información detallada sobre las transacciones HTTP y el protocolo HTTP, vea RFC 2616, Protocolo de transferencia de hipertexto : HTTP/1.1.

Servidores proxy

Aunque el servidor de destino recibe una solicitud enviada por un cliente, a veces la transacción pasa primero a través de un servidor proxy. Un proxy intercepta la solicitud e incluso puede modificar la solicitud antes de enviarlo al servidor. Cuando el servidor responde, la respuesta también pasa a través del proxy antes de que se reenvíe al cliente. El proxy puede modificar los encabezados de esta respuesta.

Al interceptar y traducir transacciones de red, un proxy puede:

  • Proteja al cliente mediante la supervisión de transacciones potencialmente peligrosas.
  • Permitir que el cliente se comunique mediante protocolos que el software cliente podría no implementar.
  • Actúe como puerta de enlace entre una red privada y una red pública.

La API de WinHTTP incluye una herramienta de configuración de proxy que permite proporcionar a WinHTTP información sobre cualquier servidor proxy que intercepte las transacciones HTTP. Para obtener información sobre el uso de la herramienta de configuración de proxy, vea ProxyCfg.exe, una herramienta de configuración de proxy.

Modos sincrónicos y asincrónicos

Hay dos modelos de programación para obtener recursos a través de una red mediante WinHTTP: los modelos sincrónicos y asincrónicos. En un modelo sincrónico, una llamada a una función o método no finaliza hasta que se complete la operación solicitada o hasta que se produzca un error. Por ejemplo, cuando la aplicación solicita un recurso mediante WinHTTP de forma sincrónica, no continúa con el paso siguiente hasta que se hayan recibido los datos solicitados.

Un modelo asincrónico, por otro lado, permite a una aplicación realizar otras tareas mientras espera a que se recupere el recurso. Si se llama a otra función o método WinHTTP y no se ha completado una operación anterior, la función devuelve un error. Cuando se usa WinHTTP de forma asincrónica, los eventos del modelo de objetos componentes (COM) y la devolución de llamada están disponibles para notificar a una aplicación de progreso en una operación HTTP.

Autenticación

La autenticación es el proceso por el que un proxy HTTP o un servidor HTTP valida la información de inicio de sesión de un usuario antes de permitir el acceso a los recursos. Se usan varios esquemas de autenticación en Internet. Normalmente, el nombre y la contraseña de un usuario se comparan con una lista autorizada y, si el sistema detecta una coincidencia, se concede acceso en la medida especificada en la lista de permisos para el usuario.

Las funciones WinHTTP admiten la autenticación de servidor y proxy para sesiones HTTP. WinHTTP admite los siguientes esquemas de autenticación: Básico, Resumen (consulte RFC 2617), autenticación NTLM, Negotiate/ Kerberosy Microsoft Passport 1.4. Para obtener información detallada sobre la autenticación, así como un ejemplo de uso de la autenticación en una aplicación de Microsoft Visual C++, vea Autenticación en WinHTTP.

Para obtener información sobre las consideraciones de seguridad relacionadas con la autenticación Básica y Passport, consulte Consideraciones de seguridad de WinHTTP.