Siklus hidup permintaan HTTP
1. Klien mengirim permintaan
- Membuat permintaan HTTP: Klien (biasanya browser web) membuat permintaan HTTP.
- Metode HTTP: GET, POST, dan sebagainya.
- Resource yang diminta: Misalnya
/index.html.
- Versi protokol: Seperti HTTP/1.1.
- Header dan body: Mencakup header berformat
key: value dan body pesan opsional.
2. Pencarian DNS
- Konversi nama domain: Mengubah nama domain yang dapat dibaca manusia (
www.example.com) menjadi alamat IP (93.184.216.34).
- Kueri ke server DNS: Klien mengirim kueri ke server DNS untuk mengubah nama domain menjadi alamat IP.
3. TCP handshake
- Membangun koneksi TCP: Klien membangun koneksi TCP dengan server.
- 3-step handshake:
- SYN: Klien mengirim permintaan koneksi.
- SYN-ACK: Server mengonfirmasi permintaan.
- ACK: Klien mengirim respons konfirmasi.
4. Pengiriman permintaan HTTP
- Mengirim permintaan HTTP: Setelah koneksi TCP dibuat, klien mengirim permintaan HTTP yang sebenarnya.
5. Routing paket melalui internet
- Pengiriman paket: Paket data dirutekan ke server melalui berbagai perangkat jaringan.
- Peran router: Router menentukan jalur terbaik untuk paket.
6. Respons server
- Membuat respons HTTP: Server memproses permintaan HTTP dan membuat respons.
- Isi respons:
- Protokol: Versi HTTP yang digunakan.
- Informasi status: Kode status HTTP (misalnya 200, 404).
- Header respons: Mirip dengan header permintaan.
- Body respons: Konten yang diminta (misalnya halaman HTML, data JSON).
7. Rendering konten
- Memproses respons HTTP: Klien menerima dan memproses respons HTTP.
- Rendering browser: Browser menafsirkan HTML dan merender konten ke layar.
- Permintaan resource tambahan: Meminta resource tambahan seperti gambar, CSS, dan JavaScript.
HTTPS = HTTP + enkripsi
TLS handshake
- TLS handshake: Klien dan server saling bertukar kunci untuk enkripsi dan autentikasi.
- Komunikasi terenkripsi: Setelah TLS handshake, klien dan server saling bertukar pesan terenkripsi menggunakan HTTP.
TLS 1.3 handshake
- Proses yang disederhanakan: TLS 1.3 menyediakan lebih sedikit opsi sehingga lebih sederhana, aman, dan cepat.
- Langkah inti:
- Client Hello: Klien mengirim cipher suite dan versi TLS yang didukung ke server.
- Server Hello: Server mengirim cipher suite dan versi TLS yang dipilih ke klien.
- Verifikasi sertifikat: Klien memverifikasi sertifikat SSL server.
- Pembuatan premaster secret: Klien membuat premaster secret dan mengirimkannya ke server.
- Pembuatan session key: Klien dan server membuat session key.
- Komunikasi aman: Berkomunikasi menggunakan enkripsi simetris yang aman dengan session key.
Pendapat GN⁺
- Memahami komunikasi internet: Memahami konsep dasar HTTP dan HTTPS membantu membangun fondasi komunikasi jaringan yang kuat.
- Pentingnya keamanan: Meningkatkan keamanan transmisi data melalui HTTPS itu penting.
- Kelebihan TLS 1.3: Disarankan menggunakan TLS 1.3 yang lebih sederhana, cepat, dan aman.
- Penerapan di dunia nyata: Dalam proyek nyata, HTTPS perlu diterapkan untuk memperkuat keamanan.
- Pembelajaran lanjutan: Pemahaman yang lebih mendalam bisa diperoleh dengan mempelajari lapisan jaringan dan protokol lebih lanjut.
1 komentar
Komentar Hacker News