URL ที่ไม่มี“ http | https”


89

ฉันเพิ่งเรียนรู้จากเพื่อนร่วมงานว่าการละเว้นส่วน "http | https" ของ URL ในลิงก์จะทำให้ URL นั้นใช้รูปแบบใดก็ได้ที่หน้าเว็บใช้อยู่

ตัวอย่างเช่นหากหน้าของฉันเข้าถึงได้ที่http://www.example.comและฉันมีลิงก์ (สังเกต "//" ที่ด้านหน้า):

<a href="https://www.google.com">Google</a>

การเชื่อมโยงที่จะไปhttp://www.google.com

แต่ถ้าฉันเข้าถึงหน้าเว็บที่https://www.example.comด้วยลิงก์เดียวกันมันจะไปที่https://www.google.com

ฉันต้องการค้นหาข้อมูลเพิ่มเติมทางออนไลน์เกี่ยวกับเรื่องนี้ แต่ฉันมีปัญหาในการคิดวลีค้นหาที่ดี หากฉันค้นหา "URL ที่ไม่มี HTTP" หน้าที่ส่งคืนจะเกี่ยวกับ URL ที่มีแบบฟอร์มนี้: "www.example.com" ซึ่งไม่ใช่สิ่งที่ฉันกำลังมองหา

คุณจะเรียกสิ่งนั้นว่า URL ที่ไม่มีแบบแผนหรือไม่? URL ที่ไม่ใช้โปรโตคอล?

สิ่งนี้ใช้ได้กับทุกเบราว์เซอร์หรือไม่ ฉันทดสอบใน FF และ IE 8 และใช้ได้ทั้งสองอย่าง นี่เป็นส่วนหนึ่งของมาตรฐานหรือฉันควรทดสอบเบราว์เซอร์เพิ่มเติม



1
สำหรับการอ้างอิง (เนื่องจากคุณถามว่าจะค้นหาคำใด) การค้นหาของ Google ซึ่งนำฉันไปสู่คำถาม StackOverflow ดั้งเดิมคือ: "absolute url without protocol"
David

คุณไม่ได้ระบุว่าเป็น http หรือ https ดังนั้นเบราว์เซอร์จึงตัดสินใจแทนคุณโดยใช้หน้าสุดท้ายโดยสมมติว่าลิงก์มาจากหน้าเดียวกัน
raym0nd

ขอบคุณ David ลิงก์ไปยังรายการที่ซ้ำกันตอบคำถามของฉันทั้งหมด
topher-j

1
@ เดวิด: ตามตรงคุณจะไม่เรียกมันว่า URL ที่สมบูรณ์หากไม่มีโปรโตคอล มันค่อนข้างเป็น URL สัมพัทธ์
Gumbo

คำตอบ:


73

URL สัมพัทธ์ของโปรโตคอล

คุณอาจได้รับคำเตือนด้านความปลอดภัยที่ผิดปกติในบางเบราว์เซอร์

ดูเพิ่มเติมURL ที่สัมพันธ์กับโปรโตคอล Wikipediaสำหรับคำจำกัดความสั้น ๆ

ในครั้งเดียวขอแนะนำ ; แต่ก้าวไปข้างหน้าก็ควรจะหลีกเลี่ยง

ดูคำถาม Stack Overflow เหตุใดจึงต้องใช้ URL ที่สัมพันธ์กับโปรโตคอลเลย .


15

เรียกว่าการอ้างอิงเส้นทางเครือข่าย (ส่วนที่ขาดหายไปเรียกว่าschemeหรือprotocol) ที่กำหนดไว้ใน RFC3986 ส่วน 4.2

4.2 การอ้างอิงสัมพัทธ์

การอ้างอิงแบบสัมพัทธ์ใช้ประโยชน์จากไวยากรณ์แบบลำดับชั้น (ส่วน 1.2.3) เพื่อแสดงการอ้างอิง URI ที่สัมพันธ์กับช่องว่างชื่อของ URI แบบลำดับชั้นอื่น

  relative-ref  = relative-part [ "?" query ] [ "#" fragment ]

  relative-part = "//" authority path-abempty
                / path-absolute
                / path-noscheme
                / path-empty

URI ที่อ้างถึงโดยการอ้างอิงแบบสัมพัทธ์หรือที่เรียกว่า URI เป้าหมายได้มาจากการใช้อัลกอริทึมการแก้ปัญหาการอ้างอิงของส่วนที่ 5

การอ้างอิงแบบสัมพัทธ์ที่ขึ้นต้นด้วยอักขระทับสองตัวเรียกว่าการอ้างอิงเส้นทางเครือข่าย (ของฉันเน้น); การอ้างอิงดังกล่าวมักไม่ค่อยถูกนำมาใช้ การอ้างอิงสัมพัทธ์ที่ขึ้นต้นด้วยอักขระสแลชเดียวเรียกว่าการอ้างอิงพา ธ สัมบูรณ์ การอ้างอิงแบบสัมพัทธ์ที่ไม่ได้ขึ้นต้นด้วยอักขระสแลชเรียกว่าการอ้างอิงพา ธ สัมพัทธ์

ส่วนเส้นทางที่มีอักขระโคลอน (เช่น "this: that") ไม่สามารถใช้เป็นส่วนแรกของการอ้างอิงเส้นทางสัมพัทธ์ได้เนื่องจากจะเข้าใจผิดว่าเป็นชื่อโครงร่าง ส่วนดังกล่าวต้องนำหน้าด้วยจุด - เซ็กเมนต์ (เช่น "./this:that") เพื่อทำการอ้างอิงเส้นทางสัมพัทธ์


// ไม่สามารถใช้ในแท็กฐานใน html ฉันตั้งค่า <base href = "// abc.com/" และ url ของรูปภาพสัมพัทธ์ <img src = "/ img / logo.jpg> อย่างไรก็ตามเมื่อเปิดบนเบราว์เซอร์ลิงก์รูปภาพจะกลายเป็นไฟล์: /// abc com / img / logo.jpg วิธีแก้ปัญหาใด ๆ
Scott Chu
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.