6 poin oleh GN⁺ 2024-05-27 | 1 komentar | Bagikan ke WhatsApp

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

 
GN⁺ 2024-05-27
Komentar Hacker News
  • Pertanyaan tentang mengapa sulit mengetahui di mana letak masalah saat terjadi gangguan jaringan. Ada pendapat bahwa penjelasan bahwa jalur jaringan bersifat non-deterministik terasa kurang meyakinkan.
  • Pendapat yang merekomendasikan contoh detail dan interaktif tentang TLSv1.2 dan TLSv1.3. Tautan disediakan.
  • Pendapat bahwa penjelasan bergaya "ELI(a mediocre engineer)" bermanfaat. Ingin menemukan lebih banyak contoh.
  • Permintaan dari seseorang yang sedang mencari contoh kode verifikasi tanda tangan SHA256. Paham teorinya, tetapi kesulitan dalam implementasi.
  • Pendapat bahwa bagian tentang menerima gaji $300K di San Francisco untuk menulis permintaan HTTP adalah bagian terbaik dari artikel.
  • Pendapat bahwa penjelasan tentang klien yang mengenkripsi premaster secret dengan kunci publik server lalu mengirimkannya adalah informasi lama.
  • Keraguan terhadap penjelasan bahwa sertifikat SSL menyertakan private key. Ada pendapat bahwa itu sesuai dengan judul "Mediocre Engineer".
  • Candaan bahwa ingin bekerja dengan gaji $50K lebih rendah dari $300K. Juga ada koreksi bahwa penjelasan TLS <1.3 salah.
  • Pendapat bahwa isi artikel sudah usang, dan saat ini 30% permintaan web menggunakan HTTP3 dan CORS. Juga ada catatan bahwa tidak ada tanggal publikasi.
  • Pendapat bahwa penjelasan HTTPS terlihat seperti ringkasan AI. Penjelasan istilah kurang memadai dan mengasumsikan pembaca sudah memahami kriptografi kunci publik. Ada juga kritik bahwa penjelasan lapisan OSI tidak lengkap.