สตรีม Brotli (.brotli)
IETF มาตรฐานBrotli คืออัลกอริทึมการบีบอัดข้อมูลแบบไม่สูญเสียข้อมูล (lossless) แบบโอเพนซอร์สที่พัฒนาโดย Google โดยได้รับการปรับแต่งเป็นพิเศษสำหรับการพิมพ์บนเว็บ (WOFF2) และการเข้ารหัสเนื้อหา HTTP (Content-Encoding: br) เพื่อเร่งความเร็วในการส่งมอบหน้าเว็บอินเทอร์เน็ต
แปลง BROTLI เป็น GZIP
ตัวแปลงจาก BROTLI เป็น GZIP ฟรีในเบราว์เซอร์ แปลงไฟล์ได้ทันทีบนอุปกรณ์ของคุณ
ตรวจสอบและดู Metadata
ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ Brotli โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:
ลายเซ็นส่วนหัวในระดับไบต์ (Magic Bytes)
ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ Brotli โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:
ลายเซ็น HEX (OFFSET 0):
CE B2 CF 81การแสดงผลรูปแบบ ASCII: βÏ\x81
มาตรฐาน: IETF RFC 7932
ข้อมูลจำเพาะทางเทคนิค
| สถาปัตยกรรมคอนเทนเนอร์ | Raw bitstream framing with optional window size declaration and meta-blocks |
| การบีบอัด | LZ77 sliding dictionary (up to 16 MB), second-order context modeling, and static 120 KB dictionary |
| การจัดลำดับไบต์ (Byte Endianness) | Little-Endian bit-packing |
| พื้นที่สี | N/A (Data Compression Stream) |
| ช่องสัญญาณและโครงสร้าง | General-purpose byte stream compression |
| ขนาดสูงสุด | Arbitrary byte stream length (supports unbounded streaming) |
| ความโปร่งใส | Lossless byte-for-byte exact roundtrip data preservation |
| การสตรีมและแบบโปรเกรสซีฟ | Meta-block chunking allows continuous HTTP chunked transfer streaming |
ตารางเปรียบเทียบทางเทคนิค: Brotli กับคู่แข่ง
| คุณลักษณะทางเทคนิค | Brotli (ปัจจุบัน) | GZ | ZSTD | DEFLATE |
|---|---|---|---|---|
| พจนานุกรมคงที่ในตัว | รวมพจนานุกรมเว็บ 120 KB | ไม่มี (แบบไดนามิกเท่านั้น) | พจนานุกรมที่ผู้ใช้ฝึกฝนได้ | ไม่มี (แบบไดนามิกเท่านั้น) |
| การบีบอัดเว็บ (เทียบกับ Gzip) | เล็กกว่า Gzip 15% - 25% | มาตรฐานพื้นฐาน (Gzip) | เล็กกว่า Gzip 10% - 20% | Deflate พื้นฐาน |
| การเข้ารหัสเนื้อหา HTTP | 'Content-Encoding: br' | 'Content-Encoding: gzip' | 'Content-Encoding: zstd' | 'Content-Encoding: deflate' |
| เป้าหมายการออกแบบหลัก | การส่งข้อความเว็บและฟอนต์เว็บ | การบีบอัดไฟล์ Unix ทั่วไป | ฐานข้อมูลแบบเรียลไทม์และการนำเข้าข้อมูล | อัลกอริทึมการบีบอัดพื้นฐาน |
รูปแบบความเสียหายทั่วไปและคู่มือการกู้คืน Hex
เบราว์เซอร์ไม่สามารถโหลดทรัพยากรได้โดยแสดงข้อผิดพลาด 'ERR_CONTENT_DECODING_FAILED'
สาเหตุหลัก: พร็อกซีหรือเซิร์ฟเวอร์ตัดสตรีม Brotli ก่อนที่จะส่งเมตาบล็อกสุดท้าย
การกู้คืน: ล้างแคชของเบราว์เซอร์ ตรวจสอบการตั้งค่าการบีบอัดของเซิร์ฟเวอร์ หรือคลายการบีบอัดในเครื่องผ่าน File2File
การวิเคราะห์ความปลอดภัยและเวกเตอร์การโจมตีตัวแยกวิเคราะห์
พจนานุกรมคงที่และการสร้างแบบจำลองบริบทของ Brotli จำเป็นต้องมีการตรวจสอบขอบเขตหน่วยความจำอย่างเข้มงวดเพื่อป้องกันการอ้างอิงย้อนกลับที่ผิดรูปแบบ
เวกเตอร์การโจมตีที่ทราบ
- การอ่านพอยน์เตอร์นอกขอบเขตเมื่ออ้างอิงออฟเซ็ตพจนานุกรมคงที่นอกเหนือจากขนาดตาราง
- ระเบิดการคลายการบีบอัด (เทียบเท่ากับ zip bomb) ที่ทำให้หน่วยความจำไคลเอนต์หมดลงจากเพย์โหลดขนาดเล็ก
- บัฟเฟอร์ล้นระหว่างการปรับขนาดบัฟเฟอร์ริงหน้าต่างเลื่อน
แนวทางปฏิบัติที่ดีที่สุดในการป้องกัน:
ประวัติความเป็นมาและเหตุการณ์สำคัญ
ข้อได้เปรียบและจุดเด่นสำคัญ
- อัตราส่วนการบีบอัดดีกว่า Gzip 15% ถึง 25% บนแอสเซทเว็บ HTML, CSS และ JavaScript
- รวมพจนานุกรมคงที่ขนาด 120 KB ที่กำหนดไว้ล่วงหน้าซึ่งประกอบด้วยคำศัพท์เว็บทั่วไป แท็ก HTML และวลีต่างๆ
- ความเร็วในการคลายการบีบอัดสูงมาก ช่วยให้การเรนเดอร์หน้าเว็บฝั่งไคลเอนต์เกือบจะทันที
ข้อจำกัดทางเทคนิคและข้อควรพิจารณา
- การบีบอัดที่ระดับ 11 มีต้นทุนการประมวลผลสูง (เหมาะสมที่สุดสำหรับการบีบอัดแอสเซทคงที่ล่วงหน้า)
- ต้องใช้ HTTPS ในเว็บเบราว์เซอร์ทั้งหมดเพื่อป้องกันความเสียหายจากพร็อกซีโปร่งใส
- ไฟล์ .br ดิบไม่มีส่วนหัวชื่อไฟล์หรือสิทธิ์ที่ฝังอยู่โดยไม่มีการทำคอนเทนเนอร์ภายนอก
เกร็ดความรู้ทางเทคนิคที่น่าสนใจ
- Brotli ตั้งชื่อตาม 'Brötli' ซึ่งแปลว่า 'ขนมปังชิ้นเล็ก' ในภาษาสวิสเยอรมัน
- พจนานุกรมคงที่ขนาด 120 KB ภายใน Brotli มีชิ้นส่วนสนิปเป็ตภาษาอังกฤษ สเปน เยอรมัน จีน และ HTML ทั่วไปนับพันรายการ
- ทราฟฟิกอินเทอร์เน็ตสมัยใหม่กว่า 95% ทั่วทั้ง Cloudflare, Fastly และ Google ถูกส่งมอบโดยใช้การบีบอัด Brotli
คำถามทางเทคนิคที่พบบ่อย
ทำไม Brotli ถึงเร็วกว่า Gzip สำหรับเว็บไซต์?
Brotli บีบอัดไฟล์ HTML, CSS และ JS ให้มีขนาดเล็กกว่า Gzip ถึง 20% ในขณะที่คลายการบีบอัดด้วยความเร็วที่ใกล้เคียงกัน ซึ่งช่วยลดจำนวนรอบการรับส่งข้อมูล (roundtrips) ผ่านเครือข่ายมือถือ
เหตุใด Brotli จึงต้องใช้ HTTPS?
เว็บเบราว์เซอร์รองรับ Brotli ผ่านการเชื่อมต่อ HTTPS ที่ปลอดภัยเท่านั้น เนื่องจากการเข้ารหัสแบบโปร่งใสรุ่นเก่าบนอินเทอร์เน็ตอาจตีความผิดพลาดหรือทำให้การเข้ารหัส 'br' แบบใหม่เสียหายได้
ฉันจะคลายการบีบอัดไฟล์ .br ได้อย่างไร?
คุณสามารถคลายการบีบอัดไฟล์ .br หรือ .brotli เป็นข้อความธรรมดาหรือไฟล์ต้นฉบับได้ทันทีโดยใช้ File2File.app บนเว็บเบราว์เซอร์ของคุณโดยตรง