GZIP 압축파일 (.gz)
IETF 표준Gzip(GZ)은 표준 GNU 압축 유틸리티이자 파일 형식으로, 빠른 파일 및 웹 자산 압축을 위해 Unix 운영체제와 인터넷 HTTP 서버에서 널리 사용됩니다.
TAR을(를) GZ(으)로 변환
무료 브라우저 내 TAR에서 GZ로 변환하는 도구입니다. 기기에서 파일을 즉시 변환할 수 있습니다.
검사 및 메타데이터
운영 체제와 파일 분석기는 파일 선두의 바이너리 바이트 시퀀스를 검사하여 GZ 파일을 식별합니다:
바이트 단위 헤더 시그니처 (매직 바이트)
운영 체제와 파일 분석기는 파일 선두의 바이너리 바이트 시퀀스를 검사하여 GZ 파일을 식별합니다:
16진수 시그니처 (오프셋 0):
1F 8B 08ASCII 표현: ..\x08
표준화: IETF RFC 1952
기술 사양
| 컨테이너 아키텍처 | 10바이트 헤더(매직 바이트 0x1F 0x8B, 방식 8, 플래그, 수정 시각, OS), DEFLATE 스트림 및 8바이트 푸터로 구성 |
| 압축 | DEFLATE 알고리즘(LZ77 슬라이딩 윈도 및 허프만 코딩) |
| 바이트 엔디안 | 리틀 엔디안 헤더 및 푸터 정수 |
| 색 공간 | 해당 없음(아카이브 컨테이너) |
| 채널 및 구조 | 단일 파일의 압축 바이트 스트림 |
| 최대 크기 | 압축 해제 크기를 2^32 모듈로 기록(길이 제한 없는 스트림 지원) |
| 투명도 | 데이터를 비트 단위로 정확하게 보존하는 100% 무손실 압축 |
| 스트리밍 및 프로그레시브 | 파이프와 HTTP 네트워크를 통한 순차 단일 패스 스트리밍 재생 |
기술 비교 매트릭스: GZ 대 경쟁사
| 기술적 속성 | GZ (현재) | BZ2 | BROTLI | ZSTD |
|---|---|---|---|---|
| 압축 해제 속도 | 빠름 (~300 MB/s) | 느림 (~40 MB/s) | 매우 빠름 (~400 MB/s) | 초고속 (>1.5 GB/s) |
| 웹에서 널리 사용 | 모든 브라우저 및 서버의 100% | 웹 브라우저 지원 없음 | 모든 브라우저에서 HTTPS를 통해 지원 | 브라우저 및 서버 지원 증가 중 |
| 다중 파일 패키징 | TAR 컨테이너 필요 (.tar.gz) | TAR 컨테이너 필요 (.tar.bz2) | 원시 스트림 또는 사용자 정의 컨테이너 | TAR 컨테이너 필요 (.tar.zst) |
| 체크섬 검증 | 32비트 CRC (CRC-32) | 블록당 32비트 CRC | 스트림에 내장되지 않음 | 64비트 xxHash |
일반적인 손상 모드 및 헥스 복구 가이드
추출 오류: 'gzip: stdin: unexpected end of file'.
근본 원인: DEFLATE 스트림 또는 8바이트 CRC32 푸터를 차단하는 조기 파일 전송 종료.
복구: gzip -d --keep broken.gz 명령이나 File2File.app Gzip 추출기를 사용해 일부 콘텐츠를 추출하십시오.
보안 분석 및 파서 공격 벡터
Gzip 파서는 압축 해제 폭탄으로부터 보호되어야 하는 사용자 제어 헤더 및 DEFLATE 비트스트림을 처리합니다.
알려진 공격 벡터
- 메가바이트의 Gzip 데이터를 수백 기가바이트의 디스크 공간으로 확장하는 압축 해제 폭탄(zip bomb).
- 헤더에서 선택적 원본 파일 이름 문자열을 읽을 때 발생하는 버퍼 오버플로.
- 32비트 CRC 체크 비교 중 발생하는 정수 오버플로.
방어적 모범 사례: 자동화된 데이터 수집 서비스에서 압축 해제 할당량과 최대 메모리 사용량을 엄격히 제한하십시오.
역사적 배경 및 주요 이력
주요 장점
- 웹 클라이언트 100%가 지원하는 HTTP 웹 압축의 보편적인 기준입니다(“Content-Encoding: gzip”).
- 10바이트 헤더 내에 원본 파일 수정 타임스탬프와 선택적 원본 파일 이름을 보존합니다.
- 압축 해제 시 CPU 사용량이 적어 저전력 모바일 기기와 라우터에서도 원활하게 작동합니다.
기술적 제한 사항 및 단점
- 단일 파일만 압축할 수 있으므로 여러 파일이나 디렉터리를 압축하려면 먼저 TAR 컨테이너에 묶어야 합니다.
- 현대 웹 텍스트에서 Brotli 및 Zstandard와 같은 최신 알고리즘보다 압축률이 낮습니다.
- 푸터의 압축되지 않은 크기 필드가 32비트 모듈로 2^32이므로 4 GB를 초과하는 파일에서 롤오버 표시 버그를 유발합니다.
흥미로운 기술적 상식
- 매직 바이트 0x1F 0x8B는 0x1F가 역사적으로 Unix 'compress' 파일의 첫 번째 바이트였던 반면, 0x8B는 Gzip을 식별했기 때문에 선택되었습니다.
- 인터넷 상의 모든 웹사이트 중 80% 이상이 웹페이지를 브라우저에 전달하기 위해 Gzip 압축을 활용합니다.
- Jean-loup Gailly가 압축 코드를 작성하고 Mark Adler가 압축 해제(인플레이트) 코드를 작성했으며, 두 사람 모두 ACM 소프트웨어 시스템 상을 수상했습니다.
자주 묻는 기술 질문
Gzip으로 폴더를 압축할 수 없는 이유는 무엇입니까?
Gzip은 단일 바이트 스트림을 압축하도록 설계되었습니다. 폴더를 압축하려면 유닉스 시스템에서는 먼저 폴더를 하나의 .tar 파일로 묶은 다음 Gzip으로 압축하여 .tar.gz 파일을 만듭니다.
.gz와 .zip은 어떻게 다릅니까?
.zip은 디렉터리 인덱스와 함께 여러 파일을 하나로 묶는 아카이브 형식입니다. .gz는 단일 파일만 압축하며 유닉스 시스템에서는 주로 tar와 함께 사용됩니다.
Windows 또는 Mac에서 .gz 파일의 압축을 어떻게 해제할 수 있습니까?
소프트웨어를 설치하지 않아도 File2File.app을 사용해 웹 브라우저에서 .gz 파일의 압축을 바로 해제할 수 있습니다.