Compartilhar via


Terminologia de rede (WinHTTP)

Ao desenvolver um aplicativo que usa o WinHTTP (Microsoft Windows HTTP Services), é importante entender os conceitos e a terminologia a seguir 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 arquivo que contém texto ou multimídia ou podem ser os resultados de uma consulta de banco de dados. Uma parte das informações trocadas por uma rede é chamada de de recurso de. Normalmente, o computador que envia um recurso é o servidor e o computador que recebe esse recurso é um cliente. No entanto, também é possível que um cliente poste 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 uma solicitação. Uma solicitação HTTP consiste nos seguintes componentes.

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

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

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

A resposta indica que a solicitação não pode ser processada ou fornece 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 algum ou todo o recurso em si. A parte de uma resposta que inclui alguns ou todos os recursos solicitados é chamada de "dados de resposta" ou "corpo da entidade", e a resposta não é concluída 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, Protocolo de Transferência de Hipertexto — 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 intercepta a solicitação e pode até modificar a solicitação 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 nessa resposta.

Ao interceptar 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.
  • Atue 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 ao WinHTTP informações sobre todos os servidores proxy que interceptam 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íncronos e assíncronos

Há dois modelos de programação para obter recursos em uma rede usando WinHTTP: os modelos síncronos e assíncronos. 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 sejam recebidos.

Um modelo assíncrono, por outro lado, permite que um aplicativo execute outras tarefas enquanto aguarda a recuperação do recurso. 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 de progresso em uma operação HTTP.

Autenticação

A autenticação é o processo pelo qual um proxy HTTP ou servidor HTTP valida as informações de logon 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 detectar uma correspondência, o acesso será concedido na extensão especificada na lista de permissões para o usuário.

As funções WinHTTP dão suporte à autenticação de servidor e proxy para sessões HTTP. O WinHTTP dá suporte aos 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 como usar a autenticação em um aplicativo do Microsoft Visual C++, consulte Authentication in WinHTTP.

Para obter informações sobre considerações de segurança sobre autenticação Básica e passport, consulte Considerações de segurança do WinHTTP.