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.
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.
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:
browser memeriksa cache; jika objek yang diminta dalam cache dan masih segar, lewati ke # 9
browser meminta OS untuk alamat IP server
OS membuat pencarian DNS dan membalas alamat IP ke browser
browser membuka koneksi TCP ke server (langkah ini jauh lebih kompleks dengan HTTPS)
browser mengirimkan permintaan HTTP melalui koneksi TCP
browser menerima respons HTTP dan dapat menutup koneksi TCP, atau menggunakannya kembali untuk permintaan lain
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)
jika dapat di-cache, respons disimpan dalam cache
browser menerjemahkan respons (mis. jika di-gzip)
browser menentukan apa yang harus dilakukan dengan respons (misalnya apakah itu halaman HTML, apakah itu gambar, apakah itu klip suara?)
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!).
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.
Jawaban:
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:
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!).
sumber
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.
sumber
Cari spesifikasi HTTP. Atau untuk memulai, coba http://www.jmarshall.com/easy/http/
sumber