Condividi tramite


Terminologia di rete (WinHTTP)

Quando si sviluppa un'applicazione che usa i servizi HTTP di Microsoft Windows (WinHTTP), è importante comprendere i concetti e la terminologia seguenti correlati alla rete in generale e al protocollo HTTP in particolare.

Transazioni HTTP

Quando si lavora con le transazioni HTTP, si scambiano informazioni con un altro computer in un'altra posizione in una rete. Le informazioni scambiate possono essere un file contenente testo o elementi multimediali oppure i risultati di una query di database. Una parte di informazioni scambiate in una rete è denominata risorsa . In genere il computer che invia una risorsa è il server e il computer che riceve tale risorsa è un client. Tuttavia, è anche possibile che un client pubblicherà i dati in un server. A volte una transazione HTTP comporta un server di livello intermedio. Un server di livello intermedio raccoglie diverse risorse da altri server, compila le informazioni in una risorsa e invia tale risorsa al client.

Il processo di recupero di una risorsa tramite il protocollo HTTP richiede che venga scambiata una serie di messaggi tra il client e il server. Il client avvia la transazione inviando un messaggio che richiede una risorsa. Questo messaggio viene chiamato richiesta HTTP o a volte solo una richiesta. Una richiesta HTTP è costituita dai componenti seguenti.

  • Metodo, URI (Uniform Resource Identifier), numero di versione del protocollo
  • Intestazioni
  • Corpo dell'entità

Quando un server riceve una richiesta, risponde inviando un messaggio al client. Il messaggio inviato dal server è denominato risposta HTTP. Una risposta HTTP è costituita dai componenti seguenti.

  • Numero di versione del protocollo, codice di stato, testo di stato
  • Intestazioni
  • Corpo dell'entità

La risposta indica che la richiesta non può essere elaborata o fornisce informazioni richieste. A seconda del tipo di richiesta, può trattarsi di informazioni su una risorsa, ad esempio le dimensioni e il tipo, oppure può essere una o tutte le risorse stesse. La parte di una risposta che include alcune o tutte le risorse richieste viene chiamata "dati di risposta" o "corpo dell'entità" e la risposta non viene completata fino a quando non vengono ricevuti tutti i dati di risposta.

Per informazioni dettagliate sulle transazioni HTTP e sul protocollo HTTP, vedere RFC 2616, Hypertext Transfer Protocol — HTTP/1.1.

Server proxy

Anche se una richiesta inviata da un client viene infine ricevuta dal server di destinazione, a volte la transazione passa prima attraverso un server proxy. Un proxy intercetta la richiesta e può anche modificare la richiesta prima di inviarla al server. Quando il server risponde, la risposta passa anche attraverso il proxy prima che venga inoltrata al client. Il proxy può modificare le intestazioni in questa risposta.

Intercettando e traducendo le transazioni di rete, un proxy può:

  • Proteggere il client monitorando transazioni potenzialmente pericolose.
  • Consentire al client di comunicare usando protocolli che potrebbero non essere implementati dal software client.
  • Fungere da gateway tra una rete privata e una rete pubblica.

L'API WinHTTP include uno strumento di configurazione proxy che consente di fornire a WinHTTP informazioni su tutti i server proxy che intercettano le transazioni HTTP. Per informazioni sull'uso dello strumento di configurazione proxy, vedere ProxyCfg.exe, uno strumento di configurazione proxy.

Modalità sincrone e asincrone

Esistono due modelli di programmazione per ottenere risorse in una rete usando WinHTTP, ovvero i modelli sincroni e asincroni. In un modello sincrono, una chiamata a una funzione o a un metodo non viene completata fino al completamento dell'operazione richiesta o fino a quando non si verifica un errore. Ad esempio, quando l'applicazione richiede una risorsa usando WinHTTP in modo sincrono, non continua con il passaggio successivo fino a quando non vengono ricevuti i dati richiesti.

Un modello asincrono, d'altra parte, consente a un'applicazione di eseguire altre attività mentre attende il recupero della risorsa. Se viene chiamata un'altra funzione o metodo WinHTTP e non è stata completata un'operazione precedente, la funzione restituisce un errore. Quando si usa WinHTTP in modo asincrono, gli eventi COM (Component Object Model) e il callback sono disponibili per notificare a un'applicazione lo stato di avanzamento in un'operazione HTTP.

Autenticazione

L'autenticazione è il processo tramite il quale un proxy HTTP o un server HTTP convalida le informazioni di accesso di un utente prima di consentire l'accesso alle risorse. In Internet vengono usati vari schemi di autenticazione. In genere il nome e la password di un utente vengono confrontati con un elenco autorizzato e, se il sistema rileva una corrispondenza, l'accesso viene concesso nella misura specificata nell'elenco di autorizzazioni per l'utente.

Le funzioni WinHTTP supportano sia l'autenticazione server che l'autenticazione proxy per le sessioni HTTP. WinHTTP supporta gli schemi di autenticazione seguenti: Basic, Digest (vedere RFC 2617), NTLM Authentication, Negotiate/ Kerberose Microsoft Passport 1.4. Per informazioni dettagliate sull'autenticazione, nonché un esempio di uso dell'autenticazione in un'applicazione Microsoft Visual C++, vedere autenticazione in WinHTTP.

Per informazioni sulle considerazioni sulla sicurezza relative all'autenticazione di base e Passport, vedere Considerazioni sulla sicurezza winHTTP.