Signed HTTP Exchange (atau "SXG") adalah subkumpulan teknologi baru yang disebut Web Packages, yang memungkinkan penayang mengubah konten mereka menjadi portabel dengan aman, yaitu tersedia untuk didistribusikan ulang oleh pihak lain, sambil tetap menjaga integritas dan atribusi konten. Konten portabel memiliki banyak manfaat, mulai dari memungkinkan pengiriman konten yang lebih cepat hingga memfasilitasi berbagi konten antarpengguna, dan pengalaman offline yang lebih praktis.
Jadi, bagaimana cara kerja Signed HTTP Exchange? Teknologi ini memungkinkan penayang untuk menandatangani satu pertukaran HTTP (yaitu, pasangan permintaan/respons), dengan cara pertukaran yang ditandatangani dapat dikirim dari server cache mana pun. Saat memuat Signed Exchange ini, browser dapat menampilkan URL penayang dengan aman di kolom URL karena tanda tangan dalam pertukaran tersebut merupakan bukti yang memadai bahwa konten awalnya berasal dari asal penayang.
Hal ini memisahkan asal konten dari siapa yang mendistribusikannya. Konten Anda dapat dipublikasikan di web, tanpa mengandalkan server, koneksi, atau layanan hosting tertentu. Kami sangat antusias dengan kemungkinan penggunaan SXG seperti:
Penambahan data yang menjaga privasi: Meskipun penambahan data resource (misalnya, dengan link rel=prefetch) untuk navigasi berikutnya dapat membuat navigasi terasa jauh lebih cepat, hal ini juga memiliki kelemahan privasi. Misalnya, pengambilan data resource untuk navigasi lintas origin akan mengungkapkan kepada situs tujuan bahwa pengguna berpotensi tertarik pada informasi meskipun pada akhirnya pengguna tidak mengunjungi situs tersebut. Di sisi lain, SXG memungkinkan pramuat resource lintas origin dari cache cepat tanpa pernah menghubungi situs tujuan, sehingga hanya menyampaikan minat pengguna jika dan saat navigasi terjadi. Kami yakin bahwa hal ini dapat berguna untuk situs yang tujuannya adalah mengarahkan pengguna ke situs lain. Secara khusus, Google berencana menggunakannya di halaman hasil penelusuran Google untuk meningkatkan URL AMP dan mempercepat klik pada hasil penelusuran.
Manfaat CDN tanpa menyerahkan kontrol kunci pribadi sertifikat Anda: Konten yang tiba-tiba menjadi populer (misalnya, ditautkan dari halaman pertama reddit.com) sering kali membebani situs tempat konten ditayangkan, dan jika situs relatif kecil, situs tersebut cenderung melambat atau bahkan tidak tersedia untuk sementara. Situasi ini dapat dihindari jika konten dibagikan menggunakan server cache yang cepat dan canggih, dan SXG memungkinkan hal ini tanpa membagikan kunci TLS Anda.
Mencoba Signed HTTP Exchange
Signed Exchanges tersedia di Chrome 73 dan yang lebih baru, dan sebelumnya tersedia sebagai uji coba origin.
Membuat SXG
Untuk membuat SXG bagi origin (sebagai penayang), Anda memerlukan kunci sertifikat untuk menandatangani tanda tangan, dan sertifikat harus memiliki ekstensi"CanSignHttpExchanges" khusus agar dapat diproses sebagai SXG yang valid. Mulai November 2018, DigiCert adalah satu-satunya CA yang mendukung ekstensi ini, dan Anda dapat meminta sertifikat yang berfungsi untuk SXG dari halaman ini.
Setelah mendapatkan sertifikat untuk SXG, Anda dapat membuat SXG Anda sendiri menggunakan alat generator referensi yang dipublikasikan di github.
Anda juga dapat melihat file contoh SXG yang sebenarnya di repositori kode Chrome (misalnya, file ini adalah file yang paling sederhana yang dibuat untuk file teks sederhana). Perhatikan bahwa file tersebut dibuat terutama untuk pengujian lokal. Jangan berharap file tersebut memiliki sertifikat dan stempel waktu yang valid dalam tanda tangan.
Menguji Fitur Secara Lokal
Untuk membuat SXG untuk tujuan pengujian, Anda dapat membuat
sertifikat yang ditandatangani sendiri
dan mengaktifkan chrome://flags/#allow-sxg-certs-without-extension
agar
Chrome memproses SXG yang dibuat dengan sertifikat tanpa ekstensi khusus.
Kode seperti berikut akan berfungsi jika server, sertifikat, dan SXG Anda disiapkan dengan benar:
<!-- 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>
Perhatikan bahwa SXG hanya didukung oleh tag anchor (<a>
) dan link rel=prefetch
di Chrome 73 dan yang lebih baru. Perhatikan juga bahwa validitas tanda tangan dibatasi hingga 7
hari per spesifikasi, sehingga masa berlaku konten yang ditandatangani akan berakhir dengan relatif cepat.
Memberikan Masukan
Kami ingin mendengar masukan Anda tentang eksperimen ini di webpackage-dev@chromium.org. Anda juga dapat bergabung ke diskusi spesifikasi, atau melaporkan bug chrome ke tim. Masukan Anda akan sangat membantu proses standardisasi dan juga membantu kami mengatasi masalah penerapan.