Pertanyaan Mengapa proksi HTTP mampu mendukung protokol seperti IRC dan FTP?


Saya memahami bahwa proxy SOCKS hanya membuat koneksi pada level TCP sementara proksi HTTP menafsirkan lalu lintas pada tingkat HTTP. Jadi proxy SOCKS dapat bekerja untuk semua jenis protokol sementara Proxy HTTP hanya dapat menangani lalu lintas HTTP. Tapi mengapa Proxy HTTP seperti Squid dapat mendukung protokol seperti IRC, FTP? Ketika kami menggunakan HTTP Proxy untuk koneksi IRC atau FTP, apa yang secara khusus terjadi? Apakah ada metadata yang ditambahkan ke paket saat dikirim ke proksi melalui protokol HTTP?


32
2017-08-19 11:53


asal


Jawaban:


Proxy HTTP dapat mendukung protokol tingkat tinggi selain HTTP jika mendukung metode CONNECT, yang terutama digunakan untuk koneksi HTTPS, berikut adalah deskripsi dari wiki Squid:

Metode CONNECT adalah cara untuk melakukan tunnel pada koneksi apa pun melalui proxy HTTP. Secara default, proxy menetapkan koneksi TCP ke server yang ditentukan, merespons dengan respons HTTP 200 (Connection Establish), dan kemudian menyekop paket bolak-balik antara klien dan server, tanpa memahami atau menafsirkan lalu lintas yang ditentukan

Jika perangkat lunak klien mendukung koneksi melalui proxy 'HTTP CONNECT'-enabled (HTTPS), dapat berupa protokol tingkat tinggi yang dapat bekerja dengan proksi semacam itu (VPN, SSH, SQL, kontrol versi, dll.)


15
2018-02-27 10:58



Seperti yang telah disebutkan orang lain, metode "HTTP CONNECT" memungkinkan Anda untuk membuat koneksi berbasis TCP apa pun melalui proxy. Fungsionalitas ini diperlukan terutama untuk koneksi HTTPS, karena untuk koneksi HTTPS, seluruh permintaan HTTP dienkripsi (sehingga tampaknya proxy sebagai "koneksi TCP" tanpa arti). Dengan kata lain, sesi HTTPS melalui proxy, atau sesi SSH / FTPS melalui proxy, keduanya akan muncul sebagai "sesi terenkripsi" ke proxy, dan tidak dapat membedakan mereka, sehingga harus baik izinkan mereka semua atau tidak satupun dari mereka.

Selama operasi normal, proxy HTTP menerima permintaan HTTP, dan "cukup pintar" untuk memahami permintaan agar dapat melakukan hal-hal tingkat tinggi dengannya (misalnya mencari temboloknya untuk melihat apakah itu dapat melayani respons tanpa pergi ke tujuan server, atau berkonsultasi dengan daftar putih / daftar hitam untuk melihat apakah URL ini diizinkan, dll.). Dalam mode "CONNECT", semua ini tidak terjadi. Proksi menetapkan koneksi TCP ke server tujuan, dan hanya meneruskan semua lalu lintas dari klien ke server tujuan dan semua lalu lintas dari server tujuan ke klien. Itu berarti setiap protokol TCP dapat berfungsi (HTTPS, SSH, FTP - bahkan HTTP biasa)


5
2017-08-18 02:19