一些企事業單位出于工作和安全的需要,希望可以允許局域網內的電腦終端訪問互聯網,但是不允許發送數據到外網。這個需求從理論上來說其實是矛盾的,以Web訪問為例,當我們去訪問一個網頁的時候,用的是HTTP的GET指令,大概的格式是這樣的:
GET /path/to/resource HTTP/1.1
Host: www.example.com
User-Agent: MyCustomUserAgent/1.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Connection: keep-alive
瀏覽器告訴網站服務器這些信息:需要訪問的URL地址、域名、瀏覽器種類、壓縮類型、連接類型等。這個頭部的大小在RFC的定義中是2K字節,這是明文的HTTP方式。如果是HTTPS方式,還需要證書交換,上傳的數據大約8K字節。換句話說,即使只是瀏覽網站,每一次訪問也需要8K的上傳數據。所以說,只允許訪問但是不允許任何外發數據,這個需求是自相矛盾的,不能得到真正的實現。
雖然嚴格的完全只訪問不上傳是做不到的,但是我們可以通過限定上傳數據的大小來實現這個功能需求。如下圖: