GZIP 압축파일 (.gz)
IETF 표준Gzip(GZ)은 표준 GNU 압축 유틸리티 및 파일 형식이자 빠른 파일 및 웹 자산 압축을 위해 Unix 운영 체제와 인터넷 HTTP 서버 전반에 걸쳐 보편적으로 배포되어 있습니다.
TAR을(를) GZ(으)로 변환
무료 브라우저 내 TAR-GZ 변환기. 기기에서 파일을 즉시 변환하세요.
검사 및 메타데이터
운영 체제와 파일 분석기는 파일 선두의 바이너리 바이트 시퀀스를 검사하여 GZ 파일을 식별합니다:
바이트 단위 헤더 시그니처 (매직 바이트)
운영 체제와 파일 분석기는 파일 선두의 바이너리 바이트 시퀀스를 검사하여 GZ 파일을 식별합니다:
16진수 시그니처 (오프셋 0):
1F 8B 08ASCII 표현: ..\x08
표준화: IETF RFC 1952
기술 사양
| 컨테이너 아키텍처 | 10-byte header (magic 0x1F 0x8B, method 8, flags, mtime, OS) followed by DEFLATE stream and 8-byte footer |
| 압축 | DEFLATE algorithm (LZ77 sliding window + Huffman coding) |
| 바이트 엔디안 | Little-Endian header and footer integers |
| 색 공간 | N/A (Archive Container) |
| 채널 및 구조 | Single-file compressed byte stream |
| 최대 크기 | Uncompressed size recorded modulo 2^32 (supports unbounded stream lengths) |
| 투명도 | 100% bit-exact lossless data preservation |
| 스트리밍 및 프로그레시브 | Sequential single-pass streaming playback over pipes and HTTP networks |
기술 비교 매트릭스: 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 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 파일의 압축을 즉시 해제하세요.