Miért nem jelenik meg a webes böngésző a hátralévő letöltési idők megjelenítéséhez?

Tartalomjegyzék:

Miért nem jelenik meg a webes böngésző a hátralévő letöltési idők megjelenítéséhez?
Miért nem jelenik meg a webes böngésző a hátralévő letöltési idők megjelenítéséhez?

Videó: Miért nem jelenik meg a webes böngésző a hátralévő letöltési idők megjelenítéséhez?

Videó: Miért nem jelenik meg a webes böngésző a hátralévő letöltési idők megjelenítéséhez?
Videó: Windows 10 Fast-startup: solve startup and shutdown problems - YouTube 2024, Április
Anonim
Néha a böngészőben (vagy más alkalmazásban) lévő hű letöltés előrehaladási számláló csak a kezét dobja a levegőbe, és lemond a hátralévő letöltési időről. Miért néha szögezi meg a tervezett letöltési időt, és néha nem jelent mindezt?
Néha a böngészőben (vagy más alkalmazásban) lévő hű letöltés előrehaladási számláló csak a kezét dobja a levegőbe, és lemond a hátralévő letöltési időről. Miért néha szögezi meg a tervezett letöltési időt, és néha nem jelent mindezt?

A mai Kérdések és válaszok munkamenetét a SuperUser - a Stack Exchange, a Q & A weboldalak közösség által irányított csoportosulásának részlegével - köszönheti.

A kérdés

A SuperUser olvasó Coldblackice azt szeretné tudni, hogy böngészője miért nem mindig a piszkot:

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?

Hol van?

A válaszok

A SuperUser közreműködője, a Gronostaj a következő betekintést nyújtja:

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

az elején). Ez egy egyszerű, szövegalapú protokoll, és így működik:

Először is, a böngészője csatlakozik a webhely szerveréhez, és elküldi a letölteni kívánt dokumentum URL-jét (a weboldalak is dokumentumok), valamint néhány részletet a böngészőről (User-Agent stb.). Például, ha betölti a főoldalt a SuperUser webhelyen,

https://superuser.com/

a böngésző olyan kérést küld, amely így néz ki:

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

Az első sor adja meg, hogy melyik dokumentumot kell a kiszolgáló visszatérnie. A többi sor neve fejléc; így néz ki:

Header name: Header value

Ezek a sorok további információkat küldnek, amelyek segítségével a szerver eldöntheti, mit kell tennie.

Ha minden rendben van, a szerver a kért dokumentum elküldésével válaszol. A válasz egy állapotüzenetből indul ki, majd néhány fejléccel (a dokumentum részleteivel együtt), és végül, ha minden rendben van, a dokumentum tartalma. Így néz ki a SuperUser szerver kérésemre adott válaszai:

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

Az utolsó sor után a SuperUser szervere bezárja a kapcsolatot.

Az első sor (

HTTP/1.1 200 OK

) tartalmazza a válaszkódot, ebben az esetben ez

200 OK

. Ez azt jelenti, hogy a szerver a kérés szerint visszaküldi a dokumentumot. Ha a kiszolgáló ezt nem tudja végrehajtani, a kód valami más lesz: valószínűleg látta

404 Not Found

és

403 Forbidden

elég gyakori is. Ezután a fejlécek követik.

Amikor a böngésző üres vonalat talál a válaszban, tudja, hogy a mellette lévő összes tartalom a kért dokumentum tartalma. Tehát ebben az esetben

a SuperUser kezdőlapjának első sora. Ha letöltési dokumentumot kérnék, akkor valószínűleg valami döbbenetes karakter lesz, mert a legtöbb dokumentumformátum olvashatatlan előzetes feldolgozás nélkül.

Vissza a fejlécekhez. A legérdekesebb számunkra az utolsó,

Content-Length

. Megadja a böngészőnek, hogy hány bájtnyi adatot várhat az üres sor után, tehát alapvetően ez a bájtban kifejezett dokumentumméret. Ez a fejléc nem kötelező, és a szerver elhagyhatja. Előfordulhat, hogy a dokumentumok méretét nem lehet előre megjósolni (például, amikor a dokumentumot pillanatnyilag létrehozzák), néha a lusta programozók nem tartalmazzák azt (meglehetősen gyakori az illesztőprogram letöltési webhelyén), néha olyan webhelyek létrehozása történik, akik nem tudják ilyen fejlécet.

Mindenesetre, bármi legyen is az ok, a fejléc hiányozhat. Ebben az esetben a böngésző nem tudja, hogy a kiszolgáló mennyi adatot fog küldeni, így a dokumentum mérete láthatóismeretlen, várva, hogy a szerver bezárja a kapcsolatot. És ez az oka ismeretlen dokumentumméreteknek.

Van valami a magyarázathoz? Hangzik ki a megjegyzésekben. Szeretne többet válaszolni a többi technikus-tudós Stack Exchange felhasználóiról? Nézze meg a teljes vitafonalat itt.

Ajánlott: