Brotli 스트림 (.br)
IETF 표준Brotli는 Google이 개발한 오픈 소스 무손실 데이터 압축 알고리즘입니다. 웹 페이지 전송 속도를 높이기 위해 웹 글꼴(WOFF2)과 HTTP 콘텐츠 인코딩(Content-Encoding: br)에 특히 최적화되어 있습니다.
BROTLI을(를) GZIP(으)로 변환
무료 브라우저 내 BROTLI에서 GZIP로 변환하는 도구입니다. 기기에서 파일을 즉시 변환할 수 있습니다.
검사 및 메타데이터
운영 체제와 파일 분석기는 파일 선두의 바이너리 바이트 시퀀스를 검사하여 Brotli 파일을 식별합니다:
바이트 단위 헤더 시그니처 (매직 바이트)
운영 체제와 파일 분석기는 파일 선두의 바이너리 바이트 시퀀스를 검사하여 Brotli 파일을 식별합니다:
16진수 시그니처 (오프셋 0):
CE B2 CF 81ASCII 표현: βÏ\x81
표준화: IETF RFC 7932
기술 사양
| 컨테이너 아키텍처 | 선택적 윈도 크기 선언과 메타블록을 사용하는 원시 비트스트림 프레이밍 |
| 압축 | LZ77 슬라이딩 사전(최대 16MB), 2차 컨텍스트 모델링 및 120KB 정적 사전 |
| 바이트 엔디안 | 리틀 엔디안 비트 패킹 |
| 색 공간 | 해당 없음(데이터 압축 스트림) |
| 채널 및 구조 | 범용 바이트 스트림 압축 |
| 최대 크기 | 임의 길이의 바이트 스트림(길이 제한 없는 스트리밍 지원) |
| 투명도 | 무손실 압축으로 바이트 단위의 정확한 왕복 데이터 보존 |
| 스트리밍 및 프로그레시브 | 메타블록 단위로 분할하여 HTTP 청크 전송 스트리밍을 연속적으로 지원 |
기술 비교 매트릭스: Brotli 대 경쟁사
| 기술적 속성 | Brotli (현재) | GZ | ZSTD | DEFLATE |
|---|---|---|---|---|
| 내장된 정적 사전 | 120KB 웹 사전 포함 | 없음(동적 방식만 지원) | 사용자 학습 가능 사전 | 없음(동적 전용) |
| 웹 압축(Gzip 대비) | Gzip보다 15~25% 작음 | 기준 표준(Gzip) | Gzip보다 10~20% 작음 | 기본 Deflate |
| HTTP 콘텐츠 인코딩 | 'Content-Encoding: br' | 'Content-Encoding: gzip' | 'Content-Encoding: zstd' | 'Content-Encoding: deflate' |
| 주요 설계 목표 | 웹 텍스트 및 웹 폰트 전송 | 일반적인 Unix 파일 압축 | 실시간 데이터베이스 처리 및 데이터 수집 | 기초 압축 알고리즘 |
일반적인 손상 모드 및 헥스 복구 가이드
브라우저가 'ERR_CONTENT_DECODING_FAILED' 오류와 함께 리소스 로드에 실패합니다.
근본 원인: 프록시 또는 서버가 최종 메타 블록이 전송되기 전에 Brotli 스트림을 잘라냈습니다.
복구: 브라우저 캐시를 지우고 서버 압축 설정을 확인하거나 File2File.app을 통해 로컬에서 압축을 해제하십시오.
보안 분석 및 파서 공격 벡터
Brotli의 정적 사전 및 컨텍스트 모델링은 잘못된 형식의 역참조에 대한 엄격한 메모리 경계 검사가 필요합니다.
알려진 공격 벡터
- 테이블 크기를 초과하는 정적 사전 오프셋을 참조할 때 메모리 경계 초과 포인터 읽기
- 소형 페이로드로 클라이언트 메모리를 고갈시키는 압축 해제 폭탄(압축 폭탄에 해당)
- 슬라이딩 윈도우 링 버퍼 크기 조정 중 버퍼 오버플로우
방어적 모범 사례: 신뢰할 수 없는 Brotli 스트림을 압축 해제하는 동안 최대 출력 버퍼 크기를 강제 적용하십시오.
역사적 배경 및 주요 이력
주요 장점
- HTML, CSS 및 JavaScript 웹 자산에서 Gzip보다 15% ~ 25% 더 나은 압축률을 제공합니다.
- 일반적인 웹 단어, HTML 태그 및 구문이 포함된 미리 정의된 120KB 정적 사전을 통합합니다.
- 매우 빠른 압축 해제 속도로 클라이언트 측 페이지 렌더링이 거의 즉각적으로 이루어집니다.
기술적 제한 사항 및 단점
- 레벨 11에서의 압축은 연산 집약적입니다(정적 자산 사전 압축에 가장 적합).
- 투명 프록시 손상을 방지하기 위해 모든 웹 브라우저에서 HTTPS가 필요합니다.
- 원시 .br 파일에는 외부 컨테이너화가 없으면 내장된 파일 이름이나 권한 헤더가 없습니다.
흥미로운 기술적 상식
- Brotli는 스위스 독일어로 '작은 빵'을 뜻하는 'Brötli'에서 이름을 따왔습니다.
- Brotli 내부의 120KB 정적 사전에는 수천 개의 일반적인 영어, 스페인어, 독일어, 중국어 및 HTML 스니펫이 포함되어 있습니다.
- Cloudflare, Fastly 및 Google의 전체 최신 인터넷 트래픽의 95% 이상이 Brotli 압축을 사용하여 전달됩니다.
자주 묻는 기술 질문
웹사이트에서 Brotli가 Gzip보다 빠른 이유는 무엇입니까?
Brotli는 HTML, CSS 및 JS 파일을 Gzip보다 20% 더 작게 압축하면서도 비슷한 속도로 압축을 해제합니다. 따라서 셀룰러 네트워크에서 필요한 왕복 통신 횟수가 줄어듭니다.
Brotli에 HTTPS가 필요한 이유는 무엇입니까?
인터넷상의 레거시 투명 프록시가 새로운 'br' 인코딩을 오해석하거나 손상시킬 수 있기 때문에, 웹 브라우저는 보안이 적용된 HTTPS 연결에서만 Brotli를 지원합니다.
.br 파일의 압축을 어떻게 해제할 수 있습니까?
웹 브라우저에서 File2File.app을 사용하면 .br 또는 .brotli 파일의 압축을 일반 텍스트나 원본 파일로 바로 해제할 수 있습니다.