HTTP proxy dan SOCKS5 menyelesaikan tugas yang sama — mengganti alamat Anda di depan server — tetapi melakukannya pada lapisan tumpukan jaringan yang berbeda, dan dari situlah semua hal lainnya mengalir: jenis trafik apa yang mereka lewatkan, apa yang mereka lihat dan dapat ubah, bagaimana perilaku mereka terhadap DNS dan UDP, serta program apa saja yang kompatibel. Kecepatan, bertentangan dengan anggapan umum, hampir tidak relevan di sini. Berikut ini — pembahasan kedua protokol, tabel perbedaan, dan aturan pemilihan yang menyelesaikan sembilan dari sepuluh kasus.
Singkatnya
- HTTP proxy memahami HTTP. Ia membaca permintaan, tahu ke mana Anda pergi, dapat menambahkan header, menyimpan respons di cache, atau memblokir alamat. HTTPS dilewatkannya secara buta melalui perintah
CONNECT. Trafik non-HTTP — bukan urusannya. - SOCKS5 tidak memahami apa pun dan tidak ingin memahami apa pun. Setelah handshake singkat, ia hanya meneruskan byte ke kedua arah: TCP dari protokol apa pun dan, bila perlu, UDP. Di dalamnya bisa apa saja — situs web, email, Telegram, game, torrent.
- Keduanya tidak mengenkripsi trafik dengan sendirinya. Perlindungan data adalah urusan protokol di dalamnya (HTTPS, TLS), bukan proxy.
Pada lapisan mana masing-masing bekerja
HTTP proxy hidup di lapisan aplikasi. Klien mengirimkan permintaan HTTP biasa kepadanya, hanya dengan alamat lengkap di baris pertama (GET http://example.com/page HTTP/1.1), proxy sendiri membuka koneksi ke server, menerima respons, dan memberikannya kepada klien. Seluruh konten melewatinya dalam teks terbuka, dan ia berhak mengubahnya.
Untuk HTTPS skemanya berbeda: klien meminta proxy membangun terowongan dengan perintah CONNECT example.com:443, proxy menghubungkan dua soket dan selanjutnya hanya memindahkan byte terenkripsi. Ia melihat nama host dan port, tetapi tidak melihat path, header, maupun isi permintaan.
SOCKS5 (RFC 1928) berada lebih rendah — antara transport dan aplikasi. Klien bernegosiasi dengan proxy tentang metode autentikasi, menyebutkan alamat tujuan (IPv4, IPv6, atau nama domain) dan port, proxy membuka koneksi dan sejak saat itu menjadi pipa transparan. Ia tidak tahu protokol apa yang ada di dalamnya, dan karena itu bekerja dengan apa pun. Jika Anda perlu menyegarkan dasar-dasarnya, mulailah dengan artikel tentang apa itu proxy server.
Bagaimana HTTP proxy bekerja
Apa yang bisa dilakukannya karena memahami protokol
- Caching. Permintaan berulang ke sumber daya yang sama mungkin tidak sampai ke server — begitulah cara kerja proxy korporat dan penyedia layanan.
- Pemfilteran berdasarkan URL. Proxy melihat alamat dan dapat memblokirnya, memotong pelacak, atau mengalihkan.
- Modifikasi header. Ia dapat menambahkan
Via,X-Forwarded-For, atauForwarded(RFC 7239) — dan dengan demikian mengungkap alamat asli Anda. Ia juga bisa menghapus yang tidak perlu. - Autentikasi. Login dan kata sandi dikirim melalui header
Proxy-Authorization, paling sering dalam skema Basic — yaitu dalam encoding Base64, tanpa enkripsi. Melalui kanal yang tidak aman, keduanya terlihat.
Apa yang tidak bisa dilakukannya
Segala sesuatu yang bukan HTTP. Protokol email, SSH, server game, klien torrent, VoIP — baik tidak bekerja sama sekali melalui HTTP proxy, atau mengharuskan program mampu membungkus koneksi dalam CONNECT dan proxy mengizinkan terowongan semacam itu ke port sembarang. Banyak proxy hanya mengizinkan CONNECT ke port 443.
Tiga tingkat anonimitas
Karena header, HTTP proxy secara tradisional dibagi menjadi tiga kelas. Transparan meneruskan IP asli Anda di X-Forwarded-For dan dengan jujur melaporkan keberadaannya di Via. Anonim menyembunyikan alamat, tetapi tetap meninggalkan header tentang proxy — server memahami bahwa ada perantara di depannya. Elite tidak menambahkan apa pun dan tampak seperti klien biasa. SOCKS5 tidak memiliki klasifikasi ini: ia tidak memiliki akses ke header dan tidak menambahkan apa pun secara definisi.
Bagaimana SOCKS5 bekerja
Handshake
Koneksi dimulai dengan klien mendaftar metode autentikasi yang didukung, dan server memilih satu: tanpa autentikasi, dengan login dan kata sandi (RFC 1929), atau GSS-API. Kemudian klien mengirimkan permintaan dengan perintah, tipe alamat, dan port. Ada tiga perintah: CONNECT — koneksi TCP keluar biasa, BIND — menerima koneksi masuk (diperlukan, misalnya, untuk FTP aktif), UDP ASSOCIATE — membuka relai datagram UDP.
DNS jarak jauh
Perbedaan kunci dari SOCKS4: alamat tujuan dapat dikirimkan sebagai nama domain, dan kemudian nama tersebut diresolusi oleh proxy, bukan komputer Anda. Di curl dan Python perbedaan ini dituangkan ke dalam skema URL: socks5:// meresolusi nama secara lokal, socks5h:// — di sisi proxy. Varian pertama meninggalkan permintaan DNS pada penyedia layanan Anda, varian kedua membawanya pergi bersama trafik. Untuk tugas yang penting agar alamat tidak terlihat, diperlukan socks5h.
UDP
Melalui UDP ASSOCIATE mengalir apa yang tidak cocok untuk TCP: suara dan video di messenger, DNS, sebagian protokol game, QUIC. Dalam praktiknya, UDP melalui SOCKS5 tidak didukung oleh semua server dan tidak semua klien, jadi sebelum membeli proxy untuk tugas semacam itu, hal ini harus diperiksa secara terpisah.
Kata sandi tanpa enkripsi
Login dan kata sandi di SOCKS5 (metode RFC 1929) dikirim dalam teks terbuka, sama seperti di HTTP Basic. Kanal ke proxy tidak terlindungi di keduanya; hanya TLS di dalam koneksi yang membuat trafik aman. Jika penyedia menawarkan autentikasi berdasarkan IP, itu tidak kalah andal dan tidak meninggalkan kata sandi di log program.
Perbedaan utama dalam satu tabel
| Kriteria | HTTP proxy | SOCKS5 |
|---|---|---|
| Lapisan | Aplikasi (memahami HTTP) | Sesi (meneruskan byte) |
| Trafik | HTTP, HTTPS melalui CONNECT | TCP apa pun, opsional UDP |
| Melihat konten | Ya untuk HTTP, hanya host untuk HTTPS | Hanya alamat tujuan |
| Dapat mengubah permintaan | Ya (header, cache, filter) | Tidak |
| Resolusi DNS | Di proxy | Di proxy (socks5h) atau lokal (socks5) |
| Enkripsi | Tidak (hanya pada HTTPS di dalamnya) | Tidak (hanya pada protokol di dalamnya) |
| Autentikasi | Proxy-Authorization, Basic | Login dan kata sandi (RFC 1929), GSS-API, tanpa autentikasi |
| Dukungan di program | Hampir di mana-mana | Luas, tetapi tidak merata |
| Overhead | Parsing header | Minimal |
Kecepatan: mengapa perbedaannya bukan di tempat yang dicari
SOCKS5 tidak mem-parsing header dan tidak menyangga respons, sehingga secara teoretis menghemat mikrodetik pada setiap permintaan. Dibandingkan dengan latensi jaringan ke proxy dan dari proxy ke server, hal itu tidak terlihat. Kecepatan nyata ditentukan oleh empat hal: jarak ke server proxy dan darinya ke tujuan, tipe alamat IP (kanal mobile dan residential lebih lambat daripada datacenter — selengkapnya di artikel tentang tipe proxy), beban server tertentu, dan jumlah koneksi yang Anda buka secara paralel. Protokol tidak ada dalam daftar ini.
Satu-satunya kasus di mana HTTP proxy terasa lebih cepat adalah proxy caching pada konten yang berulang. Satu-satunya kasus di mana SOCKS5 terasa lebih cepat adalah trafik yang melalui HTTP proxy tidak akan lewat sama sekali.
Anonimitas dan kebocoran
Kebocoran alamat melalui proxy terjadi bukan "karena protokol", melainkan karena mekanisme tertentu, dan masing-masing memiliki penyebabnya sendiri.
- Header. HTTP proxy transparan memberikan IP Anda di
X-Forwarded-For. Diobati dengan memilih proxy elite. SOCKS5 tidak memiliki kanal kebocoran ini. - DNS. Jika nama diresolusi secara lokal, penyedia layanan Anda melihat ke mana Anda pergi. HTTP proxy dan
socks5hmeresolusi di sisinya sendiri;socks5— tidak. - WebRTC. Browser dapat mengungkap alamat lokal dan eksternal melalui STUN melewati proxy apa pun. Ini sifat browser, bukan proxy; ditutup dengan pengaturan atau ekstensi.
- Trafik melewati proxy. Proxy dikonfigurasi pada aplikasi. Segala sesuatu yang tidak Anda konfigurasi — pembaruan sistem, browser lain, messenger — mengalir langsung. Jika perlu menutup perangkat secara keseluruhan, itu tugas VPN, lihat proxy versus VPN dan Tor.
Kompatibilitas dengan program
- Browser. Chrome dan Edge mengambil proxy dari pengaturan sistem dan memahami kedua tipe; Firefox memiliki pengaturan sendiri dan dapat "mem-proxy-kan DNS pada SOCKS5" dengan kotak centang terpisah.
- curl.
curl -x http://user:pass@host:portuntuk HTTP,curl -x socks5h://user:pass@host:portuntuk SOCKS5 dengan DNS jarak jauh. - Python. Di
requestsdanhttpx, HTTP proxy bekerja langsung, SOCKS5 — setelah memasang paket tambahan; skemasocks5h://juga mengalihkan resolusi ke proxy. - Telegram, Discord, klien torrent, game. Biasanya hanya SOCKS5: trafiknya bukan HTTP.
- Browser anti-deteksi dan parser. Mendukung keduanya; penyedia proxy mobile dan residential sering memberikan port yang sama di kedua protokol.
- SSH.
ssh -D 1080 user@servermenjalankan proxy SOCKS5 lokal melalui server apa pun yang Anda miliki aksesnya — cara praktis untuk memeriksa bagaimana program berperilaku dengan SOCKS5.
Kapan memilih apa
| Tugas | Pilihan | Alasan |
|---|---|---|
| Browser, bekerja dengan situs web | Apa pun; HTTP lebih sering | Seluruh trafik adalah HTTP(S), dukungan di mana-mana |
| Parsing melalui pustaka HTTP | HTTP atau socks5h | Yang utama — meresolusi DNS di proxy dan tidak mengirim header berlebih |
| Messenger, game, torrent, email | SOCKS5 | Trafik non-HTTP, kadang UDP |
| Banyak akun di browser anti-deteksi | Apa pun; lihat IP, bukan protokol | Antifraud menilai alamat dan fingerprint, bukan cara koneksi |
| Jaringan korporat, kontrol dan cache | HTTP | Memerlukan pemfilteran dan pencatatan berdasarkan URL |
| Privasi perangkat sepenuhnya | Bukan keduanya | Ini tugas VPN atau Tor |
Aturan: jika program memiliki kolom "HTTP proxy" dan hanya mengakses HTTP(S) — pilih HTTP. Jika program bukan tentang web atau hanya memiliki "SOCKS5" — pilih SOCKS5 dengan DNS jarak jauh. Tidak ada gunanya berdebat soal kecepatan.
Kesalahan umum
- Mengharapkan enkripsi dari proxy. Baik HTTP maupun SOCKS5 tidak melindungi trafik ke proxy; hanya TLS di dalamnya yang melindungi.
- Menggunakan
socks5://alih-alihsocks5h://dan kemudian mencari dari mana DNS "bocor". - Mengonfigurasi HTTP proxy di program yang tidak mengakses HTTP, dan menyalahkan "proxy buruk" atas diamnya.
- Memilih protokol berdasarkan kecepatan. Kecepatan ditentukan oleh alamat dan rute, dan keduanya dapat diperiksa dalam satu menit — lihat cara memeriksa proxy untuk anonimitas, kebocoran, dan kecepatan.
- Menganggap HTTP proxy elite "lebih anonim" daripada SOCKS5. Keduanya tidak mengungkap alamat; perbedaannya hanya bahwa SOCKS5 tidak memiliki kemampuan teknis untuk menambahkannya.
Pertanyaan dan jawaban
Mana yang lebih cepat — SOCKS5 atau HTTP proxy?
Pada server yang sama, perbedaannya tidak terukur dibandingkan dengan latensi jaringan. Kecepatan ditentukan oleh tipe IP, jarak, dan beban server, bukan protokol.
Apakah SOCKS5 mengenkripsi trafik?
Tidak. SOCKS5 meneruskan byte apa adanya; login dan kata sandi juga dikirim dalam teks terbuka. Hanya TLS di dalam koneksi, misalnya HTTPS, yang membuat trafik aman.
Bisakah HTTP proxy digunakan untuk Telegram atau torrent?
Biasanya tidak: trafiknya bukan HTTP, dan terowongan melalui CONNECT ke port sembarang dilarang oleh sebagian besar HTTP proxy. Untuk program semacam itu diperlukan SOCKS5.
Apa perbedaan socks5h dengan socks5?
Huruf h berarti nama domain diresolusi oleh server proxy. Tanpanya, permintaan DNS keluar dari komputer Anda melalui penyedia layanan Anda, dan alamat tujuan terlihat olehnya.
Protokol mana yang lebih anonim?
HTTP proxy elite dan SOCKS5 sama-sama tidak mengungkap alamat Anda. HTTP proxy transparan mengungkapkannya melalui header; SOCKS5 tidak memiliki mekanisme semacam itu. Kebocoran lainnya — DNS, WebRTC, trafik melewati proxy — tidak bergantung pada protokol.