Setiap kali kamu mengetik sebuah alamat web lalu halaman muncul, ada percakapan kecil yang terjadi di balik layar. Browser-mu mencari mesin yang tepat, mengetuk pintu tertentu, lalu bicara dengan bahasa yang sudah dipahami mesin itu. Dua hal yang membuat semua ini bisa berjalan adalah port dan protokol. Kedengarannya seperti istilah jaringan yang hanya cocok buat orang yang sering nongkrong di ruang server, padahal konsepnya jauh lebih sederhana dari kesannya, dan memahaminya akan membuat banyak hal sehari-hari terasa lebih jelas.
Tulisan ini membahas kedua ide itu pelan-pelan, dengan bahasa lugas dan beberapa gambaran kecil. Di akhir nanti, kamu akan paham kenapa :443 muncul di sebagian alamat, apa sebenarnya HTTP dan TCP, dan cara membaca URL seperti membaca alamat di sebuah amplop.
Apa itu port sebenarnya
Bayangkan sebuah gedung perkantoran besar dengan satu alamat jalan. Surat datang ke alamat itu sepanjang hari, tapi di dalam gedung ada banyak ruangan. Kalau sebuah surat cuma menulis “antar ke gedung ini,” bagian penerima pasti bingung mau diantar ke mana. Maka surat juga membawa nomor ruangan. Alamat jalan membawa surat sampai ke gedung; nomor ruangan membawanya ke meja yang tepat.
Komputer bekerja dengan cara yang sama. Satu mesin punya satu alamat jaringan (alamat IP-nya, misalnya 203.0.113.10), tapi satu mesin biasanya menjalankan beberapa program jaringan sekaligus: server web, mungkin server email, mungkin layanan login jarak jauh. Sebuah port adalah nomor ruangan tadi. Port adalah pintu bernomor pada mesin yang menunjuk ke satu program tertentu.
Jadi port bukan benda fisik yang bisa kamu pegang. Ia hanyalah sebuah angka, dari 0 sampai 65535, yang dipakai sistem operasi untuk memutuskan program mana yang seharusnya menerima sebuah pesan masuk.
Alamat IP = gedungnya
┌──────────────────────────────────┐
│ 203.0.113.10 │
│ │
│ :80 → server web (HTTP) │
│ :443 → server web (HTTPS) │
│ :22 → SSH (login jarak jauh) │
│ :25 → server mail (SMTP) │
└──────────────────────────────────┘
Port = nomor ruangannya
Saat sebuah program ingin menerima lalu lintas data, ia “mendengarkan” di sebuah port. Server web pada dasarnya berkata, “apa pun yang datang di port 443 itu untukku.” Ketika browser-mu mengirim permintaan ke port itu, sistem operasi langsung menyerahkannya ke server web dan bukan ke yang lain.
Satu IP, banyak pintu
Satu server bisa menjalankan situs web, layanan email, dan akses jarak jauh sekaligus, semata-mata karena masing-masing menunggu di port yang berbeda. Alamat IP membawamu ke mesinnya; port menentukan layanan mana yang menjawab.
Port umum yang layak diingat
Ada segelintir nomor port yang muncul terus-menerus. Beberapa di antaranya begitu standar sampai-sampai perangkat lunak mengasumsikannya secara otomatis, itulah kenapa kamu jarang mengetiknya sendiri. Berikut yang pada akhirnya dikenali setiap developer:
| Port | Dipakai untuk | Arti sederhananya |
|---|---|---|
| 80 | HTTP | Lalu lintas web biasa (tanpa enkripsi) |
| 443 | HTTPS | Lalu lintas web terenkripsi |
| 22 | SSH | Login aman jarak jauh ke server |
| 25 | SMTP | Mengirim email antar server mail |
Beberapa catatan biar lebih nempel. Port 80 adalah pintu asli untuk web; saat HTTP pertama muncul, inilah pintu standarnya, dan sampai sekarang masih jadi standar untuk halaman tanpa enkripsi. Port 443 adalah saudara amannya: lalu lintas web yang sama, tapi dibungkus enkripsi supaya tidak ada pihak di tengah yang bisa membacanya. Hari ini hampir semua situs sungguhan memakai 443.
Port 22 dipakai untuk SSH, singkatan dari Secure Shell. Inilah cara kamu masuk ke server jarak jauh dari terminal-mu sendiri untuk menjalankan perintah, men-deploy kode, atau membereskan sesuatu. Kalau kamu pernah mengurus server, hampir pasti kamu pernah mengetuk port 22.
Port 25 milik SMTP (Simple Mail Transfer Protocol), sistem yang membawa email dari satu server mail ke server mail lain. Ada port lain yang berhubungan dengan email juga, tapi 25 adalah yang paling klasik untuk dikenali.
Port di bawah 1024 itu istimewa
Port dari 0 sampai 1023 disebut port “well-known” dan disediakan khusus untuk layanan standar. Di kebanyakan sistem, hanya administrator yang boleh menjalankan program yang mendengarkan di port-port ini. Ini semacam pengaman kecil supaya aplikasi sembarangan tidak bisa berpura-pura menjadi server web.
Apa itu protokol
Port memberi tahu ke mana sebuah pesan harus pergi. Sebuah protokol memberi tahu bagaimana kedua sisi seharusnya bicara begitu pesan itu tiba. Ia adalah seperangkat aturan yang disepakati untuk percakapan: apa yang dianggap sebagai sapaan, urutan kejadiannya seperti apa, bagaimana menandai akhir sebuah pesan, dan seperti apa bentuk balasan yang sah.
Bayangkan dua orang sedang menelepon. Bahkan sebelum membahas apa pun, mereka mengikuti naskah tak tertulis: satu menyapa, yang lain menjawab, mereka bergantian bicara, lalu mengucap salam sebelum menutup. Kalau yang satu bicara bahasa Prancis dan yang lain cuma paham bahasa Jepang, telepon itu gagal sebaik apa pun sambungannya. Protokol adalah naskah bersama itu, tapi untuk komputer.
Ada beberapa protokol yang penting dalam kerja web, dan letaknya di lapisan yang berbeda. Sebagian mengurus pengiriman data mentah; sebagian lagi mengurus makna data yang ditumpangkan di atasnya.
TCP dan UDP: menyeberangkan data
Di lapisan pengiriman, ada dua protokol yang dominan: TCP dan UDP.
TCP (Transmission Control Protocol) ibarat kurir yang teliti. Sebelum mengirim apa pun, ia membangun sambungan lewat tanya-jawab singkat (sering disebut handshake), lalu mengirim datamu secara berurutan dan memastikan setiap potongan benar-benar sampai. Kalau ada yang hilang di jalan, TCP menyadarinya dan mengirim ulang. Keandalan inilah alasan web, email, dan transfer berkas semuanya berdiri di atas TCP. Kamu dapat ketepatan, dengan ongkos sedikit beban tambahan.
UDP (User Datagram Protocol) punya watak sebaliknya: cepat dan santai. Ia langsung melontarkan data tanpa membangun sambungan atau mengonfirmasi pengiriman. Sebagian paket bisa saja tiba tidak berurutan atau malah tidak tiba sama sekali, dan UDP tidak ambil pusing. Kedengarannya lebih buruk, tapi untuk hal seperti video langsung, panggilan suara, atau game online, kecepatan lebih penting daripada kesempurnaan — satu frame yang hilang masih lebih baik daripada menunggu kiriman ulang yang datangnya sudah telat.
TCP → "Paket 1 sampai? Bagus. Paket 2? Bagus. Paket 3?"
Andal, urut, agak lambat. (web, email, unduhan)
UDP → "Ini datanya. Sudah ya."
Cepat, tanpa jaminan. (panggilan video, game, siaran langsung)
HTTP: bahasanya web
Di atas TCP duduklah HTTP (HyperText Transfer Protocol), protokol yang dipakai browser dan server web untuk bertukar halaman, gambar, dan data. HTTP menentukan bentuk sebuah permintaan (“tolong berikan halaman ini”) dan bentuk sebuah respons (“ini dia, lengkap dengan kode status yang memberi tahu hasilnya seperti apa”).
HTTPS sederhananya adalah HTTP dengan lapisan enkripsi di bawahnya. Aturan percakapannya sama; bedanya, seluruh pertukaran diacak supaya tidak bisa dibaca atau diubah di tengah jalan. Inilah kenapa web yang aman berada di port 443 sementara HTTP biasa berada di port 80 — bahasa yang sama, pintu yang berbeda, salah satunya memakai pelindung.
Jangan tertukar antara port dan protokol
Port adalah angka yang menunjuk ke sebuah program. Protokol adalah seperangkat aturan untuk bicara dengan program itu. Keduanya bekerja sama tapi bukan hal yang sama: HTTPS (sebuah protokol) biasanya berjalan lewat port 443 (sebuah pintu), tapi secara teknis kamu bisa menjalankannya di port lain kalau server-nya kamu atur begitu.
Cara kerja host:port di dalam URL
Sekarang kedua ide itu bersatu dalam sesuatu yang kamu lihat tiap hari: sebuah alamat web. Sebuah URL diam-diam memuat dua hal sekaligus — mesin yang kamu tuju dan pintu yang harus diketuk — bahkan ketika sebagiannya tersembunyi.
Ambil contoh alamat lengkap ini:
https://blog.acy-partner.com:443/articles
│ │ │ │
skema host port path
Baca dari kiri ke kanan:
httpsadalah skema — ia menyebut protokolnya. Bagian ini memberi tahu browser “pakai HTTPS untuk yang satu ini.”blog.acy-partner.comadalah host — nama mesinnya, yang di balik layar diubah browser menjadi alamat IP.:443adalah port — pintu tertentu pada mesin itu./articlesadalah path — halaman atau sumber daya mana yang kamu mau setelah masuk ke dalam.
Ini bagian yang sering membingungkan pemula: kamu hampir tidak pernah mengetik portnya. Sebabnya, tiap skema punya nilai bawaan. Saat kamu menulis https://, browser diam-diam menganggapnya :443. Saat kamu menulis http://, ia menganggapnya :80. Jadi dua alamat ini artinya persis sama:
https://acy-partner.com/contact
https://acy-partner.com:443/contact
Portnya tetap ada. Ia cuma tak terlihat karena cocok dengan nilai bawaan.
Kamu akan paling sering melihat port ditulis lengkap saat pengembangan di mesin lokal. Ketika kamu menjalankan server pengembangan di komputer sendiri, ia biasanya mendengarkan di port yang tidak standar, jadi kamu membuka sesuatu seperti:
http://localhost:3000
Di sini localhost berarti “mesin ini juga” dan :3000 adalah pintu yang dipilih server pengembanganmu. Karena 3000 bukan nilai bawaan skema mana pun, kamu wajib menyertakannya, kalau tidak browser akan mencoba port 80 dan tidak menemukan siapa-siapa yang mendengarkan.
Tes cepat di kepala
Kalau sebuah alamat tidak menampilkan port, tanyakan dirimu protokol apa yang dipakainya. https:// → port 443. http:// → port 80. Nilai bawaannya selalu ada, cuma tersembunyi. Kalau kamu melihat port seperti :8080 atau :5432, itu tandanya ada layanan yang berjalan di pintu selain pintu biasa.
Kalau kamu ingin menyelami satu lapisan lebih dalam soal bagaimana alamat dan port bekerja sama di server sungguhan, tulisan pendamping ini membahasnya dari sisi server: Alamat IP dan Port (server).
Rangkuman
Port dan protokol adalah dua paruh dari setiap percakapan jaringan, dan tidak satu pun seseram namanya.
- Sebuah port adalah pintu bernomor pada mesin, dari 0 sampai 65535. Alamat IP membawa pesan ke komputer yang tepat; port membawanya ke program yang tepat.
- Beberapa port layak dikenali sekali lihat: 80 (HTTP), 443 (HTTPS), 22 (SSH), dan 25 (SMTP). Port di bawah 1024 disediakan untuk layanan standar yang butuh hak khusus.
- Sebuah protokol adalah seperangkat aturan yang disepakati soal bagaimana dua sisi bicara. TCP mengirim data secara andal dan berurutan; UDP mengirimnya cepat tanpa jaminan. HTTP adalah bahasanya web, dan HTTPS adalah bahasa yang sama dengan tambahan enkripsi.
- Di dalam URL, bentuknya adalah
skema://host:port/path. Portnya sering tersembunyi karena tiap skema punya nilai bawaan —httpsberarti:443,httpberarti:80— tapi ia selalu tersirat.
Begitu hal-hal ini klik, banyak teka-teki kecil ikut hilang: kenapa aplikasi lokal tinggal di :3000, kenapa situs aman menampilkan 443, kenapa kamu masuk ke server lewat SSH di port 22. Semuanya cuma soal pintu dan aturan untuk bicara lewat pintu itu.