Partilhar via


Terminologia de rede (WinHTTP)

Ao desenvolver um aplicativo que usa o Microsoft Windows HTTP Services (WinHTTP), é importante entender os seguintes conceitos e terminologia relacionados à rede em geral e ao protocolo HTTP em particular.

Transações HTTP

Quando você trabalha com transações HTTP, você está trocando informações com outro computador em outro lugar em uma rede. As informações trocadas podem ser um ficheiro que contenha texto ou multimédia, ou podem ser os resultados de uma consulta à base de dados. Uma informação trocada através de uma rede é chamada de recurso. Normalmente, o computador que envia um recurso é o servidor e o computador que recebe esse recurso é um cliente. No entanto, também é possível para um cliente postar dados em um servidor. Às vezes, uma transação HTTP envolve um servidor de camada intermediária. Um servidor de camada intermediária reúne vários recursos de outros servidores, compila as informações em um recurso e envia esse recurso para o cliente.

O processo de obtenção de um recurso usando o protocolo HTTP requer que uma série de mensagens sejam trocadas entre o cliente e o servidor. O cliente inicia a transação enviando uma mensagem que solicita um recurso. Essa mensagem é chamada de solicitação HTTP ou, às vezes, apenas de solicitação. Uma solicitação HTTP consiste nos seguintes componentes.

  • Método, URI (Uniform Resource Identifier), número da versão do protocolo
  • Cabeçalhos
  • Órgão da entidade

Quando um servidor recebe uma solicitação, ele responde enviando uma mensagem de volta para o cliente. A mensagem enviada pelo servidor é chamada de resposta HTTP. Uma resposta HTTP consiste nos seguintes componentes.

  • Número da versão do protocolo, código de status, texto de status
  • Cabeçalhos
  • Órgão da entidade

A resposta indica que o pedido não pode ser processado ou fornece as informações solicitadas. Dependendo do tipo de solicitação, isso pode ser informações sobre um recurso, como seu tamanho e tipo, ou pode ser parte ou todo o recurso em si. A parte de uma resposta que inclui parte ou todo o recurso solicitado é chamada de "dados de resposta" ou "corpo da entidade", e a resposta não estará completa até que todos os dados de resposta sejam recebidos.

Para obter informações detalhadas sobre transações HTTP e o protocolo HTTP, consulte RFC 2616, Hypertext Transfer Protocol — HTTP/1.1.

Servidores proxy

Embora uma solicitação enviada por um cliente seja eventualmente recebida pelo servidor de destino, às vezes a transação passa primeiro por um servidor proxy. Um proxy interceta a solicitação e pode até mesmo modificá-la, antes de enviá-la para o servidor. Quando o servidor responde, a resposta também passa pelo proxy antes de ser encaminhada para o cliente. O proxy pode modificar os cabeçalhos nesta resposta.

Ao intercetar e traduzir transações de rede, um proxy pode:

  • Proteja o cliente monitorando transações potencialmente perigosas.
  • Permitir que o cliente se comunique usando protocolos que podem não ser implementados pelo software cliente.
  • Atuar como um gateway entre uma rede privada e uma rede pública.

A API WinHTTP inclui uma ferramenta de configuração de proxy que permite fornecer informações ao WinHTTP sobre quaisquer servidores proxy que intercetem suas transações HTTP. Para obter informações sobre como usar a ferramenta de configuração de proxy, consulte ProxyCfg.exe, uma ferramenta de configuração de proxy.

Modos síncrono e assíncrono

Há dois modelos de programação para obter recursos em uma rede usando WinHTTP: os modelos síncrono e assíncrono. Em um modelo síncrono, uma chamada para uma função ou método não é concluída até que a operação solicitada seja concluída ou até que ocorra um erro. Por exemplo, quando seu aplicativo solicita um recurso usando WinHTTP de forma síncrona, ele não continua com a próxima etapa até que os dados solicitados tenham sido recebidos.

Um modelo assíncrono, por outro lado, permite que um aplicativo execute outras tarefas enquanto aguarda que o recurso seja recuperado. Se outra função ou método WinHTTP for chamado e uma operação anterior não tiver sido concluída, a função retornará um erro. Ao usar o WinHTTP de forma assíncrona, os eventos COM (Component Object Model) e o retorno de chamada estão disponíveis para notificar um aplicativo sobre o progresso de uma operação HTTP.

Autenticação

A autenticação é o processo pelo qual um proxy HTTP ou servidor HTTP valida as informações de login de um usuário antes de permitir o acesso aos recursos. Vários esquemas de autenticação são usados na Internet. Normalmente, o nome e a senha de um usuário são comparados com uma lista autorizada e, se o sistema detetar uma correspondência, o acesso é concedido na medida especificada na lista de permissões para o usuário.

As funções WinHTTP suportam autenticação de servidor e proxy para sessões HTTP. O WinHTTP suporta os seguintes esquemas de autenticação: Basic, Digest (consulte RFC 2617), NTLM Authentication, Negotiate/ Kerberose Microsoft Passport 1.4. Para obter informações detalhadas sobre autenticação, bem como um exemplo de uso da autenticação em um aplicativo Microsoft Visual C++, consulte Authentication in WinHTTP.

Para obter informações sobre considerações de segurança relacionadas à autenticação básica e do Passport, consulte Considerações de segurança do WinHTTP.