Akhir-akhir ini saya melihat blok kode yang berfungsi seperti ini:
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
Dan menurut RFC 2396 (URI Syntax) dan RFC 2616 (HTTP 1.1) URI ini yang dimulai dengan dua garis miring adalah valid, tetapi sayangnya RFC tidak benar-benar menjelaskannya.
Adakah yang bisa mengarahkan saya ke sumber daya yang menjelaskan bagaimana browser akan / harus / melakukan proses URI ini?
html
http
uri
protocol-relative
pagid
sumber
sumber
../g
- ini akan menggunakan protokol saat ini dan mengarah kehttp://a/b/c/g
.xml:base
untuk mengaturnya secara eksplisit pada elemen apa pun . Secara default dalam HTML, URI dasar adalah URI halaman yang sama (tetapi di dalam file CSS, URI dasar relatif terhadap uri CSS, bukan HTML yang berisi , tetapi IE yang lebih lama membuatnya relatif terhadap HTML). Dalam protokol dan bahasa lain, ini bisa berbeda (dalam XSLT, tergantung pada item saat ini, misalnya). Lihat juga<html:base>
.http
! Itu tergantung pada protokol konteks halaman. Jika konteks dimuat di bawahhttp://a/b/c/d;p?q
, maka//g
memang memutuskan untukhttp://g
. Tetapi jika halaman itu dimuathttp://a/b/c/d;p?q
maka hasilnya akan seperti ituhttps://g
. Dan juga jangan lupa tentang protokol lain sepertifile://
(halaman dimuat dari disk) - yang pasti akan membuat Anda banyak pusing.Ini adalah URL relatif protokol. Mereka menunjuk ke sebuah alamat, dengan tetap menggunakan protokol saat ini.
Notasi ini sering digunakan untuk menghindari masalah "konten campuran" (keluhan pesan peringatan IE
http
danhttps
sumber daya pada halaman HTTPS yang sama).Pembaruan: Dokumentasi resmi di RFC 3986:
sumber
Mereka adalah url protokol independen. Jika halaman web disajikan di https maka permintaan menggunakan https, jika http maka http.
Paul Irish tampaknya telah mempopulerkannya dengan memasukkannya ke dalam kode boilerplate-nya.
sumber
Ketahuilah bahwa ini bukan hanya http atau https yang independen, tetapi juga file , ftp , dll.
Artinya jika Anda membuka file .htm langsung di browser Anda di localhost, browser akan menyelesaikan // sebagai protokol file dan halaman Anda tidak akan berfungsi. Ini dapat menyebabkan masalah di situs web yang dikemas sebagai aplikasi "asli" menggunakan alat seperti Electron, PhoneGap, dll.
Contoh:
<script src="//mywebsite.com/resource.js"></script>
untuk
<script src="file://mywebsite.com/resource.js"></script>
sumber