14Sep

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

click fraud protection

Néha a böngésző( vagy más alkalmazás) hű letöltés előrehaladási mérője 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és &A válaszüzenet a SuperUser - a Stack Exchange megosztottságának köszönhetően - a Q & A webhelyek közösségi szintű csoportosítása.

A

SuperUser olvasó kérdése A Coldblackice azt szeretné tudni, hogy böngészője miért nem mindig szennyezi a szennyeződéseket:

Előfordulhat, hogy amikor letölt egy fájlt egy webböngészőben, a letöltési folyamat nem "ismeri" a fájl teljes méretét, vagymilyen messze van a letöltésben - ez csak azt mutatja, hogy milyen sebességgel tölt le, összesen mint "Ismeretlen".

Miért nem ismeri a böngésző bizonyos fájlok végleges méretét? Hol kap ez az információ az első helyen?

Hol van?

A válaszok

SuperUser közreműködő A Gronostaj az alábbi betekintést nyújtja:

A webszerverekről származó dokumentumok lekéréséhez a böngészők a HTTP protokollt használják. Ezt a nevet ismerheti meg a címsávból( lehet, hogy most el van rejtve, de ha rákattint a címsávra, másolja át az URL-t, és beilleszti egy szövegszerkesztőbe, az elején meg fog jelenni http: //).Ez egy egyszerű, szövegalapú protokoll, és így működik:

instagram viewer

Először is a böngészője csatlakozik a webszerverhez, é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, http: //superuser.com/, a böngésző az alábbi kérést küldi el:

GET / HTTP / 1.1 Host: superuser.com Csatlakozás: tartós élve Elfogad: szöveg / html, alkalmazás/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Felhasználói-ügynök: Mozilla / 5.0( Windows NT 6.1; WOW64) Elfogadókódolás: gzip, deflate, sdch Accept-Language: pl-PL, q = 0,4, en-US; q = 0,6, en; q = 0,4 Cookie: [eltávolítva a biztonságért] DNT: 1 Ha-Módosítva-óta: kedd, 09. július 2013. 07:14:17 GMT

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

Fejléc neve: fejléc értéke

Ezek a sorok további információkat küldnek, amelyek segítenek a kiszolgálónak eldönteni, hogy 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 kiszolgáló kérésemre adott válaszai:

HTTP / 1.1 200 OK Cache-Control: nyilvános, max-age = 60 Tartalomtípus: text / html;charset = utf-8 Lejárati idő: Tue, 09 Jul 2013 07:27:20 GMT Utolsó módosítás: Tue, 09 Jul 2013 07:26:20 GMT Változó: * X-Frame-Options: SAMEORIGIN Dátum: Tue, 09 Jul 201307:26:19 GMT Tartalom hossza: 139672 & lt;! DOCTYPE html & gt;& Lt; html & gt;[... snip. ..] & lt; / html & gt;

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 200 OK.Ez azt jelenti, hogy a szerver a kérés szerint visszaküldi a dokumentumot. Ha a szerver ezt nem sikerül végrehajtani, akkor a kód valami más lesz: valószínűleg 404 nem található, és a 403 Forbidden elég gyakori. Ezután a fejlécek követik.

Ha a böngésző üres vonalat talál a válaszban, tudja, hogy a mögött lévő sor minden, ami a kért dokumentum tartalmát tartalmazza. Tehát ebben az esetben a & lt;! DOCTYPE html & gt;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ó, a Tartalomhossz. 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ákilyen 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éretét ismeretlen néven jeleníti meg, várva a kiszolgálót a kapcsolat bezárására.És ez az oka ismeretlen dokumentumméreteknek.

Van valami a magyarázat hozzáadásához? 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.