Alan genelinde komut dosyası oluşturmayı sınırlandırmak ve tarayıcıdan özel kaynaklar istemek için yeni bir HTTP yanıt başlığı.
Origin-Agent-Cluster
, yeni bir HTTP yanıt başlığıdır. Bu başlık, tarayıcıya
Aynı sitenin çapraz kaynak sayfaları arasında eşzamanlı komut dosyası erişimi. Tarayıcılar ayrıca
Origin-Agent-Cluster
ipucu olarak, kaynağınızın
özel bir süreçtir.
Tarayıcı uyumluluğu
Şu anda Origin-Agent-Cluster
başlığı yalnızca Chrome 88 ve sonraki sürümlerde uygulanmaktadır. Tasarımında
değerli olarak işaretleyen Mozilla Firefox temsilcileriyle yakın işbirliği içinde
prototip oluşturma ve bir
ön olumlu
resepsiyon:
webKit'in temsilcilerimizden yararlanabilirsiniz.
Ancak bu süre zarfında Origin-Agent-Cluster
üstbilgisinin tüm
elde etti. Anlamayan tarayıcılar onu yok sayar. Ve son olarak,
kaynak içeren veya kaynaklarla ilişkili aracı kümeleri, site içeren veya sitelerle ilişkili olanlardan daha az şey yapabilir (
varsayılan olarak güncellenirse endişe edilecek bir birlikte çalışabilirlik sorunu yoktur.
Tarayıcılar neden aynı site kaynaklarını otomatik olarak ayıramaz?
Web, bir güvenlik özelliği olan aynı kaynak politikasına dayanır.
Dokümanların ve komut dosyalarının başka bir kullanıcıya ait kaynaklarla
origin. Örneğin, https://a.example
adresinde barındırılan bir sayfa
https://b.example
veya https://sub.a.example
adresindeki farklı bir kaynak.
Arka planda tarayıcılar, kaynakların birbirinden farklı şekillerde sağladığı ayırmayı kullanır. Eski Birbirlerinin verilerine erişemeyeceği halde farklı kaynaklar için İşletim sistemi iş parçacıkları, işlemler ve bellek ayırma gibi kaynakları paylaşma Bu demek oluyor ki diğer sekmeleri de yavaşlatıyordu. Bir sekme çok fazla bellek kullandıysa tüm tarayıcının kilitlenmesine neden olur.
Bugünlerde tarayıcılar daha sofistikedir ve farklı başlangıç noktalarını farklı daha fazla bilgi edineceksiniz. Bunun tam olarak işleyiş şekli tarayıcıya göre değişir: Çoğu tarayıcıda belirli bir düzeyde ayırma vardır görebilirsiniz, ancak tek bir sekme içindeki farklı iframe'ler aynı işlemi paylaşabilir. Süreçler ise Ancak bu komutlar, bu dosyalarda çok fazla bellek oluşmasını önlemek için buluşsal yöntemler kullanır: Örneğin, Firefox kullanıcı tarafından yapılandırılabilen bir işlem sınırı vardır. Ayrıca Chrome, masaüstü (bellek miktarı daha fazla olduğunda) ile mobil (ör. çok nadirdir).
Bu buluşsal yöntemler mükemmel değildir. Bu kişiler önemli bir sınırlamayla karşı karşıyadırlar: çünkü
https://sub.a.example
ve
https://a.example
kullanarak, tarayıcılar, alt alan adlarını otomatik olarak
bir iletişim kurmaktır.
Bu varsayılan davranış "site içeren veya sitelerle ilişkili aracı kümeleri" olarak adlandırılır. Yani tarayıcı, sayfaları temel alarak
sitesinde bulabilirsiniz. Yeni Origin-Agent-Cluster
başlığı, tarayıcıdan bu varsayılanı değiştirmesini ister
belirli bir sayfa için davranış biçimi (kaynak içeren veya kaynaklarla ilişkili aracı kümeye yerleştirilerek)
tamamen aynı kaynağa sahip diğer sayfalarla değiştirin. Özellikle aynı sitenin çapraz kaynak sayfaları
aracı kümesinden hariç tutulur.
Bu ayırma, tarayıcıların bu yeni kaynak içeren veya kaynaklarla ilişkili aracı kümelerine kendi verilerini vermelerine olanak tanır.
diğer kaynaklarla birleştirilmeyen özel kaynaklardır. Örneğin, bu tür sayfalar
ayrı ileti dizilerinde planlanabilir. Yeni bir URL'ye
Origin-Agent-Cluster
üstbilgisini eklerseniz, tarayıcınıza sayfanın
bu tür özel kaynaklardan yararlanabileceksiniz.
Ancak ayırma işlemini gerçekleştirmek ve bu avantajları elde etmek için tarayıcının bazı eski özelliklere erişmeye devam edebilir.
Kaynak içeren veya kaynaklarla ilişkili sayfaların yapamayacağı işlemler
Sayfanız kaynak içeren veya kaynaklarla ilişkili bir aracı kümesinde olduğunda aynı siteyle konuşma özelliklerinin bir kısmını kaybedersiniz çapraz kaynak sayfaları arasında yer alıyor. Özellikle:
Artık şu ayarları yapamazsınız:
document.domain
. Bu, Normalde aynı site çapraz kaynak sayfalarının her birine eşzamanlı olarak erişmesine izin veren eski özellik other'ın DOM'sini ekler ancak kaynak içeren veya kaynaklarla ilişkili aracı kümelerinde devre dışıdır.Artık gönderemezsiniz
WebAssembly.Module
aynı sitenin diğer çapraz kaynak sayfalarına nesneleripostMessage()
aracılığıyla gönderebilir.(Yalnızca Chrome) Artık
SharedArrayBuffer
veyaWebAssembly.Memory
nesneleri.
Kaynak içeren veya kaynaklarla ilişkili aracı kümeleri ne zaman kullanılır?
Origin-Agent-Cluster
başlığından en çok faydalanan kaynaklar şunlardır:
Mümkün olduğunda kendi özel kaynaklarından en iyi performansı elde edin. Örnek olarak şunlar verilebilir: performansı yoğun oyunlar, video konferans siteleri veya multimedya oluşturma uygulamaları
Kaynağı farklı, ancak aynı siteye sahip, kaynağı yoğun bir şekilde kullanan iframe'ler içerir. Örneğin,
https://mail.example.com
,https://chat.example.com
iframe yerleştirir, kaynak anahtarlamahttps://mail.example.com/
, sohbet ekibi tarafından yazılan kodun yanlışlıkla yazılmamasını sağlar. posta ekibi tarafından yazılan koda müdahale eder ve tarayıcı tarafından bunların ayrı birbirlerine olan performanslarının etkisini azaltmayı etkili bir şekilde çalışır.Aynı sitenin farklı bir kaynağına sahip sayfalara yerleştirilmesini bekleyin yoğun bir kaynaktır. Örneğin,
https://customerservicewidget.example.com
görüntülü sohbet için çok sayıda kaynak bulunuyor ve bu kaynaklar boyunca çeşitlihttps://*.example.com
, bu widget'ı yöneten ekipOrigin-Agent-Cluster
başlığıyla ilgili analizleri ve sunumları yerleştirenler üzerindeki performans etkisini azaltmayı deneyin.
Ayrıca, yukarıda anlatılan nadiren kullanılan kaynaklar arası iletişim özelliklerini ve sitenizin HTTPS.
Ancak sonuçta bunlar sadece birer yönerge. Kaynak içeren veya kaynaklarla ilişkili aracı kümelerinin sitenize yardımcı olup olmayacağı belirlemenin en iyi yolu ölçümlerdir. Özellikle, planlarınızı Web Verileriniz ve potansiyel olarak belleğiniz kullanımını inceleyin. (Bellek kullanımı: özellikle de potansiyel bir endişedir çünkü oyundaki işlem sayısının artması, işlem başına bellek ek yükü oluşturur.) Kaynak anahtarlama özelliğini kullanıma sunup en iyisinin gerçekleşmesini umut etmekle yetinmemelisiniz.
Bunun kökler arası erişime kapalı olması ile nasıl bir ilişkisi var?
Origin-Agent-Cluster
başlığı aracılığıyla aracı kümelerinin kaynak anahtarı oluşturma işlemi ilişkili ancak ayrıdır
Cross-Origin-Opener-Policy
aracılığıyla kaynaklar arası erişime kapalı ve
Cross-Origin-Embedder-Policy
başlık.
Kendisini kökler arası erişime kapalı yapan tüm siteler, aynı aynı site çapraz kaynağını da devre dışı bırakır.
iletişim özelliklerini Origin-Agent-Cluster
üstbilgisini kullanırken olduğu gibi güncelleyin. Ancak
Kaynaklar arası erişime kapalı olan ek bir kaynak olarak Origin-Agent-Cluster
üstbilgisi,
değiştirmek için tarayıcıya bir ipucu gönderir. Yani kendi projenizde
Origin-Agent-Cluster
üstbilgisini uygulayarak ve sonuçları, sayfa düzeninde bir değişiklik
kökler arası erişime kapalı.
Origin-Agent-Cluster
üstbilgisi nasıl kullanılır?
Origin-Agent-Cluster
üst bilgisini kullanmak için web sunucunuzu aşağıdaki HTTP kodunu gönderecek şekilde yapılandırın
yanıt başlığı:
Origin-Agent-Cluster: ?1
?1
değeri, yapılandırılmış
true
boole değeri için üstbilgi söz dizimi
değer.
Bu üstbilgiyi yalnızca bazı sayfalara değil, kaynağınızdaki tüm yanıtlara göndermeniz önemlidir. Aksi takdirde, tarayıcının "hatırladığı" sonuçlarda tutarsızlığa neden olabilirsiniz. kaynak anahtarı görüntüleme isteğini yerine getirir ve bunu istemeyen sayfalarda bile kaynak anahtarları olur. Ya da tam tersi: İlk sayfada üst bilgisi yoksa tarayıcı, kaynağınızın giriş bilgilerini almak istemediğini veya sonraki sayfalarda üstbilgiyi yoksayar.
Bu "bellek"in nedeni bir kaynak için anahtarlamanın tutarlılığını sağlamaktır. Bir kampanyadaki bazı sayfalar
kaynak içeren veya kaynaklarla ilişkili olmayanlar varsa,
ve bu kümenin birbiriyle konuşmasına izin verilmiyordu. Bu,
hem web geliştiricileri hem de tarayıcının dahili bileşenleri için çok tuhaf. Spesifikasyon
Origin-Agent-Cluster
değeri, daha önce olanla tutarsızsa üst bilgiyi yoksayar
görünür. Chrome'da bu işlem konsol uyarısıyla sonuçlanır.
Bu tutarlılık bir göz atma bağlam grubu (sekme, pencere veya
window.opener
, frames[0]
veya
window.parent
. Bu, bir kaynağın kaynak veya site anahtarıyla ilgili durumu (
veya başlığını görememesi durumunda) için tamamen yeni bir
sekmesinde eskisine hiçbir şekilde bağlı değildir.
Bu ayrıntılar, Origin-Agent-Cluster
başlığını test etmek için önemli olabilir. İlk kez eklenirken
sayfayı yeniden yüklemek işe yaramaz; sekmeyi kapatmanız ve yeni bir sekme açmanız gerekir.
bir.
Origin-Agent-Cluster
üstbilgisinin uygulanıp uygulanmadığını kontrol etmek için JavaScript kullanın
window.originAgentCluster
mülkü. Başlığın (veya diğertrue
çapraz kaynak izolasyonu gibi mekanizmalar kaynak anahtarı oluşturmaya neden olduysa; false
olmadığında; ve undefined
, Origin-Agent-Cluster
üstbilgisini uygulamayan tarayıcılarda.
Bu verilerin analiz platformunuza kaydedilmesi, yapılandırdığınız değerli bir kontrol sağlayabilir.
doğru şekilde ekleyebilirsiniz.
Son olarak, Origin-Agent-Cluster
üstbilgisinin yalnızca güvenli
bağlamlar (ör. HTTPS'de)
sayfalarında veya http://localhost
sayfasında gösterilir. Yerel ana makine dışındaki HTTP sayfaları, kaynak içeren veya kaynaklarla ilişkili aracıyı desteklemez
fark edebilirsiniz.
Kaynak anahtarı oluşturma bir güvenlik özelliği değildir
Kaynak içeren veya kaynaklarla ilişkili bir aracı kümesi kullanıldığında, kaynağınızı eşzamanlı erişimden izole eder
aynı site çapraz kaynak sayfalarında yer alıyorsa, site yöneticisinin koruma
güvenlikle ilgili başlıkları
Cross-Origin-Resource-Policy
ve
Cross-Origin-Opener-Policy
.
Özellikle, aşağıdakiler gibi yan kanal saldırılarına karşı güvenilir bir koruma sağlamaz.
Spectre.
Bu biraz şaşırtıcı olabilir çünkü kaynak anahtarlama bazen kaynağınızın kendi haline gelmesine neden olabilir.
ve ayrı süreçler, yan kanal saldırılarına karşı önemli bir savunmadır. Ama unutmayın
Origin-Agent-Cluster
başlığının bu anlamda yalnızca bir ipucu olduğuna dikkat edin. Tarayıcı,
kaynağınıza ayrı bir süreç verme yükümlülüğü altındadır ve bunu çeşitli nedenlerle yapmayabilir:
Tarayıcı, bunu yapacak teknolojiyi uygulamayabilir. Örneğin, şu anda Safari ve Firefox. ayrı sekmeleri kendi işlemlerine koyabilir, ancak iframe'ler için henüz bunu yapamaz.
Tarayıcı, ayrı bir işlemin ek yüküne değmeyeceğine karar verebilir. Örneğin, Düşük bellekli Android cihazlarda veya Android WebView'da Chrome mümkün olduğunca az işlem kullanır.
Tarayıcı,
Origin-Agent-Cluster
üstbilgisinde belirtilen isteği yerine getirmek isteyebilir. Ancak süreçlerden farklı izolasyon teknolojileri kullanarak bunu yapabilir. Örneğin, Chrome keşfetme işlemler yerine iş parçacıkları kullanarak gerçekleşebilir.Kullanıcı veya farklı bir sitede çalıştırılan kod, daha önce site içeren veya sitelerle ilişkili bir sayfaya gitmiş olabilir tutarlılık garantisinin devreye girmesine neden olur ve
Origin-Agent-Cluster
üstbilgisi tamamen yoksayılacak.
Bu nedenle, kaynak içeren veya kaynaklarla ilişkili aracı kümelerini bir güvenlik özelliği olarak düşünmemek önemlidir. Bunun yerine, tarayıcının kaynak ayırmaya öncelik vermesine yardımcı olur. Bunu yapmak için olduğunu ve sizin için uygun olan belirli kaynaklardan vazgeçmeye karşılığında kullanılabilir.
Geri bildirim
Origin-Agent-Cluster
cihazınızı kullanıyorsanız veya kullanmayı düşünüyorsanız Chrome ekibi görüşlerinizi öğrenmek ister.
kullanabilirsiniz. Kamu yararı ve desteğiniz, özellikleri önceliklendirmemize ve diğer
ne kadar önemli olduklarını bilmeniz önemlidir. @ChromiumDev adresine tweet atın ve
Chrome DevRel'ın düşüncelerinizi ve deneyimlerinizi öğrenmesini sağlayın.
Spesifikasyon veya özelliğin nasıl çalıştığıyla ilgili ayrıntılar hakkında daha fazla sorunuz varsa
HTML Standard GitHub deposunda bir sorun bildirin. Şu anda
veya Chrome'un uygulanmasıyla ilgili herhangi bir sorunla karşılaşırsanız şu adresten hata bildirebilirsiniz:
new.crbug.com
değerini Internals>Sandbox>SiteIsolation
olarak değiştirin.
Daha fazla bilgi
Kaynak içeren veya kaynaklarla ilişkili aracı kümeleri hakkında daha fazla bilgi edinmek için aşağıdaki bağlantılardan ayrıntılı bilgileri inceleyebilirsiniz:
- Demo ve demo kaynak
- Açıklayıcı
- Spesifikasyon
- İzleme hataları: Chrome, Firefox Safari