รองรับเบราว์เซอร์สำหรับ URL ที่ขึ้นต้นด้วยเครื่องหมายทับคู่


107

เมื่อเร็ว ๆ นี้ฉันเห็นลิงก์สองสามรายการที่ใช้โดยไม่มีโปรโตคอล ดูเหมือนจะไม่ยากเกินกว่าที่จะเข้าใจ - ฉันคิดว่ามันเป็นความคิดที่ดีและใช้งานง่าย

สำหรับผู้ที่คุณไม่ทราบการใช้ URL like //example.com/script.jsจะชี้ไปที่http://example.com/script.jsหรือhttps://example.com/script.jsขึ้นอยู่กับว่า URL นั้นมาจากhttpหรือhttps URL หรือไม่ ตัวอย่างเช่นการรวมสคริปต์ http หรือรูปภาพจากเพจ https อาจเป็นปัญหาด้านความปลอดภัยดังนั้นวิธีนี้จะช่วยแก้ปัญหานี้ได้โดยไม่จำเป็นต้องตรวจหาโปรโตคอลในโค้ดของคุณ

คำถามของฉันคือมีการรองรับเบราว์เซอร์ / ระบบปฏิบัติการประเภทใด ปลอดภัยที่จะใช้ในการผลิตหรือไม่? แน่นอนมันจะทำให้สิ่งต่างๆง่ายขึ้น

ตัวอย่างง่ายๆและการทดสอบ: http://codetester.org/916c6916

แก้ไข: เพียงแค่ติดตามว่าฉันใช้สิ่งนี้กับเซิร์ฟเวอร์โฆษณาของ บริษัท ของฉันในการผลิตหลายอย่างโดยไม่มีปัญหามาสองปีแล้ว


9
ตอบได้ที่นี่: stackoverflow.com/questions/4659345/… --- กล่าวโดยย่อคืออยู่ในข้อกำหนด RFC ดังนั้นเบราว์เซอร์หลัก ๆ ทั้งหมดควรได้รับการสนับสนุน
Keith

1
@Keith ขอบคุณนั่นเป็นสิ่งที่ดีและทั้งหมด แต่เมื่อมองผ่านสเปค RFC ฉันไม่เห็นอะไรเกี่ยวกับจุดเริ่มต้นของสิ่งนี้ หวังว่าจะพบกับการทดสอบเบราว์เซอร์ขั้นสุดท้ายที่ทำไปแล้ว :)
dtbarne

คำตอบ:


88

พฤติกรรมนี้เป็นส่วนหนึ่งของRFC 1808 (ส่วนที่ 4) ซึ่งมีอายุประมาณ 16 ปีดังนั้นเบราว์เซอร์หลักทุกตัวควร (และไม่) สนับสนุนสิ่งนี้

น่าเศร้าที่มีข้อผิดพลาดกับ IE7 และ -8ซึ่งจะทำให้พวกเขาดาวน์โหลดทรัพยากรสองครั้งหากมีการใช้ URL ที่สัมพันธ์กับโปรโตคอลในlinkหรือ@importซึ่งไม่น่าจะเป็นปัญหาใหญ่ แต่น่าเกลียดและควรคำนึงถึง


นี่เป็นโพสต์เก่า แต่ฉันก็อยากจะบอกว่ามันไม่ใช่แนวปฏิบัติที่ดีเลย เมื่อเร็ว ๆ นี้ฉันมีปัญหาในแดชบอร์ดผู้ดูแลระบบลูกค้าของเรา //code.jquery.com/jquery-2.1.3.min.jsไม่พบURL และไม่ได้โหลดไลบรารี จากนั้นฉันลองโหลดhttp://code.jquery.com/jquery-2.1.3.min.jsและดูหน้าข้อผิดพลาด ฉันสงสัยว่ามีการกำหนดค่าความปลอดภัยของพร็อกซีหรือ VPN หรือไฟร์วอลล์ไว้ภายใน หลังจากอัปเดต URL เพื่อใช้httpsโปรโตคอลทุกอย่างทำงานได้ดี
TwystO

3

หากคุณกำลังพัฒนาบนเครื่องท้องถิ่นมีความเป็นไปได้ที่จะล้มเหลวด้วย src="file://host.com/filename".

ในสถานการณ์นี้คุณต้องระบุรูปแบบอย่างชัดเจน: http://host.com/filenameหรือhttps://host.com/filename.

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.