ftp 客戶端 使用http代理 源碼_代理服務器連接HTTPS過程

說到HTTPS代理很多人瞬間就會聯想到HTTPS的各種證書和各種加密,覺得很高端很復雜的樣子。其實不然,代理服務器不需要配置證書、也不需要處理任何加密。因為HTTPS代理是通過Web隧道(Web tunnel)工作的。

Web隧道允許用戶通過HTTP連接發送非HTTP流量(例如FTP,Telnet,SMTP),這就使得那些使用非HTTP協議的應用程序可以通過HTTP代理工作了。你現在應該就明白了為什么QQ可用設置使用HTTP代理工作。Web隧道這么強大,但它并不復雜。

Web隧道是用HTTP協議的CONNECT方法建立起來的。CONNECT方法不是HTTP/1.1核心規范的一部分,但確是一種得到廣泛應用的擴展。客戶端通過CONNECT方法請求代理服務器創建一條到達任意目的服務器和端口的TCP鏈接,代理服務器僅對客戶端和服務器之間的后續數據進行盲轉發(只是轉發,不關心、也不懂發送的內容是什么)。

建立Web隧道的詳細步驟如下:

1) 客戶端通過HTTP協議發送一條CONNECT方法的請求給代理服務器,告知代理服務器需要連接的主機和端口。

例如:

CONNECT www.alipay.com:443 HTTP/1.1

User-agent: Mozilla/5.0

在本例中客戶端通過CONNECT方法請求代理服務器打開一條到www.alipay.com主機443端口的TCP鏈接。

2) 代理服務器一旦建立了和目標主機(上例中的www.alipay.com:443)TCP連接,就會回送一條HTTP 200 Connection Established應答給客戶端。

例如:

HTTP/1.1 200 Connection Established

Poryx-Agent: Squid/3.2

3) 此時隧道就建立起來了。客戶端通過該HTTP隧道發送的所有數據都會被代理服務器(通過之前建立起來的與目標主機的TCP連接)原封不動的轉發給目標服務器。目標服務器發送的所有數據也會被代理服務器原封不動的轉發給客戶端。注意:是原封不動的轉發,代理服務器并不需要知道內容的含義,也不會嘗試去對內容進行解析。

d9d0f9f675d9bbba6cd6c77be279c43e.png

http://www.site-digger.com/html/articles/20151203/107.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/396731.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/396731.shtml
英文地址,請注明出處:http://en.pswp.cn/news/396731.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python解zuobiaoxi方程_Python還能解決數學相關問題?大學生:以后就靠他了,事半功倍...

問題背景高等數學應用非常廣,基本上涉及到函數的地方都要用到微積分,還有在幾何方面也是如此,計算機的應用讓我們能簡單快速處理各種高等數學中的計算,比如極限、導數、積分、微分方程等的計算。實驗目的使用 Python 通過計算與作…

Android版:驗證手機號碼的正則表達式 (轉)

