WinHTTP) (網路術語

開發使用 Microsoft Windows HTTP Services (WinHTTP) 的應用程式時,請務必瞭解下列與一般網路相關的概念和術語,特別是 HTTP 通訊協定。

HTTP 交易

當您使用 HTTP 交易時,您要與網路上其他位置的另一部電腦交換資訊。 交換的資訊可以是包含文字或多媒體的檔案,也可以是資料庫查詢的結果。 透過網路交換的資訊片段稱為 資源。 傳送資源的電腦通常是伺服器,而接收該資源的電腦則是用戶端。 不過,用戶端也可以將資料張貼到伺服器。 有時候 HTTP 交易牽涉到仲介層伺服器。 仲介層伺服器會從其他伺服器收集數個資源、將資訊編譯成一個資源,並將該資源傳送至用戶端。

使用 HTTP 通訊協定取得資源的程式,需要用戶端與伺服器之間交換一系列訊息。 用戶端會藉由傳送要求資源的訊息來開始交易。 此訊息稱為 HTTP 要求,或有時只是要求。 HTTP 要求包含下列元件。

  • 方法,統一資源識別項 (URI) ,通訊協定版本號碼
  • 標題
  • 實體主體

當伺服器收到要求時,它會透過將訊息傳回用戶端來回應。 伺服器所傳送的訊息稱為 HTTP 回應。 HTTP 回應包含下列元件。

  • 通訊協定版本號碼、狀態碼、狀態文字
  • 標題
  • 實體主體

回應表示無法處理要求,或提供要求的資訊。 視要求類型而定,這可以是資源的相關資訊,例如其大小和類型,也可以是部分或所有資源本身。 包含部分或所有要求資源的回應部分稱為「回應資料」或「實體主體」,且回應在收到所有回應資料之前都不會完成。

如需 HTTP 交易和 HTTP 通訊協定的詳細資訊,請參閱 RFC 2616、超文字傳輸通訊協定 — HTTP/1.1。

Proxy 伺服器

雖然用戶端傳送的要求最終會由目標伺服器接收,但有時交易會先通過 Proxy 伺服器。 Proxy 會攔截要求,甚至可以在將要求傳送到伺服器上之前修改要求。 當伺服器回應時,回應也會在轉送至用戶端之前通過 Proxy。 Proxy 可以修改此回應中的標頭。

藉由攔截和轉譯網路交易,Proxy 可以:

  • 藉由監視潛在的危險交易來保護用戶端。
  • 讓用戶端能夠使用用戶端軟體可能未實作的通訊協定進行通訊。
  • 作為私人網路與公用網路之間的閘道。

WinHTTP API 包含 Proxy 組態工具,可讓您提供 WinHTTP,並提供任何攔截 HTTP 交易之 Proxy 伺服器的相關資訊。 如需使用 Proxy 組態工具的資訊,請參閱 proxy 組態工具ProxyCfg.exe

同步和非同步模式

有兩種程式設計模型可用來使用 WinHTTP 透過網路取得資源,也就是同步和非同步模型。 在同步模型中,在要求的作業完成或發生錯誤之前,對函式或方法的呼叫不會完成。 例如,當您的應用程式以同步方式使用 WinHTTP 要求資源時,它不會繼續下一個步驟,直到收到要求的資料為止。

另一方面,非同步模型可讓應用程式在等候擷取資源時執行其他工作。 如果呼叫另一個 WinHTTP 函式或方法,且先前的作業尚未完成,則函式會傳回錯誤。 以非同步方式使用 WinHTTP 時,元件物件模型 (COM) 事件和回呼可供通知 HTTP 作業中的進度應用程式。

驗證

驗證是 HTTP Proxy 或 HTTP 伺服器在允許存取資源之前驗證使用者登入資訊的程式。 網際網路上使用各種驗證配置。 使用者的名稱和密碼通常會與授權清單進行比較,如果系統偵測到相符專案,則會將存取權授與使用者的許可權清單中所指定的範圍。

WinHTTP 函式同時支援 HTTP 會話的伺服器和 Proxy 驗證。 WinHTTP 支援下列驗證配置:基本、摘要式 (請參閱 RFC 2617) 、 NTLM 驗證、交涉/ Kerberos和 Microsoft Passport 1.4。 如需驗證的詳細資訊,以及在 Microsoft Visual C++ 應用程式中使用驗證的範例,請參閱WinHTTP 中的驗證

如需有關基本和 Passport 驗證的安全性考慮資訊,請參閱 WinHTTP 安全性考慮