# Memahami Protokol Penting untuk Developer Web Modern dan Cloud Infrastructure

Ketika membangun aplikasi modern seperti **Next.js**, **Cloudflare Workers**, **platform AI**, **microservices**, atau **real-time dashboard**, ada banyak istilah jaringan yang sering muncul: TCP, UDP, HTTP/2, QUIC, WebSocket, gRPC, WireGuard, TLS, hingga DNS.

Banyak developer menggunakan teknologi tersebut setiap hari tanpa benar-benar memahami perannya. Padahal, memahami bagaimana data bergerak dari browser hingga server akan membantu dalam merancang sistem yang lebih cepat, aman, dan skalabel.

Artikel ini membahas setiap teknologi tersebut, kapan digunakan, serta bagaimana semuanya saling berhubungan.

* * *

# Gambaran Besar

Sebelum membahas satu per satu, berikut alur sederhana ketika pengguna membuka sebuah website.

```plaintext
Browser
   │
   ▼
DNS
   │
   ▼
IP Server
   │
TLS
   │
TCP / QUIC
   │
HTTP/2 / HTTP/3
   │
Web Server
```

Jika aplikasi membutuhkan komunikasi realtime, maka setelah HTTP terbentuk dapat beralih ke:

```plaintext
HTTP
   │
   ├── WebSocket
   ├── SSE
   └── gRPC
```

* * *

# 1\. TCP (Transmission Control Protocol)

## Apa itu?

TCP adalah protokol transport yang memastikan data dikirim secara **lengkap, berurutan, dan tanpa kehilangan**.

Ia merupakan fondasi hampir seluruh internet.

Contoh:

*   membuka website
    
*   login
    
*   transfer file
    
*   database
    
*   email
    

Semuanya menggunakan TCP.

* * *

## Cara kerja

Misalkan browser ingin mengirim:

```plaintext
Halo Dunia
```

TCP akan membaginya menjadi paket-paket kecil.

```plaintext
Packet 1
Packet 2
Packet 3
Packet 4
```

Server akan memastikan:

✓ semua paket diterima

✓ urutan benar

✓ paket hilang dikirim ulang

* * *

## Kelebihan

*   Sangat andal
    
*   Menjamin urutan data
    
*   Banyak didukung
    

## Kekurangan

Lebih lambat dibanding UDP karena ada proses:

*   ACK
    
*   Retransmission
    
*   Flow Control
    
*   Congestion Control
    

* * *

## Cocok digunakan

*   REST API
    
*   Login
    
*   Database
    
*   Upload file
    
*   Download file
    

* * *

# 2\. UDP (User Datagram Protocol)

Berbeda dengan TCP.

UDP lebih mementingkan kecepatan.

Ia tidak peduli apakah paket hilang.

Misalnya:

```plaintext
1
2
3
4
```

Jika paket nomor 2 hilang:

```plaintext
1
3
4
```

UDP tetap melanjutkan.

Tidak meminta pengiriman ulang.

* * *

## Mengapa?

Karena untuk aplikasi realtime, terlambat lebih buruk daripada kehilangan sedikit data.

Misalnya:

Video Call

Lebih baik kehilangan satu frame daripada menunggu 300ms.

* * *

## Digunakan oleh

*   Game Online
    
*   VoIP
    
*   Zoom
    
*   Google Meet
    
*   Discord
    
*   DNS
    
*   QUIC
    

* * *

# TCP vs UDP

| TCP | UDP |
| --- | --- |
| Andal | Sangat cepat |
| Ada retransmission | Tidak ada |
| Ada ACK | Tidak ada |
| Berurutan | Tidak dijamin |
| Cocok untuk data penting | Cocok untuk realtime |

* * *

# 3\. HTTP/2

HTTP adalah bahasa komunikasi antara Browser dan Server.

Versi lama:

```plaintext
HTTP/1.1
```

Setiap request sering membutuhkan koneksi tersendiri.

```plaintext
HTML

CSS

JS

Font

Image
```

Semuanya antre.

* * *

## HTTP/2 memperbaikinya