/** * 驗證手機格式 */ public static boolean isMobileNO(String mobiles) { /* 移動:134、135、136、137、138、139、150、151、157(TD)、158、159、187、188 聯通:130、131、132、152、155、156、185、186 電信:133、…

基礎正則表達式介紹與練習

基礎正則表達式介紹與練習 一、什么是正則表達式 在做文字處理或編寫程序時,用到查找、替換等功能,使用正則表達式能夠簡單快捷的完成目標。簡單而言,正則表達式通過一些特殊符號的幫助,使用戶可以輕松快捷的完成查找、刪除、替換…

android canvas 網絡圖,【巨坑:toDataURL】canvas合成網絡圖片

不知有沒有小伙伴用過canvas合成圖片,然后爆炸報錯截圖尼瑪,然后各種搜索,不外乎以下幾種坑爹處理方案:后端處理,比如Access-Control-Allow-Origin "*"(要是請求到其他網站的圖片就不適用了,比如…

水晶報表如何查看sql_有了這個報表工具,一鍵生成自定義的各種報表,還可以導出Excel...

EasyReport是一個簡單易用的Web報表工具,它的主要功能是把SQL語句查詢出的數據轉換成報表頁面, 同時支持表格的跨行(RowSpan)與跨列(ColSpan)配置。 同時它還支持報表Excel導出、圖表顯示及固定表頭與左邊列的功能。功能介紹本工具從數據庫(MySQL,Oracle,SQLServer,…

python 三維向量 交互_Blender實現Nature of Code1.5單位向量[Nature of Node 004]

【Nature of Node #004】Blender創意編程進階應用:實現Nature of CodeNature of Code 1.5, Unit Vector (Normalize)背景介紹這個系列“Nature of Node”,是專門用Blender的Node(節點)方式來實現Nature of Code。用到一個Blender插…

Sitemesh3的使用及配置

1 . Sitemesh 3 簡介 Sitemesh 是一個網頁布局和修飾的框架,基于 Servlet 中的 Filter,類似于 ASP.NET 中的‘母版頁’技術。參考:百度百科,相關類似技術:Apache Tiles。 官網:http://wiki.sitemesh.org/wi…

等保項目流程

等級保護:直屬管理公安局 產品必須通過公安局安全許可證分級保護:直屬管理保密局 產品必須通過保密局銷售許可證等級保護:一般分為5級,目前最高用到是等保4級總概:定級——前期調研——總…

鴻蒙系統r如何升級,高歌猛進,鴻蒙系統升級機型再次確認,花粉:終等到!...

雖然華為手機現在的壓力非常大,但是在前進的道路上,真的充滿了樂觀精神,而且現在也算是一路高歌猛進了,發展路線開始加快了許多,無論是新機還是系統,都有著非常多的新消息。因為華為手機的實力很強&#xf…

Oracle快速備份表數據

Oracle數據庫中備份表數據。 例子: 1 create table table_name_bak as select * from table_name 1 create table table_name_bak as select * from table_name 2 where table_name.date between TO_DATE(2018-09-25,yyyy-MM-dd) and TO_DATE(2018-09-26,yyyy-MM-d…

git pull

今天在服務器上git pull是出現以下錯誤: error: Your local changes to the following files would be overwritten by merge: application/config/config.php application/controllers/home.php Please, commit your changes or stash them before you can merge. …

jq控制div是否展示_jQuery控制多個DIV的顯示和隱藏

問題補充&#xff1a;這是我寫的JSfunction Previous(){for(var i1;i<3;i){if(document.getElementById("d"i).style.display"block"){document.getElementById("d"(i-1)).style.display"block";}document.getElementById("d&…

C# 線程間不能調用剪切板的問題

最近做一個項目&#xff0c;需要用到線程&#xff0c;而且要用到剪切板&#xff0c;創建了一個子線程之后發現在子線程中剪切板上獲取不到數據&#xff0c;當時特別納悶&#xff0c;上網查資料&#xff0c;最后終于搞定&#xff0c;現將解決方法歸納如下&#xff1a; 第一步&am…

android studio背景模糊_[Android翻譯]CameraX:過去、現在和未來的一瞥

CameraX是一個未捆綁的Android Jetpack庫&#xff0c;它可以幫助你在Android應用中輕松添加攝像頭功能。傳統上&#xff0c;由于Android設備種類繁多&#xff0c;編程模型復雜&#xff0c;在Android上構建具有相機功能的應用程序非常困難。現在成千上萬的開發者都在使用CameraX…

html頁面根據分辨率縮放,html2Canvas根據不同分辨率,生成pdf內容自適應

根據屏幕大小不同&#xff0c;頁面內容自適應并一頁展示&#xff0c;應該如何實現// 導出頁面為PDF格式import html2Canvas from html2canvasimport JsPDF from jspdfexport default{install (Vue, options) {Vue.prototype.getPdf function () {setTimeout(() > {var titl…

【agc002f】Leftmost Ball(動態規劃)

【agc002f】Leftmost Ball&#xff08;動態規劃&#xff09; 題面 atcoder洛谷 題解 我們從前往后依次把每個顏色按順序來放&#xff0c;那么如果當前放的是某種顏色的第一個球&#xff0c;那么放的就會變成\(0\)號顏色&#xff0c;所以無論何時&#xff0c;\(0\)號顏色的數量不…

VS2010中的快捷鍵

一. VS2010中的快捷鍵 1&#xff1a; Ctrl Enter &#xff08;在光標指定位置的上 K C &#xff08;注釋&#xff09; Ctrl E U &#xff08;取消注釋&#xff09;  <>  Ctrl K U &#xff08;取消注釋&#xff09; 5&#xff1a; Tab &#xff08;增加縮進&a…

export function函數傳參_04 js高階函數(惰性函數、柯里化函數、compose函數)和單例設計模式...

高階函數的定義在《javascript設計模式和開發實踐》中是這樣定義的。函數可以作為參數被傳遞&#xff1b;函數可以作為返回值輸出。結合這兩個特點&#xff0c;首先想到的肯定是回調函數&#xff0c;回調函數也是高階函數的一種&#xff0c;除了回調函數&#xff0c;還有很多的…

Javascript構造函數的繼承

僅供學習參考&#xff0c;原文鏈接&#xff1a;http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_inheritance.html 今天要介紹的是&#xff0c;對象之間的"繼承"的五種方法。 比如&#xff0c;現在有一個"動物"對象的構造函數。 funct…

python輸入字符串str_python字符串(str)

#value "raitOrEi"#v value.capitalize()#首字母大寫#print(v)#v1 v.casefold()#全部變小寫&#xff0c;不只是英文的&#xff0c;其他語言特殊的大小寫也變換#print(v1)#v2 v.lower()#只是英文變小寫#print(v2)#設置寬度&#xff0c;并將內容居中#20 代指總長度…