apa yang terjadi ketika Anda mengetikkan URL di browser [ditutup]


293

Adakah yang bisa menceritakan kepada saya apa yang terjadi di balik layar sejak saya mengetikkan URL di peramban hingga saat saya melihat laman di peramban? Penjelasan rinci tentang proses ini akan sangat membantu.


2
Meskipun ini mungkin terkait pemrograman (akhirnya) - tingkat detail yang dapat dijawab ini akan (dan telah) mengisi volume. Harap nyatakan kembali sebagai permintaan pemrograman.
KevinDTimm

28
Dapatkan buku DNS and Bind milik O'Reilly . Hanya 624 halaman.
Wim Hollebrandse

7
edusagar.com/articles/view/70/… ini adalah jawaban terbaik!
Shivendra

1
Demi anak cucu, berikut adalah versi terperinci tentang cara kerja internet - goo.gl/eEHmpZ .
Ashwin Krishnamurthy

4
Sekarang ada upaya kolaboratif untuk menjawab ini sedetail mungkin: github.com/alex/what-happens-when/blob/master/README.rst
Piskvor meninggalkan gedung

Jawaban:


587

Perhatian: ini adalah sketsa yang sangat kasar dan terlalu disederhanakan , dengan asumsi permintaan HTTP yang paling sederhana (tidak ada HTTPS, tidak ada HTTP2, tidak ada tambahan), DNS mungkin yang paling sederhana, tidak ada proxy, tumpukan tunggal IPv4, satu permintaan HTTP saja, server HTTP sederhana aktif ujung lainnya, dan tidak ada masalah dalam langkah apa pun. Ini, untuk sebagian besar maksud dan tujuan kontemporer, skenario yang tidak realistis; semua ini jauh lebih kompleks dalam penggunaan aktual, dan tumpukan teknologi telah menjadi urutan besarnya lebih rumit sejak ini ditulis. Dengan mengingat hal ini, timeline berikut masih agak valid:

  1. browser memeriksa cache; jika objek yang diminta dalam cache dan masih segar, lewati ke # 9
  2. browser meminta OS untuk alamat IP server
  3. OS membuat pencarian DNS dan membalas alamat IP ke browser
  4. browser membuka koneksi TCP ke server (langkah ini jauh lebih kompleks dengan HTTPS)
  5. browser mengirimkan permintaan HTTP melalui koneksi TCP
  6. browser menerima respons HTTP dan dapat menutup koneksi TCP, atau menggunakannya kembali untuk permintaan lain
  7. browser memeriksa apakah responsnya adalah redirect atau respons bersyarat (kode status hasil 3xx), permintaan otorisasi (401), kesalahan (4xx dan 5xx), dll .; ini ditangani secara berbeda dari respons normal (2xx)
  8. jika dapat di-cache, respons disimpan dalam cache
  9. browser menerjemahkan respons (mis. jika di-gzip)
  10. browser menentukan apa yang harus dilakukan dengan respons (misalnya apakah itu halaman HTML, apakah itu gambar, apakah itu klip suara?)
  11. browser memberikan respons, atau menawarkan dialog unduhan untuk jenis yang tidak dikenal

Sekali lagi, diskusi tentang masing-masing poin ini telah mengisi halaman yang tak terhitung jumlahnya; anggap ini hanya sebagai ringkasan, diringkas demi kejelasan. Selain itu, ada banyak hal lain yang terjadi secara paralel dengan ini (memproses alamat yang diketikkan, prefetching spekulatif, menambahkan halaman ke riwayat browser, menampilkan kemajuan kepada pengguna, memberi tahu plugins dan ekstensi, merender halaman saat sedang mengunduh, pipelining, pelacakan koneksi untuk tetap hidup, manajemen cookie, memeriksa konten berbahaya dll.) - dan seluruh operasi mendapatkan urutan besarnya lebih kompleks dengan HTTPS (sertifikat dan sandi dan penyematan, oh my!).


Apa yang akan terjadi jika permintaan https pada langkah 4, Bisakah Anda menjelaskan sedikit lebih banyak?
Mohammad Raheem

2
Itu jauh di luar cakupan jawaban ini. Tetapi periksa halaman GH yang terhubung di atas, ini memberikan gambaran singkat: github.com/alex/what-happens-when/blob/master/…
Piskvor meninggalkan gedung

41

Pertama komputer mencari host tujuan. Jika ada di cache DNS lokal, ia menggunakan informasi itu. Jika tidak, permintaan DNS dilakukan sampai alamat IP ditemukan.

Kemudian, browser Anda membuka koneksi TCP ke host tujuan dan mengirimkan permintaan sesuai dengan HTTP 1.1 (atau mungkin menggunakan HTTP 1.0, tetapi browser normal tidak melakukannya lagi).

Server mencari sumber yang diperlukan (jika ada) dan merespons menggunakan protokol HTTP, mengirimkan data ke klien (= browser Anda)

Browser kemudian menggunakan parser HTML untuk membuat kembali struktur dokumen yang kemudian disajikan kepada Anda di layar. Jika menemukan referensi ke sumber daya eksternal, seperti gambar, file css, file javascript, ini dikirimkan dengan cara yang sama seperti dokumen HTML itu sendiri.


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.