Hỗ trợ trình duyệt cho các URL bắt đầu bằng dấu gạch chéo kép


107

Gần đây tôi đã thấy một vài liên kết được sử dụng mà không có giao thức. Nó có vẻ không quá khó hiểu - tôi nghĩ đó là một ý tưởng tuyệt vời và khá trực quan.

Đối với những người bạn không biết, việc sử dụng URL giống như //example.com/script.jssẽ trỏ đến một trong hai http://example.com/script.jshoặc https://example.com/script.jstùy thuộc vào việc URL đó có bắt nguồn từ URL http hay https hay không . Ví dụ: bao gồm tập lệnh http hoặc hình ảnh từ trang https có thể là một mối quan tâm về bảo mật, vì vậy điều này giải quyết vấn đề đó mà không cần phát hiện giao thức trong mã của bạn.

Câu hỏi của tôi là, loại trình duyệt / hệ điều hành hỗ trợ nào cho nó? Nó có an toàn để sử dụng trong sản xuất không? Nó chắc chắn sẽ làm cho mọi thứ dễ dàng hơn một chút.

Ví dụ và thử nghiệm đơn giản: http://codetester.org/916c6916

CHỈNH SỬA: Chỉ là thông tin tiếp theo mà tôi đã sử dụng cái này cho máy chủ quảng cáo của công ty tôi trong sản xuất nhiều thứ mà không có vấn đề gì trong vài năm nay.


9
Đã trả lời ở đây: stackoverflow.com/questions/4659345/… --- Tóm lại, nó nằm trong đặc điểm kỹ thuật RFC nên nó sẽ được hỗ trợ bởi tất cả các trình duyệt chính.
Keith

1
@Keith Cảm ơn, điều đó là tốt và tất cả, nhưng nhìn qua các thông số kỹ thuật của RFC, tôi thực sự không thấy bất cứ điều gì về thứ gạch chéo kép bắt đầu này. Tôi hy vọng sẽ tìm thấy một số thử nghiệm trình duyệt cuối cùng đã được thực hiện. :)
dtbarne

Câu trả lời:


88

Hành vi này là một phần của RFC 1808 (Phần 4) đã có tuổi đời khoảng 16 năm, vì vậy mọi trình duyệt chính nên (và thực hiện) hỗ trợ điều này.

Đáng buồn thay, có một lỗi với IE7 và -8 sẽ khiến họ tải xuống tài nguyên hai lần nếu URL tương đối với giao thức được sử dụng trên linkhoặc @import- điều này không phải là một vấn đề lớn, nhưng nó xấu xí và cần lưu ý.


Đây là một bài viết cũ, nhưng tôi cũng muốn nói rằng nó không phải là một cách thực hành tốt chút nào. Gần đây, tôi đã gặp một số sự cố trên một trong các trang tổng quan quản trị khách hàng của chúng tôi. //code.jquery.com/jquery-2.1.3.min.jsKhông tìm thấy URL và không tải được thư viện. Sau đó, tôi cố gắng tải http://code.jquery.com/jquery-2.1.3.min.jsvà thấy một trang lỗi. Tôi nghi ngờ một proxy hoặc VPN hoặc cấu hình bảo mật tường lửa mà họ đặt nội bộ. Sau khi cập nhật URL để sử dụng httpsgiao thức, mọi thứ hoạt động tốt.
TwystO

3

Nếu bạn đang phát triển trên một máy cục bộ, có khả năng nó sẽ không thành công với src="file://host.com/filename".

Trong tình huống này, bạn cần chỉ định lược đồ một cách rõ ràng: http://host.com/filenamehoặc https://host.com/filename.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.