Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
Obě strany předchozí revize Předchozí verze Následující verze | Předchozí verze Následující verzeObě strany příští revize | ||
špatná-praxe:komprese [2017/11/29 14:17] – [Chybně implementovaná komprese] Jakub Klímek | špatná-praxe:komprese [2018/01/08 14:57] – [Soubor ke stažení explicitně komprimovaný pomocí gzip, bzip2 nebo jiné neproudové metody] Jakub Klímek | ||
---|---|---|---|
Řádek 1: | Řádek 1: | ||
====== Chybně implementovaná komprese ====== | ====== Chybně implementovaná komprese ====== | ||
Cílem komprese je snížit nároky na místo na disku a na síťovou konektivitu. | Cílem komprese je snížit nároky na místo na disku a na síťovou konektivitu. | ||
- | Při přenosu (otevřených) dat tak jistě svou roli (až na ty uplně nejmenší soubory) má, obzvláště proto že většina otevřených formátů je textových, a texty se komprimují dobře. | + | Při přenosu (otevřených) dat tak jistě svou roli (až na ty úplně nejmenší soubory) má, obzvláště proto, že většina otevřených formátů je textových, a texty se komprimují dobře. |
Dá se ovšem implementovat různě šikovnými způsoby a jednotlivé způsoby mají souvislosti i s metadatovým popisem distribucí datových sad a dokonce i se samotným dělením dat na datové sady. | Dá se ovšem implementovat různě šikovnými způsoby a jednotlivé způsoby mají souvislosti i s metadatovým popisem distribucí datových sad a dokonce i se samotným dělením dat na datové sady. | ||
Jednotlivé případy si nyní rozebereme, a postupně budeme volbu komprese vylepšovat od nejméně vhodné až po nejvhodnější. | Jednotlivé případy si nyní rozebereme, a postupně budeme volbu komprese vylepšovat od nejméně vhodné až po nejvhodnější. | ||
Řádek 23: | Řádek 23: | ||
===== Soubor ke stažení komprimovaný pomocí ZIP, 7z, RAR nebo jiné neproudové metody ===== | ===== Soubor ke stažení komprimovaný pomocí ZIP, 7z, RAR nebo jiné neproudové metody ===== | ||
Neproudová metoda komprese je taková, kde pro započetí dekomprese je třeba mít k dispozici celý soubor. | Neproudová metoda komprese je taková, kde pro započetí dekomprese je třeba mít k dispozici celý soubor. | ||
- | To je v pořádku, pokud si takový soubor přinesete na USB flashce, Blu-Ray, DVD, CD nebo na disketě. | + | To je v pořádku, pokud si takový soubor přinesete na USB flashce, Blu-Ray, DVD, CD. |
Otevřená data jsou ale poskytována přes Internet, kde nejužším hrdlem je kapacita síťového připojení. | Otevřená data jsou ale poskytována přes Internet, kde nejužším hrdlem je kapacita síťového připojení. | ||
Tedy soubor se stahuje delší dobu, a může být užitečné vidět jeho obsah ještě než ho stáhnu celý. | Tedy soubor se stahuje delší dobu, a může být užitečné vidět jeho obsah ještě než ho stáhnu celý. | ||
Řádek 33: | Řádek 33: | ||
Proto se tyto kompresní metody do prostředí Internetu nehodí. | Proto se tyto kompresní metody do prostředí Internetu nehodí. | ||
- | ===== Soubor ke stažení explicitně komprimovaný pomocí gzip, bzip2 nebo jiné neproudové | + | ===== Soubor ke stažení explicitně komprimovaný pomocí gzip, bzip2 nebo jiné proudové |
Proudová (streamová) metoda komprese je taková, kde mohu obsah dekomprimovat tak, jak ho načítám, jak mi přichází ze sítě, a nemusím čekat až ho dostahuju celý. | Proudová (streamová) metoda komprese je taková, kde mohu obsah dekomprimovat tak, jak ho načítám, jak mi přichází ze sítě, a nemusím čekat až ho dostahuju celý. | ||
Takový soubor je pak poskytnut ke stažení, a má pak typicky za jménem ještě další příponu '' | Takový soubor je pak poskytnut ke stažení, a má pak typicky za jménem ještě další příponu '' | ||
Řádek 46: | Řádek 46: | ||
HTTP hlavička '' | HTTP hlavička '' | ||
Ta jsou pak klientovi poslána v komprimované podobě, a klient si je u sebe rovnou dekomprimuje. | Ta jsou pak klientovi poslána v komprimované podobě, a klient si je u sebe rovnou dekomprimuje. | ||
- | Tentokrát je ale v odpovědi serveru jasně popsáno, kterou metodou komprimujeme '' | + | Tentokrát je ale v odpovědi serveru jasně popsáno, kterou metodou komprimujeme '' |
Tato metoda se běžně používá pro webové stránky v HTML, CSS styly a JavaScriptové soubory, a uplně stejně lze použít i pro otevřená data. | Tato metoda se běžně používá pro webové stránky v HTML, CSS styly a JavaScriptové soubory, a uplně stejně lze použít i pro otevřená data. | ||
V této variantě jsou tedy data na serveru v nekomprimované podobě, a pokud klient požádá o komprimovaný přenost, server použije proudovou kompresi a klient proudovou dekompresi. | V této variantě jsou tedy data na serveru v nekomprimované podobě, a pokud klient požádá o komprimovaný přenost, server použije proudovou kompresi a klient proudovou dekompresi. |