Mengapa Peramban Web Saya Terkadang Gagal Menampilkan Waktu Pengunduhan yang Tersisa?

Daftar Isi:

Mengapa Peramban Web Saya Terkadang Gagal Menampilkan Waktu Pengunduhan yang Tersisa?
Mengapa Peramban Web Saya Terkadang Gagal Menampilkan Waktu Pengunduhan yang Tersisa?

Video: Mengapa Peramban Web Saya Terkadang Gagal Menampilkan Waktu Pengunduhan yang Tersisa?

Video: Mengapa Peramban Web Saya Terkadang Gagal Menampilkan Waktu Pengunduhan yang Tersisa?
Video: Apakah Mode Samaran aman? - YouTube 2024, April
Anonim
Terkadang pengukur kemajuan pengunduhan yang setia di browser Anda (atau aplikasi lain) hanya melemparkan tangannya ke udara dan berhenti menampilkan waktu unduh yang tersisa. Mengapa terkadang memaku waktu unduh yang diproyeksikan dan terkadang gagal untuk melaporkannya bersama-sama?
Terkadang pengukur kemajuan pengunduhan yang setia di browser Anda (atau aplikasi lain) hanya melemparkan tangannya ke udara dan berhenti menampilkan waktu unduh yang tersisa. Mengapa terkadang memaku waktu unduh yang diproyeksikan dan terkadang gagal untuk melaporkannya bersama-sama?

Sesi Tanya & Jawab Hari ini hadir untuk memberi kami SuperUser - subdivisi Stack Exchange, pengelompokan situs web Q & A berbasis komunitas.

Pertanyaan

Pembaca SuperUser, Coldblackice ingin tahu mengapa perambannya tidak selalu menyumbat kotoran:

Occasionally, when downloading a file in a web browser, the download progress doesn’t “know” the total size of the file, or how far along in the download it is - it just shows the speed at which it’s downloading, with a total as “Unknown”.

Why wouldn’t the browser know the final size of some files? Where does it get this information in the first place?

Di mana sebenarnya?

Jawaban

Kontributor SuperUser, Gronostaj, menawarkan wawasan berikut:

To request documents from web servers, browsers use the HTTP protocol. You may know that name from your address bar (it may be hidden now, but when you click the address bar, copy the URL and paste it in some text editor, you’ll see

https://

pada awalnya). Ini adalah protokol berbasis teks sederhana dan berfungsi seperti ini:

Pertama, peramban Anda terhubung ke server situs web dan mengirim URL dokumen yang ingin diunduh (laman web adalah dokumen juga) dan beberapa detail tentang peramban itu sendiri (Agen-Pengguna, dll.). Misalnya, untuk memuat halaman utama di situs SuperUser,

https://superuser.com/

browser saya mengirimkan permintaan yang terlihat seperti ini:

GET / HTTP/1.1 Host: superuser.com Connection: keep-alive Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) Accept-Encoding: gzip,deflate,sdch Accept-Language: pl-PL,pl;q=0.8,en-US;q=0.6,en;q=0.4 Cookie: [removed for security] DNT: 1 If-Modified-Since: Tue, 09 Jul 2013 07:14:17 GMT

Baris pertama menentukan dokumen mana yang harus dikembalikan oleh server. Garis lain disebut sebagai header; mereka terlihat seperti ini:

Header name: Header value

Baris-baris ini mengirim informasi tambahan yang membantu server memutuskan apa yang harus dilakukan.

Jika semuanya baik-baik, server akan merespon dengan mengirim dokumen yang diminta. Tanggapan dimulai dengan pesan status, diikuti oleh beberapa tajuk (dengan detail tentang dokumen) dan akhirnya, jika semuanya baik-baik, konten dokumen. Ini adalah jawaban server SuperUser untuk permintaan saya seperti:

HTTP/1.1 200 OK Cache-Control: public, max-age=60 Content-Type: text/html; charset=utf-8 Expires: Tue, 09 Jul 2013 07:27:20 GMT Last-Modified: Tue, 09 Jul 2013 07:26:20 GMT Vary: * X-Frame-Options: SAMEORIGIN Date: Tue, 09 Jul 2013 07:26:19 GMT Content-Length: 139672 […snip…]

Setelah baris terakhir, server SuperUser menutup koneksi.

Baris pertama (

HTTP/1.1 200 OK

) berisi kode respons, dalam hal ini adalah

200 OK

. Ini berarti server akan mengembalikan dokumen, seperti yang diminta. Ketika server tidak berhasil melakukannya, kode akan menjadi sesuatu yang lain: Anda mungkin pernah melihatnya

404 Not Found

dan

403 Forbidden

cukup umum juga. Lalu tajuknya menyusul.

Ketika peramban menemukan baris kosong dalam respons, ia tahu bahwa semua yang melewati garis itu adalah isi dari dokumen yang diminta. Jadi dalam hal ini

adalah baris pertama dari kode beranda SuperUser. Jika saya meminta dokumen untuk diunduh, mungkin itu adalah beberapa karakter nonsens, karena sebagian besar format dokumen tidak dapat dibaca tanpa pemrosesan sebelumnya.

Kembali ke header. Yang paling menarik bagi kami adalah yang terakhir,

Content-Length

. Ini memberi tahu peramban berapa banyak bita data yang diharapkan setelah baris kosong, jadi pada dasarnya ukuran dokumen dinyatakan dalam byte. Tajuk ini tidak wajib dan dapat diabaikan oleh server. Kadang-kadang ukuran dokumen tidak dapat diprediksi (misalnya ketika dokumen dibuat dengan cepat), terkadang pemrogram yang malas tidak memasukkannya (cukup umum di situs pengunduhan driver), terkadang situs dibuat oleh pemula yang tidak tahu seperti header.

Bagaimanapun, apa pun alasannya, tajuk itu bisa hilang. Dalam hal ini browser tidak tahu berapa banyak data yang akan dikirimkan oleh server, dan dengan demikian menampilkan ukuran dokumen sebagaitidak diketahui, menunggu server untuk menutup koneksi. Dan itulah alasan untuk ukuran dokumen yang tidak diketahui.

Memiliki sesuatu untuk ditambahkan ke penjelasan? Bicaralah di komentar. Ingin membaca lebih banyak jawaban dari pengguna Stack Exchange yang paham teknologi lainnya? Lihat diskusi lengkap di sini.

Direkomendasikan: