- nike air max 90 pas cher
- 16373
|
Brotli to nowy algorytm kompresji opracowany przez Google. Mniejszy rozmiar odpowiedzi kompresji pozwala na lepsze wykorzystanie przestrzeni i szybsze ładowanie stron. W wielu przypadkach Brotli przewyższa gzip. zalety: dla typowych zasobów internetowych (np. css, html, js), Brotli przewyższa gzip o 17-25%. Gęstość Brotli -11 w porównaniu do gzip -9: html (wielojęzyczny korpus): 25% oszczędności na js (alexa top 10k): 17% oszczędności na shrunken js (alexa top 10k): 17% oszczędności na css (alexa top 10k): 20 oszczędności w %. Wprowadzenie do algorytmu Brotli
Brotli został pierwotnie wydany w 2015 roku w celu kompresji czcionek internetowych w trybie offline. Inżynierowie oprogramowania Google wydali ulepszoną wersję Brotli we wrześniu 2015 roku, która obejmowała bezstratną kompresję danych ogólnego przeznaczenia, ze szczególnym uwzględnieniem kompresji HTTP. Koder w nim został częściowo przepisany w celu poprawy współczynników kompresji, zarówno koder, jak i dekoder zwiększyły prędkość, a interfejs API przesyłania strumieniowego został ulepszony, aby dodać więcej poziomów jakości kompresji. Nowa wersja wykazuje również międzyplatformową poprawę wydajności, a także zmniejszenie ilości pamięci wymaganej do dekodowania.
W przeciwieństwie do popularnych algorytmów kompresji ogólnego przeznaczenia, Brotli wykorzystuje predefiniowany 120-kilobajtowy słownik. Słownik ten zawiera ponad 13 000 powszechnie używanych słów, fraz i innych podciągów z dużego korpusu dokumentów tekstowych i HTML. Predefiniowane algorytmy poprawiają gęstość kompresji mniejszych plików.
Użycie brotli zamiast deflate do kompresji plików tekstowych zazwyczaj zwiększa gęstość kompresji o 20%, podczas gdy prędkości kompresji i dekompresji pozostają mniej więcej takie same. Typ kodowania zawartości dla kompresji strumieniowej przy użyciu Brotli został zaproponowany jako "br".
Brotli vs Gzip
Oceniając algorytmy kompresji, skupiamy się na dwóch wskaźnikach: stopniu kompresji i szybkości kompresji. Jak widać na powyższym wykresie, bez względu na to, który z 9 poziomów kompresji gzip jest używany, jego stopień kompresji jest niższy niż brotli (w porównaniu do gzip, którego poziom kompresji można również skonfigurować na 10), a prędkość kompresji jest wolniejsza.
Przewaga Brotli: dla typowych zasobów internetowych (np. css, html, js), Brotli przewyższa gzip o 17-25%. Gęstość Brotli-11 w porównaniu do gzip-9: html (wielojęzyczny korpus): 25% oszczędności na js (alexa top 10k): 17% oszczędności na shrunken js (alexa top 10k): 17% oszczędności na css (alexa top 10k): 20 procent oszczędności
asp.net core Włącz Brotli
Wartość nagłówka Accept-Encoding
Konfiguracja kodu
Poniższy kod pokazuje, jak włączyć responsywne oprogramowanie pośredniczące kompresji dla domyślnych typów MIME i dostawców kompresji (Brotli i Gzip):
Uwaga:
- app.UseResponseCompression musi być wywołane przed app.UseMvc.
- Użyj narzędzi takich jak Fiddler, Firebug lub Postman, aby ustawić nagłówek żądania Accept-Encoding i zbadać nagłówek odpowiedzi, rozmiar i treść.
Domyślnie dostawcy kompresji Brotli są dodawani do tablicy dostawców kompresji wraz z dostawcami kompresji Gzip. Gdy klient obsługuje skompresowany format danych Brotli, kompresja domyślnie jest ustawiona na kompresję Brotli. Jeśli klient nie obsługuje Brotli, kompresja jest domyślnie ustawiona na Gzip, gdy klient obsługuje kompresję Gzip.
Test kompresji br
Otwórz narzędzie fiddler i użyj przeglądarki, aby uzyskać dostęp do adresu naszej strony internetowej:
Nagłówek żądania: Accept-Encoding: gzip, deflate, br
Nagłówek odpowiedzi: Content-Encoding: br
Nagłówek Content-Length jest usuwany podczas kompresji, ponieważ zawartość treści zmienia się, gdy odpowiedź jest kompresowana.
Nagłówek Content-MD5 jest usuwany podczas kompresji, ponieważ zawartość treści uległa zmianie i hash nie jest już ważny.
Gdy https jest włączony w asp.net core, Brotli nie będzie działać dla kompresji html i json, ale będzie działać dla kompresji js i css. (Możliwe, że długość znaków jest zbyt mała, aby warto było ją kompresować, powinna istnieć możliwość jej ustawienia ).
(koniec)
|
Poprzedni artykuł: Inteligentne zapytania DNS z wieloznacznikiem domenyNastępny artykuł:asp.net core batch zmienia nazwę archiwum zip w pamięci
|