ความคิดเห็นของฉันที่https://core.trac.wordpress.org/ticket/35248#comment:9 :
ข้อความตอบกลับของฉันโดยลิงก์แรก ( https://web.archive.org/web/20160604095348/http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/web-fully-qualified-domain-name.html ):
เริ่มแรกตามที่กำหนดไว้ใน RFC 1738 (§ 3.1) ส่วน "โฮสต์" ของ URL (Common Internet Scheme) URL นั้นเป็นชื่อโดเมนที่ผ่านการรับรองโดยสมบูรณ์และกลไกแบบดั้งเดิมสำหรับการจำแนกชื่อโดเมนที่ผ่านการรับรองโดยสมบูรณ์ - ชื่อโดเมนที่ผ่านการรับรองไม่ได้ใช้ ไม่ว่าจะเป็น example.com หรือ example.com โฮสต์นั้นตั้งใจจะเหมือนกัน
- ฉันคิดว่าเขาไม่ถูกต้องฉันคิดว่า "example.com" ไม่ได้รับอนุญาตใน URL ตาม rfc 1738 ทั้งหมดถูกอ้างถึงในข้อความที่สองและฉันอ้างว่า:
3.1 ไวยากรณ์ของโครงการอินเทอร์เน็ตทั่วไป
// <user>: <รหัสผ่าน> @ <โฮสต์>: <port> / <url เส้นทาง>
เจ้าภาพ
ชื่อโดเมนแบบเต็มของโฮสต์เครือข่าย
และ "example.com" ไม่สามารถใช้ในส่วนหัว http ได้ในขณะนั้นเนื่องจาก rfc 1738 เป็นของปี 1994 และฟิลด์โฮสต์ปรากฏเฉพาะกับ http 1.1 ในปี 1997 (คุณสามารถเช็คอินวิกิพีเดีย)
ดังนั้นมีเพียง fqdn เท่านั้นที่ได้รับอนุญาตใน URL ฉันคิดว่านี่เป็นข้อผิดพลาดใน rfc 1738 เพราะด้วยวิธีดังกล่าวทำให้ ("พยายามสร้าง)" คุณสมบัติโดเมนที่เกี่ยวข้อง "ไม่มีประโยชน์ หากไม่ได้ไม่อนุญาตก็สามารถใช้แท็ก "a" แท็ก hrefs ในไซต์สคริปต์ท้องถิ่นหรือเอกสาร html แบบคงที่ใน บริษัท ใหญ่ที่ใช้โดเมนญาติหากเบราว์เซอร์และเซิร์ฟเวอร์สนับสนุน แต่ถึงแม้ว่า rfc 1738 ไม่อนุญาตพวกเขาคนก็ไม่เชื่อฟังพวกเขายังคงใช้โดเมนระดับบนสุดในรูปแบบที่สัมพันธ์กันโดยไม่มีจุดต่อท้ายดังนั้นการอนุญาตโดย rfc 1738 จึงไม่ใช่ปัญหาในทางปฏิบัติขนาดใหญ่และผู้คนก็ใช้ทางเลือกอื่น ไปยังโดเมนที่เกี่ยวข้อง: พวกเขาเพิ่งสร้างโดเมนระดับบนสุดในท้องถิ่นเช่น "localhost" (และใช้และใช้งานได้โดยไม่ต้องมีจุดต่อท้าย)
จากนั้นเขาก็พูดว่า:
น่าเสียดายที่ในทางปฏิบัติเว็บเบราว์เซอร์มักจะละเมิดข้อกำหนดนั้นและส่งผ่านส่วน "โฮสต์" ผ่านขั้นตอนการรับรองชื่อของไลบรารีไคลเอ็นต์ DNS ของพวกเขาเมื่อทำการแมปชื่อโฮสต์กับชุดที่อยู่ IP (ตัวอย่างเช่นผู้ที่ใช้ไลบรารีไคลเอนต์ BIND DNS จะออกจากชุดตัวเลือก RES_DNSRCH และจะไม่ผนวกจุดต่อท้ายสุดท้ายหากไม่มีอยู่)
- ฉันคิดว่าเขาหมายความว่าโฮสต์ที่ไม่มีจุดต่อท้ายควรถูกโยนออกไปเนื่องจากข้อผิดพลาดและควรส่งผ่านเฉพาะโดเมนแบบสัมบูรณ์ (fqdn) ไปยัง dns ฉันคิดว่าเบราว์เซอร์อาจส่งผ่านโดเมนทั้งหมดไปยัง DNS เพราะผู้คนใช้โดเมนระดับบนสุดที่กำหนดเองเช่น "localhost" และต่อมาใน rfc 2396 เผยแพร่ในปี 1998 อนุญาตให้ใช้โดเมนระดับบนสุดใน URL ที่ไม่มีจุดต่อท้ายได้
จากนั้นผู้เขียน (Jonathan de Boyne Pollard) อ้างถึง rfc 2396 และเสียใจเกี่ยวกับมันเปลี่ยนไปตามพฤติกรรมของมนุษย์ที่จัดตั้งขึ้นเช่นพฤตินัย standarts กล่าวว่าจะดีกว่าถ้าเบราว์เซอร์เชื่อฟัง rfc 1738 และแนะนำให้ทุกคนใช้ fqdn เท่านั้นใน ทุกสถานที่ตามที่ได้รับคำสั่งจาก rfc 2281
- แต่จะเกิดอะไรขึ้นหากผู้คนเชื่อฟัง rfc 1738? URL เช่น "http://example.com/test.html "และ"http: //localhost/test.html "ทั้งหมดต้องถูกเขียนใหม่เป็น"http://example.com./test.html "และ"http://localhost./test.html". เบราว์เซอร์จะต้องทำเครื่องหมายโฮสต์โดยไม่มีจุดเป็นข้อผิดพลาดหรือเปลี่ยนเส้นทางเมื่อคลิกไปยังรูปแบบเต็ม / สัมบูรณ์ของพวกเขาทุกคนที่กำหนดค่าโดเมนระดับบนสุดในท้องถิ่นเช่น" localhost "จะต้องกำหนดค่าเซิร์ฟเวอร์ให้ยอมรับเฉพาะคำขอ สำหรับโดเมนเช่น "localhost" หรือยอมรับและเปลี่ยนเส้นทาง [urls ทั้งหมดภายใน] "localhost" เป็น [url ที่เกี่ยวข้องใน] "localhost." ข้อความเช่น "localhost" จะมีประโยชน์เฉพาะเมื่อพิมพ์ในแถบที่อยู่ของเบราว์เซอร์ จะเป็นการใช้งานที่ไร้ประโยชน์เพียงอย่างเดียวและไม่จำเป็นต้องใช้คุณสมบัติโดเมนสัมพัทธ์เพราะเบราว์เซอร์ค้นหาโดเมนในการพิมพ์การใช้งานในแหล่ง html จะกลายเป็นไร้ประโยชน์เพราะจะนำไปสู่การเชื่อมโยงดังกล่าวจะไม่ทำงานหรือคลิกทั้งหมด ลิงก์กับ "localhost" จะย้ายผู้ใช้ไปที่ "localhost"และมันจะเป็นเพียงการเปลี่ยนเส้นทางพิเศษในทุกคลิก (บนลิงก์ดังกล่าว) ดังนั้น rfc 1738 จะทำให้คุณสมบัติ" โดเมนญาติ "ที่วางแผนไว้นั้นไร้ประโยชน์โดยสิ้นเชิงหาก บริษัท บางแห่งใช้คุณลักษณะดังกล่าวและใช้โดเมนที่สัมพันธ์กันในเว็บไซต์ท้องถิ่นของตน และ URL ที่มีโดเมนสัมพัทธ์จะไม่ถูกเปลี่ยนเส้นทางไปยังแบบฟอร์มที่สมบูรณ์โดยเบราว์เซอร์ดังนั้นไซต์ของพวกเขาจึงทำงานตามปกติหากพวกเขาเชื่อฟัง rfc 2279 พวกเขาจะกำหนดค่าเซิร์ฟเวอร์ให้ยอมรับเฉพาะ fqdn และพวกเขาจะต้องเขียน URL fqdn หรือทำงานกับการเปลี่ยนเส้นทางพิเศษทุกครั้งที่มีการคลิก URL ดังกล่าวหาก บริษัท ที่ชอบมีโดเมนแบบสั้นเช่น "team101" แทน "team101.microsoft.com" ในแถบที่อยู่และแหล่ง html พวกเขาจะต้องเริ่มใช้งาน โดเมนระดับบนสุดภายในที่กำหนดเองเช่น "team101" เช่น like "localhost "แทนที่จะเป็นโดเมนย่อยเช่น" team101.microsoft.com "(ซึ่งสามารถใช้เป็นเพียงแค่" team101 "ก่อนที่พวกเขาจะเชื่อฟัง rfc 1738)
-
และฉันได้พบว่าจุดต่อท้ายซึ่งได้รับการสนับสนุนอย่างมากจาก rfc 1738 นั้นปรากฏขึ้นจริง ๆ หลังรูปแบบที่ไม่มีจุดต่อท้าย! มันปรากฏตัวด้วย rfc 1034 ในปี 1987 มันถูกอ้างถึงในลิงค์ที่สองและฉันอ้างว่า:
เนื่องจากชื่อโดเมนที่สมบูรณ์นั้นลงท้ายด้วยป้ายกำกับของรูท
แบบฟอร์มที่พิมพ์ซึ่งลงท้ายด้วยจุด เราใช้คุณสมบัตินี้เพื่อแยกความแตกต่างระหว่าง:
- สตริงอักขระซึ่งแสดงถึงชื่อโดเมนที่สมบูรณ์
(มักเรียกว่า "แน่นอน") ตัวอย่างเช่น "poneria.ISI.EDU"
- สตริงอักขระที่แสดงถึงป้ายกำกับเริ่มต้นของ
ชื่อโดเมนที่ไม่สมบูรณ์และควรจะเสร็จสิ้นภายใน
ซอฟต์แวร์ท้องถิ่นโดยใช้ความรู้เกี่ยวกับโดเมนท้องถิ่น (บ่อยครั้ง
เรียกว่า "ญาติ") ตัวอย่างเช่น "poneria" ที่ใช้ใน
โดเมน ISI.EDU
rfc 1034 (ของ 1987) เพิ่งประกาศโดเมนทั้งหมดที่ใช้ดูเหมือนว่าพวกเขาทั้งหมดไม่มีจุดต่อท้ายประกาศพวกเขาทั้งหมดเป็นโดเมนญาติ! แต่พวกเขายังคงทำงานเหมือนเดิมดังนั้นอาจมีเพียงไม่กี่คนที่รู้เกี่ยวกับสิ่งนั้นและยังคงคิดว่าพวกเขาร้องขอไซต์ "example.com" ที่ไม่เหมือนใครอย่างแท้จริงเมื่อพวกเขาใช้ "example.com" โดยไม่มีจุดต่อท้าย ดังนั้นจึงกลายเป็นการละเมิดความปลอดภัยเพิ่มเติมในบางกรณี: example.com ชื่อจริงอาจถูกปลอมแปลงโดยผู้ดูแลระบบย่อยแม้ว่าเขาจะไม่ได้รับสิทธิ์ในการสร้างโดเมนท้องถิ่นเช่น "localhost" ดังนั้น rfc 1034 ก็ไม่ได้ออกแบบมาอย่างดีมาก: ดูเหมือนว่าผู้เขียนไม่คาดหวังว่ามันอาจจะเป็น {ไม่เป็นที่รู้จักอย่างกว้างขวางดังนั้นการสร้างการละเมิดความปลอดภัย}!
อาจเป็น rfc 1738 (1994) ในที่สุดก็พยายามที่จะนำความคิดของความแตกต่างระหว่างโดเมนสัมบูรณ์และญาติให้กับผู้ชมที่กว้างและยังแก้ไขการละเมิดความปลอดภัยหลังจาก 6 ปี {แต่ด้วยการแก้ไขการละเมิดความปลอดภัยโดยไม่อนุญาตโดเมนญาติใน URL {แต่ฉันคิดว่าพวกเขาอาจไม่ได้ใช้กันอย่างแพร่หลายอาจจะมีเฉพาะใน บริษัท ใหญ่บางแห่ง}} ดังนั้นสิ่งที่จะ [เหลือ] อันเป็นผลมาจาก rfc 1737 ถ้ามันจะเชื่อฟัง? - 1) โดเมนสัมพัทธ์ที่ประกาศในปี 1987 จะกลายเป็นสิ่งที่ไร้ประโยชน์ในที่สุดดังนั้นจุดต่อท้ายถูกออกแบบมาเพื่อแสดงโดเมนแบบสัมบูรณ์และในที่สุดก็จะกลายเป็นไร้ประโยชน์ในที่สุด (แต่บางทีพวกเขาวางแผนในภายหลังอนุญาตโดเมนญาติใน URL หลังจากหลายปีเมื่อผู้ชม (ประชาชนทั่วไป) เริ่มรู้เกี่ยวกับความเป็นไปได้ของโดเมนญาติ) 2) และ rfc 1737 หากปฏิบัติตามก็จะแก้ไขการละเมิดความปลอดภัยด้วย - แต่แม้กระทั่ง rfc 1034 จะไม่สร้างการละเมิดความปลอดภัยหากถึงมวลชนและเป็นที่เข้าใจกันอย่างกว้างขวางว่าการใช้โดเมนญาตินั้นไม่ปลอดภัย! - ดังนั้นสูตรหลักในการแก้ไขคือการเข้าถึงผู้ชมจำนวนมากและการเผยแพร่อีกหนึ่ง rfc เป็นเพียงหนึ่งในหลายวิธีที่จะทำ
ฉันคิดว่าตอนนี้อาจเป็นไปได้ว่าคุณสมบัติโดเมนสัมพัทธ์ยังไม่เป็นที่รู้จักอย่างแพร่หลายหลังจาก rfc 1034 (ของปี 1987) เพราะมันมีการใช้งานที่ จำกัด เกินไป: เฉพาะใน บริษัท ใหญ่หรือเครือข่ายท้องถิ่นของผู้ให้บริการ เนื่องจากเครือข่ายท้องถิ่นสามารถสร้างโดเมนท้องถิ่นใด ๆ ได้ดังนั้นคุณลักษณะนี้จึงเป็นของตัวเองจริงๆแล้วมันเป็นเพียงข้อความไร้ประโยชน์ใน rfc ที่ทุกคนควรรู้และใช้โดยไม่ได้รับผลประโยชน์เพิ่มเติม! แต่ผู้คนสร้างการละเมิดความปลอดภัยเล็ก ๆ น้อย ๆ โดยการละเลย rfc อย่างกว้างขวางในขณะที่เบราว์เซอร์เริ่มเชื่อฟัง
ฉันตรวจสอบคุณสมบัติโดเมนที่เกี่ยวข้องเมื่อวานนี้มันใช้งานได้ (มันก็โอเคเพราะ rfc 2396 (จากปี 1998) ได้รับอนุญาตอีกครั้งหลังจากที่ rfc 1034 (จากปี 1987) ถูกปฏิเสธและในภายหลัง rfc 3986 (จากปี 2005) ยังคงอนุญาตให้ใช้ได้) ฉันเพิ่มคำต่อท้าย DNS ใน windows 10 - แผงควบคุม - ... - คุณสมบัติของอุปกรณ์เครือข่าย - คุณสมบัติ ipv4 - เพิ่มเติม - แท็บ dns เมื่อฉันเพิ่ม "google.com" แล้วเปิด "http: // mail / "ใน firefox มันเปิดเซิร์ฟเวอร์ของ google แต่ไม่ได้กำหนดค่าให้ทำงานกับ" mail "ในส่วนหัว" host "http ดังนั้นฉันจึงมีหน้าเพจ" 404 "
-
ข้อความตอบกลับของฉันโดยลิงก์ที่สอง ( http://www.dns-sd.org/trailingdotsindomainnames.html ):
เขายังอ้างถึงกฎใน rfc 1738 และพูดว่า:
น่าเสียดายที่คนที่ใช้เว็บเบราว์เซอร์ไคลเอนต์ไม่เข้าใจว่ามันหมายถึงอะไร เมื่อคุณเข้าถึงเว็บไซต์ค่าเว็บเบราว์เซอร์ส่วนใหญ่ที่ใส่ในฟิลด์ "โฮสต์:" คือสิ่งที่ผู้ใช้พิมพ์ไม่ใช่สิ่งที่คอมพิวเตอร์ใช้จริงหลังจากใช้รายการค้นหาของผู้ใช้ DNS เพื่อกำหนดชื่อที่ผ่านการรับรองจาก ชื่อบางส่วน ตัวอย่างเช่นต่อไปนี้เป็นวิธีที่แตกต่างกันสามวิธีที่ผู้ใช้อาจอ้างอิงถึงโฮสต์ "www.example.com" ... เมื่อส่งพารามิเตอร์ "Host:" ไปยังเว็บเซิร์ฟเวอร์ไคลเอ็นต์ของเบราว์เซอร์จะใส่สิ่งที่ผู้ใช้พิมพ์ ("www.example.com.", "www.example.com" หรือ "www") แทน สิ่งที่ลูกค้าค้นหาใน DNS จริง ๆ ("www.example.com" ในทั้งสามกรณี) ...
- สิ่งนี้ไม่เป็นความจริง (ถูกต้อง) เนื่องจาก rfc 1738 นั้นเข้มงวดมากในเรื่องนี้และไม่อนุญาตให้ใช้โดเมนที่เกี่ยวข้องใน URL ทั้งหมดแม้ว่าจะอยู่ในแถบที่อยู่ของเบราว์เซอร์และ url ก็เป็นวิธีที่แนะนำ [ในการสร้าง] การอ้างอิงไปยังไซต์ใด ๆ แม้ว่าผู้ใช้จะเขียนลงบนกระดาษดังนั้นผู้ใช้จึงไม่สามารถอ้างถึงไซต์นั้นใน 3 วิธีโดย rfc 1738 หากผู้ใช้นั้นคิดว่าพวกเขาใช้ URL!
และดูเหมือนว่าผู้เขียนข้อความนี้ (Stuart Cheshire) ไม่รู้เกี่ยวกับ rfc 2396 ดังนั้นข้อความนี้ล้าสมัย
-
และสถานการณ์ในปัจจุบันเป็นอย่างไร rfc 3986 (https://tools.ietf.org/html/rfc3986#page-21 ) อนุญาตให้อ้างถึงโดเมนแบบสัมบูรณ์โดยไม่ต้องมีจุดต่อท้าย: มันบอกว่า "ฉลากโดเมนที่ถูกต้องที่สุดของชื่อโดเมนที่ผ่านการรับรองครบถ้วนใน DNS อาจตามมาด้วยชื่อเดียว" "" และควรใช้หากจำเป็น "เพื่อแยกความแตกต่างระหว่างชื่อโดเมนที่สมบูรณ์และโดเมนท้องถิ่นบางตัว" ฉันคิดว่าเนื่องจาก de facto standarts แทบจะไม่จำเป็นเลยดังนั้น wordpress สามารถยอมรับรูปแบบ de facto และเปลี่ยนเส้นทางจากที่อยู่ด้วยจุดต่อท้ายไปยังที่อยู่โดยที่ไม่มี