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, atau Forwarded (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

KriteriaHTTP proxySOCKS5
LapisanAplikasi (memahami HTTP)Sesi (meneruskan byte)
TrafikHTTP, HTTPS melalui CONNECTTCP apa pun, opsional UDP
Melihat kontenYa untuk HTTP, hanya host untuk HTTPSHanya alamat tujuan
Dapat mengubah permintaanYa (header, cache, filter)Tidak
Resolusi DNSDi proxyDi proxy (socks5h) atau lokal (socks5)
EnkripsiTidak (hanya pada HTTPS di dalamnya)Tidak (hanya pada protokol di dalamnya)
AutentikasiProxy-Authorization, BasicLogin dan kata sandi (RFC 1929), GSS-API, tanpa autentikasi
Dukungan di programHampir di mana-manaLuas, tetapi tidak merata
OverheadParsing headerMinimal

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 socks5h meresolusi 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:port untuk HTTP, curl -x socks5h://user:pass@host:port untuk SOCKS5 dengan DNS jarak jauh.
  • Python. Di requests dan httpx, HTTP proxy bekerja langsung, SOCKS5 — setelah memasang paket tambahan; skema socks5h:// 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@server menjalankan proxy SOCKS5 lokal melalui server apa pun yang Anda miliki aksesnya — cara praktis untuk memeriksa bagaimana program berperilaku dengan SOCKS5.

Kapan memilih apa

TugasPilihanAlasan
Browser, bekerja dengan situs webApa pun; HTTP lebih seringSeluruh trafik adalah HTTP(S), dukungan di mana-mana
Parsing melalui pustaka HTTPHTTP atau socks5hYang utama — meresolusi DNS di proxy dan tidak mengirim header berlebih
Messenger, game, torrent, emailSOCKS5Trafik non-HTTP, kadang UDP
Banyak akun di browser anti-deteksiApa pun; lihat IP, bukan protokolAntifraud menilai alamat dan fingerprint, bukan cara koneksi
Jaringan korporat, kontrol dan cacheHTTPMemerlukan pemfilteran dan pencatatan berdasarkan URL
Privasi perangkat sepenuhnyaBukan keduanyaIni 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

  1. Mengharapkan enkripsi dari proxy. Baik HTTP maupun SOCKS5 tidak melindungi trafik ke proxy; hanya TLS di dalamnya yang melindungi.
  2. Menggunakan socks5:// alih-alih socks5h:// dan kemudian mencari dari mana DNS "bocor".
  3. Mengonfigurasi HTTP proxy di program yang tidak mengakses HTTP, dan menyalahkan "proxy buruk" atas diamnya.
  4. 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.
  5. 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.