İmzalanmış HTTP Takası (veya "SXG"), Web Paketleri adlı yeni teknolojinin bir alt kümesidir. Bu teknoloji, yayıncıların içeriklerini güvenli bir şekilde taşınabilir hale getirirken (yani diğer tarafların yeniden dağıtabileceği şekilde) içerik bütünlüğünü ve ilişkilendirmesini korumalarını sağlar. Taşınabilir içeriklerin, daha hızlı içerik yayınlama, kullanıcılar arasında içerik paylaşımını kolaylaştırma ve daha basit çevrimdışı deneyimler sunma gibi birçok avantajı vardır.
Peki, İmzalı HTTP Takası nasıl çalışır? Bu teknoloji, yayıncıların tek bir HTTP değişimini (ör.istek/yanıt çifti) imzalamasına olanak tanır. Böylece, imzalı değişim herhangi bir önbelleğe alma sunucusundan yayınlanabilir. Tarayıcı bu imzalı takası yüklediğinde, takastaki imza içeriğin orijinal olarak yayıncının kaynağından geldiğine dair yeterli kanıt olduğundan adres çubuğunda yayıncının URL'sini güvenli bir şekilde gösterebilir.
Bu sayede, içeriğin kaynağı ile içeriği dağıtan kişi birbirinden ayrılır. İçeriğiniz belirli bir sunucuya, bağlantıya veya barındırma hizmetine ihtiyaç duymadan web'de yayınlanabilir. SXG'nin olası kullanım alanları bizi heyecanlandırıyor. Örneğin:
Gizlilik korumalı ön getirme: Sonraki bir gezinme için kaynakları ön getirme (ör. by link rel=prefetch) gezinmeyi çok daha hızlı hale getirebilir ancak gizlilikle ilgili olumsuz yanları da vardır. Örneğin, kaynak farklı olan gezinmeler için kaynakları önceden getirme işlemi, kullanıcı siteyi ziyaret etmese bile kullanıcının bir bilgiyle ilgilenebileceğini hedef siteye açıklar. Öte yandan SXG, kaynak siteye hiç ulaşmadan kaynaktan bağımsız kaynakları hızlı bir önbellekten ön beslemeye olanak tanır. Böylece, kullanıcı ilgisi yalnızca gezinme gerçekleştiğinde ve gerçekleşirse iletilir. Bu özelliğin, kullanıcılarını başka web sitelerine yönlendirmeyi amaçlayan siteler için yararlı olabileceğini düşünüyoruz. Google, özellikle AMP URL'lerini iyileştirmek ve arama sonuçlarındaki tıklamaları hızlandırmak için bu özelliği Google arama sonucu sayfalarında kullanmayı planlıyor.
Sertifikanızın özel anahtarının kontrolünü vermeden CDN kullanmanın avantajları: Aniden popüler hale gelen içerikler (ör.reddit.com'un ilk sayfasından verilen bağlantılar), genellikle içeriğin yayınlandığı sitenin yükünü artırır.Site nispeten küçükse yavaşlama veya hatta geçici olarak kullanılamaz hale gelme eğilimi gösterir. İçerik hızlı ve güçlü önbelleğe alma sunucuları kullanılarak paylaşılırsa bu durumdan kaçınılabilir. SXG, TLS anahtarlarınızı paylaşmadan bunu mümkün kılar.
İmzalı takasları deneme
İmzalı Exchange'ler Chrome 73 ve sonraki sürümlerde kullanılabilir. Daha önce kaynak denemesi olarak sunuluyordu.
SXG'nizi oluşturma
Kaynağınız için SXG oluşturmak üzere (yayıncı olarak) imzayı imzalamak için bir sertifika anahtarına ihtiyacınız vardır ve sertifikanın geçerli bir SXG olarak işlenmesi için özel bir "CanSignHttpExchanges" uzantısına sahip olması gerekir. Kasım 2018 itibarıyla bu uzantıyı destekleyen tek CA DigiCert'tir. SXG için çalışan sertifikayı bu sayfadan isteyebilirsiniz.
SXG sertifikası aldıktan sonra, GitHub'da yayınlanan referans oluşturma araçlarını kullanarak kendi SXG'lerinizi oluşturabilirsiniz.
Chrome'un kod deposundaki gerçek SXG örnek dosyalarına da göz atabilirsiniz (ör. basit bir metin dosyası için oluşturulan en basit örnek olan bu dosya). Bunların öncelikle yerel test için oluşturulduğunu unutmayın. İmzada geçerli sertifika ve zaman damgaları olmasını beklemeyin.
Özelliği yerel olarak test etme
Test amacıyla SXG oluşturmak için kendinden imzalı bir sertifika oluşturabilir ve Chrome'un, sertifika ile oluşturulan SXG'leri özel uzantı olmadan işlemesini sağlamak için chrome://flags/#allow-sxg-certs-without-extension
'yi etkinleştirebilirsiniz.
Sunucunuz, sertifikanız ve SXG'leriniz doğru şekilde ayarlandıysa aşağıdaki gibi bir kod işe yarayacaktır:
<!-- prefetch the sample.sxg -->
<link rel="prefetch" href="https://your-site.com/sample.sxg" />
<!-- clicking the link below should make Chrome navigate to the inner
response of sample.sxg (and the prefetched SXG is used) -->
<a href="https://your-site.com/sample.sxg">Sample</a>
SXG'nin Chrome 73 ve sonraki sürümlerde yalnızca anchor etiketi (<a>
) ve link rel=prefetch
tarafından desteklendiğini unutmayın. Ayrıca, imzanın geçerliliğinin her spesifikasyon için 7 günle sınırlı olduğunu ve bu nedenle imzalı içeriklerinizin geçerlilik süresinin nispeten kısa olduğunu unutmayın.
Geri bildirimde bulunma
Bu denemeyle ilgili geri bildirimlerinizi webpackage-dev@chromium.org adresine gönderebilirsiniz. Ayrıca özellik tartışmasına katılabilir veya Chrome hatasını ekibe bildirebilirsiniz. Geri bildiriminiz, standartlaştırma sürecine ve uygulama sorunlarını gidermemize büyük ölçüde yardımcı olacaktır.