Hvorfor ved en browser ikke den endelige størrelse af nogle filer under download, og hvor får den normalt denne information fra?
Browsere kender ikke altid den endelige størrelse af filer under download, fordi serveren måske ikke sender en Content-Length header, bruger chunked transfer encoding, streamer data eller genererer dynamisk indhold. Normalt får browseren filstørrelsen fra Content-Length eller Content-Range headers.
Hvorfor ved en browser ikke den endelige størrelse af nogle filer under download, og hvor får den normalt denne information fra?
Browsere kan nogle gange ikke kende den endelige størrelse af filer under download af flere grunde. Her er nogle af de mest almindelige årsager:
- Ingen Content-Length Header: Hvis serveren ikke sender en
Content-Length
header i HTTP-responsen, ved browseren ikke, hvor stor filen er.
- Chunked Transfer Encoding: Når serveren bruger chunked transfer encoding, sendes data i mindre stykker (chunks) uden at specificere den samlede størrelse på forhånd.
- Streaming: Ved streaming af medier eller live data er den samlede filstørrelse ukendt, fordi dataene genereres og sendes i realtid.
- Dynamic Content: Dynamisk genererede filer kan ændre størrelse under download, hvilket gør det umuligt at kende den endelige størrelse på forhånd.
Normalt får browseren information om filstørrelsen fra følgende kilder:
- Content-Length Header: Denne header i HTTP-responsen angiver den samlede størrelse af filen i bytes.
- Content-Range Header: Ved delvise downloads kan denne header angive størrelsen af den del, der downloades, samt den samlede størrelse af filen.
Hvis ingen af disse headers er til stede, kan browseren ikke kende den endelige størrelse af filen før downloadet er fuldført.