Dengan Multiplexing.

```plaintext
1 Connection

├ HTML
├ CSS
├ JS
├ Font
└ Image
```

Semua berjalan bersamaan.

* * *

## Fitur

*   Multiplexing
    
*   Header Compression
    
*   Binary Protocol
    
*   Server Push (jarang dipakai sekarang)
    

* * *

## Digunakan oleh

*   Next.js
    
*   React
    
*   REST API
    
*   gRPC
    

* * *

# 4\. HTTP/3 dan QUIC

HTTP/3 adalah evolusi HTTP.

Yang menarik:

HTTP/3 tidak memakai TCP.

Ia memakai QUIC.

```plaintext
HTTP/3
      │
    QUIC
      │
     UDP
```

* * *

## Apa itu QUIC?

QUIC adalah transport modern.

Ia mencoba menggabungkan:

Kecepatan UDP

Keandalan TCP

* * *

## Keunggulan

Handshake lebih cepat.

Reconnect lebih cepat.

Tidak mengalami Head-of-Line Blocking seperti TCP.

Lebih cocok untuk mobile.

* * *

## Dipakai oleh

*   Chrome
    
*   Edge
    
*   Firefox
    
*   Cloudflare
    
*   Google
    
*   YouTube
    

* * *

# 5\. WebSocket

HTTP biasanya:

```plaintext
Request

↓

Response

↓

Selesai
```

WebSocket berbeda.

Setelah koneksi terbentuk:

```plaintext
Browser

⇅

Server
```

Keduanya dapat saling mengirim data kapan saja.

* * *

## Cocok untuk

*   Chat AI
    
*   WhatsApp
    
*   Dashboard
    
*   Multiplayer Game
    
*   Trading
    
*   Monitoring Server
    

* * *

## Contoh

```plaintext
User mengetik

↓

Server langsung menerima

↓

AI membalas

↓

Browser menerima

↓

Semua realtime
```

* * *

# 6\. SSE (Server-Sent Events)

SSE lebih sederhana dibanding WebSocket.

Server hanya mengirim data.

Client tidak bisa mengirim balik melalui koneksi yang sama.

```plaintext
Server

↓

↓

↓

↓

Browser
```

* * *

## Sangat cocok untuk

Streaming AI.

Misalnya ChatGPT.

```plaintext
Hel

Hello

Hello Wo

Hello World
```

Server terus mengirim token.

* * *

## Kelebihan

Lebih sederhana.

Lebih hemat resource.

Reconnect otomatis.

* * *

## Kekurangan

Hanya satu arah.

* * *

# SSE vs WebSocket

| SSE | WebSocket |
| --- | --- |
| Satu arah | Dua arah |
| Lebih sederhana | Lebih kompleks |
| Cocok AI Streaming | Cocok Chat |

* * *

# 7\. gRPC

REST API menggunakan JSON.

```plaintext
Browser

↓

JSON

↓

Server
```

gRPC menggunakan Protocol Buffers.

```plaintext
Binary

↓

Lebih kecil

↓

Lebih cepat
```

* * *

## Digunakan oleh

*   Google
    
*   Kubernetes
    
*   Istio
    
*   Microservices
    

* * *

## Kelebihan

*   Sangat cepat
    
*   Strongly Typed
    
*   Mendukung Streaming
    
*   Code Generation
    

* * *

## Cocok

Backend ke Backend.

Bukan komunikasi browser biasa.

* * *

# 8\. WireGuard

WireGuard adalah VPN modern.

Misalnya:

```plaintext
Laptop

↓

Internet

↓

VPS
```

Dengan WireGuard:

```plaintext
Laptop

==== Encrypted Tunnel ====

VPS
```

Semua terenkripsi.

* * *

## Digunakan

*   VPN
    
*   Server pribadi
    
*   Tailscale
    
*   Infrastruktur Cloud
    

* * *

## Kelebihan

*   Sangat cepat
    
*   Ringan
    
*   Konfigurasi sederhana
    
*   Latensi rendah
    

* * *

# 9\. TLS

TLS adalah alasan mengapa website menggunakan:

```plaintext
https://
```

Tanpa TLS:

```plaintext
Password

↓

Internet
```

Bisa disadap.

Dengan TLS:

```plaintext
Password

↓

Encrypted

↓

Internet
```

Tidak dapat dibaca pihak lain.

* * *

## TLS dipakai oleh

*   HTTPS
    
*   SMTP
    
*   IMAP
    
*   HTTP/2
    
*   HTTP/3
    
*   VPN
    

* * *

# 10\. DNS

Manusia mengingat:

```plaintext
google.com
```

Komputer mengingat:

```plaintext
142.250.xxx.xxx
```

DNS menerjemahkan:

```plaintext
google.com

↓

IP Address
```

Tanpa DNS:

Kita harus menghafal IP seluruh website.

* * *

## Jenis Record

```plaintext
A
AAAA
CNAME
MX
TXT
NS
SRV
```

Masing-masing memiliki fungsi berbeda.

* * *

# Bagaimana Semuanya Terhubung?

Ketika pengguna membuka:

```plaintext
https://quran.finlup.id
```

Urutannya:

```plaintext
1 DNS
      │
      ▼
2 Mendapatkan IP

      │
      ▼
3 TLS Handshake

      │
      ▼
4 TCP / QUIC

      │
      ▼
5 HTTP/2 atau HTTP/3

      │
      ▼
6 Next.js / Cloudflare Worker

      │
      ▼
7 Response ke Browser
```

Jika pengguna membuka fitur chat AI:

```plaintext
Browser

↓

HTTPS

↓

Cloudflare

↓

Worker

↓

Proxy AI

↓

LLM
```

Lalu respons dapat dikirim secara bertahap menggunakan **SSE**, atau komunikasi dua arah yang lebih kompleks menggunakan **WebSocket**, tergantung kebutuhan aplikasi.

* * *

# Memilih Teknologi yang Tepat

| Kebutuhan | Teknologi yang Direkomendasikan |
| --- | --- |
| Website umum | HTTP/2 atau HTTP/3 |
| REST API | HTTP/2 |
| Streaming jawaban AI | SSE |
| Chat realtime | WebSocket |
| Multiplayer game | WebSocket atau UDP (sesuai arsitektur) |
| Komunikasi antar microservices | gRPC |
| VPN antar server | WireGuard |
| Enkripsi koneksi | TLS |
| Resolusi nama domain | DNS |

* * *

# Kesimpulan

Setiap protokol memiliki peran yang berbeda dalam membangun aplikasi modern:

*   **DNS** menemukan alamat server dari nama domain.
    
*   **TLS** mengenkripsi komunikasi agar aman.
    
*   **TCP** menyediakan transport yang andal untuk sebagian besar aplikasi.
    
*   **UDP** mengutamakan kecepatan untuk komunikasi realtime.
    
*   **QUIC** memanfaatkan UDP untuk menghadirkan transport modern yang cepat dan andal.
    
*   **HTTP/2** dan **HTTP/3** menjadi fondasi komunikasi web masa kini.
    
*   **WebSocket** memungkinkan komunikasi dua arah secara realtime.
    
*   **SSE** menawarkan cara sederhana dan efisien untuk streaming data dari server ke browser.
    
*   **gRPC** mengoptimalkan komunikasi antar layanan backend dengan performa tinggi.
    
*   **WireGuard** menyediakan koneksi VPN yang ringan, aman, dan cepat.
    

Memahami bagaimana protokol-protokol ini saling melengkapi akan memudahkan Anda memilih arsitektur yang tepat. Misalnya, aplikasi AI modern sering menggabungkan **HTTP/3 + TLS + DNS** untuk akses web, **SSE** untuk streaming respons model bahasa, **gRPC** untuk komunikasi internal antar layanan, dan **WireGuard** untuk menghubungkan server secara aman dalam satu jaringan privat. Dengan memahami dasar-dasar ini, Anda tidak hanya mengetahui *apa* yang digunakan, tetapi juga *mengapa* suatu teknologi lebih tepat dibanding yang lain pada skenario tertentu.
