Guide
Base64 Görsel URI: Gömme Ne Zaman Kazanır?
Bir görseli satır içine gömmek ağ gidiş-dönüşünü önler, ama aynı zamanda tarayıcının o görseli kendi başına asla önbelleğe alamayacağı anlamına gelir.
By Buğra SözeriPublished
Bir Base64 data URI, tarayıcının istemesi gereken ayrı bir görsel dosyasına referans vermek yerine, bir görselin baytlarını doğrudan HTML, CSS veya JSON içine bir metin dizesi olarak gömmenizi sağlar. data:image/png;base64,iVBORw0KGgo... şeklinde görünür ve bir <img src> veya CSS background-image içine yapıştırıldığında, tarayıcı onu hiçbir ek ağ isteği olmadan çözer ve işler. Bu saf bir kazanç gibi görünür — daha az gidiş-dönüş genellikle daha hızlıdır — ama bir bedeli başka bir bedelle takas eder ve bu takas yalnızca belirli, çoğunlukla küçük kullanım durumları için mantıklıdır.
Kazandığınız şey: bir istek daha az
Her ayrı görsel dosyası ayrı bir HTTP isteğidir ve birçok küçük simgeye sahip bir sayfada, bu isteklerin her biri kendi gecikme yükünü taşır — DNS (farklı bir sunucuysa), bağlantı kurulumu ve gidiş-dönüş süresi — bunlar toplamda baytların kendisinden daha fazla gecikmeye neden olabilir. Sık tekrar kullanılan bir avuç küçük simgeyi Base64 olarak satır içine gömmek, bu istekleri tarayıcının zaten yüklediği belgenin içine sıkıştırır; bu, o belirli desen için gerçekten daha hızlıdır.
Kaybettiğiniz şey: boyut ve önbellekleme
Base64, kodlanmış boyutu ham dosyaya kıyasla kabaca üçte bir oranında şişirir — tam matematik için Base64'ün dosyaları neden büyüttüğüne bakın — ve bu şişirilmiş dize HTML veya CSS belgesinin kendisinin bir parçası haline gelir. Bu, tarayıcının artık görseli bağımsız olarak önbelleğe alamaması anlamına gelir: sayfayı her yeniden aldığında veya yeniden ayrıştırdığında, normal bir .png dosyasında olduğu gibi diskten önbelleğe alınmış bir kopyayı çekmek yerine, görsel baytlarını her şeyle birlikte yeniden indirir. Düzinelerce sayfada tekrar kullanılan bir simge için bu, tek bir önbelleğe alınmış dosya yerine düzinelerce tekrarlanan indirme demektir.
Kestirme kural: boyut ve tekrar kullanım
| Durum | Daha iyi seçim |
|---|---|
| Minik simge (~2 KB altı), bir kez kullanılan | Base64 satır içi |
| Küçük simge, birçok sayfada tekrar kullanılan | Normal, önbelleğe alınabilir dosya |
| Geç yüklenen görseller için bulanık yer tutucu | Base64 satır içi (tasarım gereği minik) |
| Herhangi bir fotoğraf veya öne çıkan görsel | Her zaman normal, önbelleğe alınabilir dosya |
Neredeyse hiçbir zaman mantıklı olmayan desen, tam bir fotoğrafı veya öne çıkan bir görseli satır içine gömmektir — boyut cezası ve kaybedilen önbellekleme, bu ölçekte hiçbir dengeleyici fayda olmadan aleyhinize çalışır. Küçük, statik, sık tekrarlanan varlıklara bağlı kalın ve karar vermeden önce tam kodlanmış boyutu görmek için görselden Base64'e dönüştürücüyü kullanın.
Frequently asked questions
- Bir Base64 görsel data URI'si nasıl görünür?
- data: ile başlayan, ardından MIME türü, kodlama ve Base64 ile kodlanmış baytlardan oluşan tek bir dizedir — örneğin data:image/png;base64,iVBORw0KGgoAAAANSU... — normal bir görsel URL'sinin kullanılabileceği her yerde, bir <img src>, bir CSS background-image veya bir SVG <image> etiketinde kullanılabilir.
- Base64 görsel kullanmak sayfa performansına zarar verir mi?
- Küçük simgelerin ötesindeki her şey için zarar verebilir. Kodlanmış dize, orijinal dosyadan yaklaşık %33 daha büyüktür, tarayıcı tarafından ayrı olarak önbelleğe alınamaz (HTML veya CSS belgesinin kendisine gömülüdür) ve büyük satır içi görseller ilk sayfa yükünü şişirerek sayfadaki her şeyin işlenmesini geciktirir.
- Bir görseli gerçekten ne zaman Base64 olarak gömmelisiniz?
- Bir ağ isteğinden tasarruf etmenin boyut cezasına ağır bastığı çok küçük, sık tekrar kullanılan varlıklar için — simgeler, minik arayüz sprite'ları, geç yüklenen görseller için bir bulanık yer tutucu. Birkaç kilobayttan büyük veya birden fazla sayfada tekrar kullanılan herhangi bir görsel için, normal, önbelleğe alınabilir bir görsel dosyası neredeyse her zaman daha iyi performans gösterir.
- Bir Base64 görseli doğrudan CSS içine gömebilir miyim?
- Evet — background-image: url('data:image/png;base64,...') herhangi bir modern tarayıcıda çalışır ve ek bir HTTP isteği olmadan minik tekrarlayan arka plan desenlerini veya simgeleri satır içine gömmenin yaygın bir yoludur.
Sources & references
Authoritative references cited by this piece. Verified by Buğra Sözeri on the dates shown and re-checked at every deploy.
- IETF RFC 2397 — The 'data' URL scheme — Satır içi içerik gömmek için kullanılan data: URI biçimini tanımlayan spesifikasyon(as of )
- web.dev — Encode images to Base64 (or not) — Google'ın satır içi Base64 görsellerin sayfa performansına ne zaman yardımcı olduğu ya da zarar verdiğine dair rehberi(as of )
Related
Published September 25, 2026