브로틀리
Brotli| 원저작자 | 지르키 알라쿠이잘라, 졸탄 사바드카 |
|---|---|
| 개발자 | 지르키 알라쿠이잘라, 유진 클리우치니코프, 로버트 오브릭, 졸탄 사바드카, 로데 반데벤느 |
| 초기 릴리즈 | 2013년 10월 , 전( 10월 15일 |
| 안정된 릴리스 | 1.0.9 / 2020년 8월 27일; 전 ([1] |
| 저장소 | |
| 기입처 | C |
| 운영 체제 | 크로스 플랫폼 |
| 플랫폼 | 휴대용 |
| 유형 | data 압축 |
| 면허증. | MIT 라이선스 |
| 웹 사이트 | github |
Brotli는 구글이 개발한 무손실 데이터 압축 알고리즘입니다.범용 LZ77 무손실 압축 알고리즘, 허프만 부호화 및 2차 컨텍스트 모델링의 조합을 사용합니다.
Brotli는 주로 웹 서버 및 콘텐츠 전송 네트워크에서 HTTP 콘텐츠를 압축하기 위해 사용되며, 인터넷 웹 사이트를 보다 빠르게 로드합니다.gzip의 후속 버전인 Gzip은 모든 주요 웹 브라우저에서 지원되며 gzip보다 더 나은 압축을 제공하기 때문에 점점 더 인기를 끌고 있습니다.
역사
구글의 직원 Jyrki Alakuijala와 Zoltann Szabadka는 WOFF 웹 폰트의 전송 크기를 줄이기 위해 2013년에 Brotli를 개발했습니다.Alakuijala와 Szabadka는 2013-2016년에 Brotli 사양을 완료했습니다.이 규격은 2013년에 [2]: 1 구글의 zopfli deflate 및 gzip 호환 압축 구현을 개발한 Evgenii Kliuchnikov와 Lode Vandevenne이라는 두 명의 추가 저자에 의해 개발된 참조 구현과 함께 제공되었습니다.기존 데이터 형식 사양을 다시 구현한 zopfli와는 달리 Brotli는 새로운 데이터 형식이었고, 저자들은 압축률을 [3]더욱 향상시킬 수 있었습니다.Brotli 규격은 2015년 9월 HTTP 스트림 압축(콘텐츠 인코딩 유형 'br')에 대해 일반화되었습니다.
Internet Engineering Task Force는 Brotli 압축 데이터 형식 사양을 코멘트를 위한 정보 요청으로 승인했습니다. RFC7932).[4]Brotli 데이터 포맷은 Web Open Font [4]: 3 Format의 제2회째에 포함되어 있습니다.W3C에서의 [5][6]폰트 테크놀로지 표준화에 대해 2021년 미국 국립 TV 예술 과학 아카데미로부터 받은 테크놀로지&엔지니어링상(Technology & Engineering Emy Award)을 수상했습니다.
Brotli 지원은 수년간 웹 브라우저에 추가되었으며 2022년 [7]7월 현재 전 세계 사용자의 96%가 이 형식을 지원하는 브라우저를 사용하고 있습니다.
대해서
Brotli는 2013년에 웹 [8]폰트의 오프라인 압축용으로 처음 출시되었습니다.Brotli는 표준 gzip 및 deflate 사양의 zlib 호환 구현인 zopfli의 개발의 연속이었습니다.몇 가지 알고리즘 및 형식 수준 개선으로 인해 Brotli는 gzip 및 형식 수준보다 고밀도 패킹을 가능하게 합니다. 리터럴 및 복사 거리에 대한 컨텍스트 모델 사용, 과거 거리를 통한 복사 거리 설명, 엔트로피 코드 선택에서 전면 이동 큐 사용, 리터럴 및 복사 길이의 공동 엔트로피 코딩, 그래프 allgo 사용블록 분할의 rithms 및 더 큰 역방향 참조 창은 개선된 예입니다.
Brotli 규격은 2015년 9월 HTTP 스트림 압축(콘텐츠 인코딩 유형 'br')에 대해 일반화되었습니다.이 일반화 반복은 자주 사용되는 단어와 구에 대한 사전 정의 사전을 사용하여 압축률을 향상시켰다.구글 소프트웨어 엔지니어들이 2015년 9월에 출시한 Brotli 버전은 일반 무손실 데이터 압축 기능, 특히 HTTP 압축에 중점을 두고 향상된 기능을 포함하고 있습니다.압축비가 개선되고 인코더와 디코더 모두 속도가 향상되었으며 스트리밍 API가 개선되었으며 압축 품질 수준이 향상되었습니다.또, 새로운 릴리스에서는, 디코딩 메모리를 [3]삭감하는 등, 플랫폼 전체의 퍼포먼스가 향상되고 있습니다.
대부분의 범용 압축 알고리즘과 달리 Brotli는 동적으로 채워진("슬라이딩 윈도우") 사전과 더불어 크기가 약 120KiB인 사전이 사용됩니다.사전 정의된 사전에는 텍스트 및 HTML [9][2]문서의 대규모 말뭉치에서 파생된 13,000개 이상의 공통 단어, 구문 및 기타 하위 문자열이 포함되어 있습니다.사전 정의 사전을 사용하면 파일에 일반적으로 사용되는 [10]단어가 대부분 포함된 압축이 증가하는 것으로 나타났습니다.
Brotli의 슬라이딩 윈도우는 16MiB로 제한됩니다.이로 인해 리소스가 제한된 휴대폰에서는 디코딩이 가능하지만 파일이 큰 압축 벤치마크에서는 Brotli의 성능이 저하됩니다.작은 창 크기의 제약은 RFC 7932(Brotli 적절한)와 호환되지 않는 큰 창 브로틀리를 사용하면 완화될 수 있습니다.
Brotli로 압축된 스트림의 콘텐츠 인코딩 유형은 "br"입니다.
구글의 디플레이트 압축 알고리즘의 zopfli 구현은 스낵 크기의 버터를 땋은 빵을 뜻하는 스위스 독일어 zöpfli의 이름을 딴 반면, brotli는 빵 [3]롤을 뜻하는 스위스 독일어 brötli의 이름을 따왔다.구글의 Brotli 사양 구현은 2016년 허용 자유 소프트웨어 MIT 라이센스 조건에 따라 출시되었습니다.Brotli 규격의 정식 검증은 zlib/gzip 압축 형식과 라이브러리의 공동 저자 중 한 명인 Mark Adler에 cf. [4]: 126 의해 독립적으로 구현되었습니다.애들러의 실장은 마찬가지로 허가된 Apache [11]라이선스의 조건에 따라 출시되었습니다.source-to-source haxe 언어를 포함한 다른 규격 구현도 존재합니다.
Brotli는 [12]자체 공유 라이브러리가 있는 터미널 인터페이스에서 Android용 포트로 사용할 수 있습니다.
Brotli 압축은 일반적으로 gzip 대신 사용됩니다. Brotli 압축은 전반적으로 더 나은 [13]압축 기능을 제공하기 때문입니다.gzip 압축에 비해 Brotli로 압축된 JavaScript 파일은 약 15%, HTML 파일은 약 20%, CSS 파일은 약 16% [14]작습니다.
업계 지원
브라우저 및 기타 클라이언트
- Mozilla Firefox는 버전 44(2016년 [15]1월 26일 출시)에서 'br' 콘텐츠 인코딩 방식을 지원하게 되었습니다.
- Google Chrome은 버전 50(2016년 [16]4월 20일 출시)부터 'br' 콘텐츠 인코딩 방식을 지원했습니다.
- Opera는 버전 38(2016년 [16]6월 8일 출시)부터 'br' 콘텐츠 인코딩 방식을 지원했습니다.
- Microsoft Edge는 버전 15(2017년 [17]4월 5일 출시)부터 'br' 콘텐츠 인코딩 방식을 지원했습니다.
- Safari는 버전 11(2017년 10월 5일 출시)부터 'br' 콘텐츠 인코딩 방식을 지원했습니다.
- cURL에는 2017년 [18]11월 29일에 출시된 버전 7.57에서 libbrotli를 사용하는 'br' 콘텐츠 인코딩 방식을 지원하는 컴파일 시간 옵션이 있습니다.
- 7zip은 Brotli에서 7zip-zstd까지 확장 가능합니다.[19]
- PeaZip은 Brotli를 지원합니다.압축 및 추출을 위한 BR 형식
웹 서버
- Apache HTTP Server의 경우 mod_brotli 모듈에서 'br' 콘텐츠 인코딩 방식이 버전 2.[21]4.26부터 지원되고 있습니다.
- Microsoft IIS는 2018년 5월부터 'br' 콘텐츠 인코딩 방법에 대한 지원을 추가하는 [1] 확장 기능을 지원했습니다.
- Microsoft Azure Front Door는 2019년 [23]4월 17일 출시 이후 Brotli를 사용하여[22] 엣지의 콘텐츠를 동적으로 압축할 수 있습니다.
- nginx는 2016년 12월부터 구글에서 제공하는 ngx_brotli 모듈을 보유하고 있습니다.
- Node.js는 버전 11.7.0 이후 내장된 네이티브 en 및 디코더를 갖추고 있으며, 이를 사용하여 'br' 콘텐츠 인코딩을 지원할 수 있습니다.
- Amazon CloudFront는 2020년 [24]9월 현재 Brotli를 사용하여 엣지에서 캐시 가능한 응답을 자동으로 압축할 수 있습니다.
- LiteSpeed Web Server는 2017년 7월 버전 5.2 이후 정적 파일에만 'br' 콘텐츠 인코딩 방식을 포함했습니다.
- Cloudflare CDN은 에지 노드와 [25]사용자 간에 데이터를 압축하는 브로틀리 옵션을 제공합니다.
- NaviServer는 버전 4.99.17b1에서 지원 추가
- Caddy(웹 서버) 2016년 12월 21일부터 0.9.4 버전 이후 정적 압축된 .br 파일을 제공합니다.
- lighttpd mod_deflate는 2020년 11월부터 1.4.56부터[26] .br을 지원합니다.
레퍼런스
- ^ "Releases - google/brotli". Retrieved 13 September 2020 – via GitHub.
- ^ a b 를 클릭합니다Alakuijala, Jyrki; Kliuchnikov, Evgenii; Szabadka, Zoltan; Vandevenne, Lode (22 September 2015), "Comparison of Brotli, Deflate, Zopfli, LZMA, LZHAM and Bzip2 Compression Algorithms" (PDF), The Comprehensive R Archive Network, r-project.org.
- ^ a b c 를 클릭합니다Szabadka, Zoltan (September 22, 2015), "Introducing Brotli: a new compression algorithm for the internet", Google Open Source Blog, Mountain View, CA: opensource.googleblog.com.
- ^ a b c 를 클릭합니다Alakuijala, Jyrki; Szabadka, Zoltan (2016), RFC 7932: Brotli Compressed Data Format, Internet Engineering Task Force Request for Comments, Fremont, CA: IETF Trust.
- ^ "W3C Receives Emmy® Award for Standardizing Font Technology". 2022-06-01.
- ^ "Changing the face of the web: W3C Web Fonts Working Group and MPEG recognized with a Technology & Engineering Emmy® Award". 2022-06-01.
- ^ "Can I use... - Brotli". 2022-06-28.
- ^ Sheeter, Rod (February 18, 2015), "Smaller Fonts with WOFF 2.0 and unicode-range", Google Open Source Blog, Mountain View, CA: opensource.googleblog.com
- ^ 를 클릭합니다Chirgwin, Richard (September 23, 2015), "Google's new squeeze: Brotli compression open-sourced", The Register, theregister.co.uk.
- ^ 를 클릭합니다Larkin, Henry (2007). "Word Indexing for Mobile Device Data Representations". 7th IEEE International Conference on Computer and Information Technology (CIT 2007). pp. 399–404. doi:10.1109/CIT.2007.22. ISBN 978-0-7695-2983-7. S2CID 8707991..
- ^ 를 클릭합니다Adler, Mark (Jan 26, 2015), "Brotli specification review and verification", Adler brotli, San Francisco: GitHub.
- ^ "Brotli as a standalone program for Android". Master-Console(Github).
- ^ Calvano, Paul (2018-07-25). "Brotli Compression: How Much Will It Reduce Your Content?". Retrieved 2021-03-07.
- ^ Pandjarov, Hristo (2021-01-13). "More Site Speed Gains with Brotli Compression Algorithm". SiteGround. Retrieved 2021-03-07.
- ^ 를 클릭합니다Goodger, Ben; et al. (26 January 2016), "Firefox 44 release notes", Mozilla Firefox, Mozilla Foundation.
- ^ a b 를 클릭합니다Baheux, Kenji (15 January 2016), "Accept-encoding: br on HTTPS connection", Chrome Platform Status, chromestatus.com.
- ^ Trace, Rob (December 20, 2016), "Introducing Brotli compression in Microsoft Edge", Microft Edge Developer, blogs.windows.com
- ^ Stenberg, Daniel; et al. "curl - Changes". curl.haxx.se. Retrieved 14 January 2018.
- ^ "README". GitHub. 15 October 2021.
- ^ "Google Brotli: How to compress, open, extract BR files".
- ^ 를 클릭합니다"Changes with Apache 2.4.26", Apache HTTPD repository, svn.apache.org.
- ^ "Caching with Azure Front Door". docs.microsoft.com.
- ^ "Azure Front Door Service is now available". azure.microsoft.com.
- ^ "Amazon CloudFront announces support for Brotli compression". aws.amazon.com.
- ^ "What will Cloudflare compress?". support.cloudflare.com.
- ^ "lighttpd 1.4.56 release info". redmine.lighttpd.net.
- 메모들
- -Finley, Klint (22 September 2015), "Hooli, I Mean Google, Gives Away Compression Code for Free", Wired Online, wired.com 。