淺談HTTP代理和HTTPS代理!討論Http代理和HTTPS代理的工作職責的區別。第一,在HTTP階段,大部分都是RFC7230中描述的通用代理。這種代理人扮演著“中間人”游戲的角色。對于與之連接的客戶端,是服務器端;對于要連接的服務器,它是客戶端。
負責雙方中間來回傳輸HTTP消息的格式。其過程如下:
1.客戶端瀏覽器將請求原封不動地發送到ip代理服務器。
2.ip代理服務器從HttpHeader獲取目標的主機地址,并將請求發送到目標服務器。
3.目標服務器將回復發送回ip代理服務器。
4.ip代理服務器將回復發送回客戶端瀏覽器。對于客戶端瀏覽器,ip代理服務器是目標web服務器。就web服務器而言,它會以代理為客戶端,根本找不到真正的客戶端。這種ip代理服務器比較簡單,大部分都是原封不動的透明傳輸,主要是第二步,所以一定要從頭部識別目標主機地址。
第二,到了Https階段,這種方法就不好了。ip代理服務器是一個web服務器,它破壞了客戶端的TLS數據庫和Internet服務器之間的加密連接。這時候使用RFC中定義的隧道構建代理模式就很重要了,它是基于Webip代理服務器,使用隧道構建模式按照TCP傳輸契約。
其關鍵因素是:
1.瀏覽器開始,消息推送HttpConnect到ip代理服務器,消息推送目標服務器信息。
2.ip代理服務器與目標服務器建立tcp鏈接,并向瀏覽器響應連接建立響應。
3.瀏覽器將請求發送到ip代理服務器,ip代理服務器將請求傳輸到目標服務器。
4.目標服務器會回復ip代理服務器,ip代理服務器會回復瀏覽器。在這種方式下,很像Sock5等代理合同,ip代理服務器完全是透明管道。只是建立了一個基于http契約的管道。連接建立后,ip代理服務器只起到共享的作用。理論上,它還可以共享其他TCP契約。