WebPush

RFC 8030

RFC 8291

 

WebPush protokolü RFC 8030 (HTTP Push kullanarak Teslimat) ve RFC 8291 (Mesaj Şifreleme) tarafından tanımlanır.

 

Web Push, web tarayıcılarına push bildirimleri iletmek için standartlaştırılmış bir protokoldür. Web sitelerinin push mesajlarını kaydetmesini ve almasını sağlayan standart bir web API'si olan Push API'sini kullanır. Push API'si, kullanıcı web sitesinde aktif olarak gezinmiyorken bile bir web sitesinin kullanıcının tarayıcısına push mesajları göndermesine olanak tanır.

 

Web Push kullanmak için, bir web sitesinin önce kullanıcının tarayıcısından bir push aboneliği alması gerekir. Abonelik, benzersiz bir uç nokta URL'si ve bir şifreleme anahtarından oluşur. Uç nokta URL'si, web sitesinin kullanıcının tarayıcısına push mesajları göndermek için kullanabileceği bir URL'dir ve şifreleme anahtarı, push mesajlarını şifrelemek ve şifresini çözmek için kullanılır.

 

Web sitesi bir push aboneliği aldıktan sonra, uç nokta URL'sine bir HTTP isteği yaparak kullanıcının tarayıcısına push mesajları gönderebilir. Push mesajı, Web Push Protocol Message adlı özel bir biçimde gönderilir ve bir dizi başlık ile bir yükten oluşur. Başlıklar, şifreleme anahtarı ve mesajın TTL'si (yaşam süresi) gibi bilgileri içerirken, yük mesajın gerçek içeriğini içerir.

 

Kullanıcının tarayıcısı bir push mesajı aldığında, önce şifreleme anahtarını kullanarak mesajın şifresini çözer. Ardından, kullanıcının yapabileceği bildirimi kapatma veya web sitesini açma gibi ek eylemlerle birlikte bildirimi kullanıcıya gösterir.

 

Anlık iletme mesajlarının güvenliğini ve gizliliğini sağlamak için Web Push, uçtan uca şifreleme kullanır ve anlık iletme aboneliklerinin güvenli bir bağlantı (örneğin HTTPS) üzerinden alınmasını gerektirir. Ayrıca protokol, bir anlık iletme mesajının göndereninin kimliğini doğrulama ve kötüye kullanımı önleme (örneğin bir web sitesinin bir kullanıcıya gönderebileceği anlık iletme mesajı sayısını sınırlandırarak) için mekanizmalar sağlar.

 

Bileşenler

WebPush'u destekleyen 2 bileşen vardır: