Gwtar: Tek Bir HTML Dosyasında Tüm Web Sitesini Saklamak

Gwtar: Tek Bir HTML Dosyasında Tüm Web Sitesini Saklamak
Gwtar: Tek Bir HTML Dosyasında Tüm Web Sitesini Saklamak
Web’in en eski sorunlarından biri, arşivlenmesi zor olan dinamik içerikler. Bir web sitesi, yüzlerce CSS, JavaScript, görsel ve font dosyasından oluşur. Bunları tek bir dosyada saklamak, genellikle dosyanın tonlarca ağırlığa ulaşmasına ve tarayıcıda yavaşlamaya neden olur. Ancak Gwern Branwen ve Said Achmiz’in yarattığı Gwtar, bu soruna tamamen farklı bir bakış açısı getiriyor: Yüklemeyi durdur, sonra içinden çek.
Nasıl Çalışıyor? Tarayıcıyı Yanıltmak
Gwtar’ın sırrı, tarayıcının doğal davranışını kullanmakta. Normalde bir HTML sayfası açıldığında, tarayıcı tüm kaynakları — CSS, JS, görseller — sırayla indirmeye başlar. Gwtar ise bu süreci tamamen tersine çeviriyor. Sayfa açılır açılmaz, window.stop() komutu ile tarayıcının tüm indirme işlemlerini anında durduruyor. Bu, kullanıcıya sadece temel bir HTML shell gösteriyor; geri kalan içerikler ise görünmezde, HTML dosyasının içine sıkıştırılmış bir tar arşivi olarak saklanıyor.
Bu arşiv, sıkıştırılmamış (uncompressed) bir biçimde yer alıyor. Sıkıştırma yerine, doğrudan byte bazında erişim imkânı sağlıyor. Daha sonra, JavaScript ile her bir kaynak isteği (örneğin bir resim veya stil dosyası) yakalanıyor. Bu istekler, https://localhost/ gibi geçersiz bir URL’ye yönlendiriliyor — böylece tarayıcı, bu kaynakları gerçekten indirmeye çalışmaz. Ama bu başarısız istekler, PerformanceObserver adlı bir JavaScript API aracılığıyla yakalanıyor.
PerformanceObserver: Kaynak İsteklerini Dinleyen Göz
Bu göz, tarayıcının hangi dosyayı yüklemeye çalıştığını anlık olarak takip ediyor. Örneğin, sayfada /images/logo.png isteği yapılırsa, PerformanceObserver bunu yakalar ve JavaScript kodu, bu dosyanın Gwtar arşivinin içindeki konumunu bulur. Daha sonra, HTTP Range Request kullanarak, sadece o dosyanın byte aralığını (örneğin 1.234.567 ile 1.235.890 arası) arşivden çekiyor. Bu veri, bir blob: URL’ye dönüştürülerek, orijinal isteğin yerine geçiyor. Sonuç? Kullanıcı, tamamen normal bir web sitesi gibi görüyor; ama arkada, tüm içerik bir HTML dosyasının içinde, tek bir dosya olarak saklanıyor.
Neden Bu Kadar Önemli?
- Arşivleme Devrimi: Geleceğin dijital mirasını korumak için, web sitelerini tek bir dosyada saklamak artık mümkün. Bir arşivcisi, 10.000 sayfalık bir web sitesini tek bir .html dosyasına indirip, 100 yıl sonra bile açabilir.
- Ağ Bağımsızlığı: Gwtar dosyaları, internet bağlantısı olmasa bile tamamen çalışır. Sadece bir tarayıcıya ihtiyacınız var.
- Verimlilik: 100 MB’lık bir siteyi tamamen indirmek yerine, sadece 2 MB’lık bir kısmı indirip, gerisini ihtiyaç duyulduğunda çekmek, hem bant genişliği hem de yüklenme süresi açısından büyük bir kazanç.
- Yazılımın Özgürlüğü: Bu yöntem, herhangi bir sunucu, API ya da özel yazılım gerektirmez. Sadece bir tarayıcı yeterli. Bu, web’in en temel prensiplerinden biri olan decentralization’ı yeniden canlandırıyor.
Geleceğe Dair İmalar
Gwtar, sadece bir teknik taktik değil, bir felsefi atılım. Web’in asıl amacı, bilgiye herkese açık, kalıcı ve bağımsız erişim sağlamaktı. Ancak günümüzde, çoğu web sitesi, CDN’ler, JavaScript framework’leri ve üçüncü parti betiklerle kendi kendini zorluyor. Gwtar, bu karmaşıklığı yok ediyor. Bir web sitesi, artık bir kitap gibi olabilir — kapalı, sağlam, içeriğe tamamen sahip ve hiçbir bağımlılık gerektirmeden açılabiliyor.
Gelecekte, arşivciler, kütüphaneler ve hatta bireysel kullanıcılar, web sitelerini Gwtar formatında saklayabilir. Bir derginin 1998’deki sitesi, 2050’de bir öğrencinin tarayıcısında tam olarak orijinal halinde açılabilir. Google’ın Web Archive’ı, artık terabaytlık verileri değil, tek bir HTML dosyası olarak saklayabilir. Bu, dijital zamanın bir tür muze kurma fikrini somutlaştırıyor.
Gwtar’ın yalnızca bir teknik başarı değil, bir bilgi özgürlüğü projesi olduğunu anlamak gerek. Tarayıcılar, artık sadece içerik sunucularına bağlanan pencere değil, kendi kendine yeterli dijital arşivlerin ev sahipliğini yapabilir hale geldi. Bu, web’in ilk günlerindeki basitlik ve dirençli yapıya dönmek anlamına geliyor — sadece şimdi, daha akıllıca ve daha güçlü bir şekilde.


