Zašto moj web-preglednik ponekad ne uspije prikazati preostalo vrijeme preuzimanja?

Sadržaj:

Zašto moj web-preglednik ponekad ne uspije prikazati preostalo vrijeme preuzimanja?
Zašto moj web-preglednik ponekad ne uspije prikazati preostalo vrijeme preuzimanja?

Video: Zašto moj web-preglednik ponekad ne uspije prikazati preostalo vrijeme preuzimanja?

Video: Zašto moj web-preglednik ponekad ne uspije prikazati preostalo vrijeme preuzimanja?
Video: Полное руководство по Google Forms - универсальный инструмент для опросов и сбора данных онлайн! - YouTube 2024, Travanj
Anonim
Ponekad vjernik preuzimanje mjerača napretka na vašem pregledniku (ili drugoj aplikaciji) samo baca ruke u zrak i odustaje od prikazivanja preostalog vremena preuzimanja. Zašto ponekad noktira projicirano vrijeme preuzimanja i ponekad ne uspije sve to prijaviti?
Ponekad vjernik preuzimanje mjerača napretka na vašem pregledniku (ili drugoj aplikaciji) samo baca ruke u zrak i odustaje od prikazivanja preostalog vremena preuzimanja. Zašto ponekad noktira projicirano vrijeme preuzimanja i ponekad ne uspije sve to prijaviti?

Današnja pitanja i odgovori nam se javljaju zahvaljujući SuperUseru - podjele Stack Exchange-a, zajednice-driven grupiranja Q & A web stranica.

Pitanje

Čitač SuperUser Coldblackice želi znati zašto njegov preglednik ne zna uvijek prljavštinu:

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?

Gdje doista?

Odgovori

Gronostaj koji daje doprinos SuperUseru nudi sljedeće uvide:

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://

na početku). To je jednostavan protokol koji se temelji na tekstu i funkcionira ovako:

Prvo se vaš preglednik povezuje s poslužiteljem web stranice i šalje URL dokumenta koji želi preuzeti (web stranice su i dokumenti) i neke pojedinosti o samom pregledniku (User-Agent itd.). Na primjer, za učitavanje glavne stranice na web mjestu SuperUser,

https://superuser.com/

moj preglednik šalje zahtjev koji izgleda ovako:

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

Prva linija određuje koji će se dokument poslužitelja vratiti. Druge linije nazivaju se zaglavlja; oni izgledaju ovako:

Header name: Header value

Ti retci šalju dodatne informacije koje pomažu poslužitelju odlučiti što učiniti.

Ako je sve u redu, poslužitelj će odgovoriti slanjem zatraženog dokumenta. Odgovor započinje s porukom o statusu, nakon čega slijedi nekoliko zaglavlja (s pojedinostima o dokumentu) i konačno, ako je sve u redu, sadržaj dokumenta. Ovako izgleda odgovor SuperUser poslužitelja za moj zahtjev:

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…]

Nakon posljednjeg retka, poslužitelj SuperUser-a zatvara vezu.

Prva crta (

HTTP/1.1 200 OK

) sadrži kod odgovora, u ovom slučaju to je

200 OK

To znači da će poslužitelj vratiti dokument, kako je zatraženo. Kada poslužitelj to ne uspije, kod će biti nešto drugo: vjerojatno ste ga vidjeli

404 Not Found

i

403 Forbidden

vrlo je čest. Zatim slijede zaglavlja.

Kada preglednik pronađe praznu liniju u odgovoru, zna da je sve prošlo taj redak sadržaj dokumenta koji je zatražio. Dakle, u ovom slučaju

je prva linija kodova SuperUserove stranice. Ako bih zatražio dokument za preuzimanje, vjerojatno bi to bio neki nejasni znakovi jer većina formata dokumenata nije moguće čitati bez prethodne obrade.

Natrag na zaglavlja. Najzanimljiviji je za nas posljednji,

Content-Length

Informira preglednika koliko bajtova podataka treba očekivati nakon praznog retka, pa je u osnovi veličina dokumenta izražena u bajtovima. Ovo zaglavlje nije obavezno i poslužitelj može propustiti. Ponekad se veličina dokumenta ne može predvidjeti (primjerice, kada se dokument generira u letu), ponekad ga lijeni programeri ne uključuju (prilično uobičajena mjesta za preuzimanje upravljačkih programa), ponekad web stranice stvaraju novorođenčad koja ne zna takvog zaglavlja.

U svakom slučaju, bez obzira na razlog, zaglavlje može nestati. U tom slučaju preglednik ne zna koliko će podataka poslužitelj poslati i tako prikazuje veličinu dokumenta kaonepoznata, čekajući da poslužitelj zatvori vezu. I to je razlog za nepoznate veličine dokumenata.

Imate li nešto za objašnjenje? Zvuči u komentarima. Želite li pročitati više odgovora od drugih tehnoloških korisnika Stack Exchangea? Pogledajte ovdje cijelu raspravu.

Preporučeni: