Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Následující verze
Předchozí verze
Poslední revizeObě strany příští revize
špatná-praxe:komprese [2017/11/29 14:16] – vytvořeno Jakub Klímekšpatná-praxe:komprese [2020/06/03 09:37] – upraveno mimo DokuWiki 127.0.0.1
Řá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, od nejméně vhodného 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ší.
  
 ===== Více souborů v ZIP (nebo jiném) archivu ===== ===== Více souborů v ZIP (nebo jiném) archivu =====
Řá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é metody =====+===== Soubor ke stažení explicitně komprimovaný pomocí gzip, bzip2 nebo jiné proudové metody =====
 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 ''.gz'' nebo ''.bz2'', například ''.xml.gz'', ''.csv.gz'', ''.nt.gz'' a podobně. Takový soubor je pak poskytnut ke stažení, a má pak typicky za jménem ještě další příponu ''.gz'' nebo ''.bz2'', například ''.xml.gz'', ''.csv.gz'', ''.nt.gz'' a podobně.
Řádek 46: Řádek 46:
 HTTP hlavička ''Accept-Encoding: gzip'' umožňuje klientovi říct, že umí přijímat komprimovaná data. HTTP hlavička ''Accept-Encoding: gzip'' umožňuje klientovi říct, že umí přijímat komprimovaná data.
 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 ''Content-Encoding: gzip'', a co za data se přenáší, například ''Content-Type: text/csv''.+Tentokrát je ale v odpovědi serveru jasně popsáno, kterou metodou komprimujeme ''Content-Encoding: gzip'', a co za data se přenáší, například ''Content-Type: text/csv'', což pak skutečně odpovídá i záznamu v katalogu jako je NKOD.
 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.
  • špatná-praxe/komprese.txt
  • Poslední úprava: 2021/07/30 11:07
  • autor: Jakub Klímek