อ่าน 3 นาที
การทำให้เป็นมาตรฐาน
ในวิทยาการคอมพิวเตอร์การทำให้เป็นรูปแบบมาตรฐาน (บางครั้ง เรียกว่า การทำให้เป็นมาตรฐานหรือการทำให้เป็นปกติ ) คือกระบวนการแปลงข้อมูลที่มีรูปแบบการแสดงผลมากกว่าหนึ่งรูปแบบ...
การทำให้เป็นมาตรฐาน
ในวิทยาการคอมพิวเตอร์การทำให้เป็นรูปแบบมาตรฐาน (บางครั้ง เรียกว่า การทำให้เป็นมาตรฐานหรือการทำให้เป็นปกติ ) คือกระบวนการแปลงข้อมูลที่มีรูปแบบการแสดงผลมากกว่าหนึ่งรูปแบบ ให้เป็นรูปแบบ "มาตรฐาน" "ปกติ" หรือรูปแบบแคนอนิก การทำเช่นนี้สามารถทำได้เพื่อเปรียบเทียบความเท่าเทียมกันของรูปแบบการแสดงผลต่างๆ เพื่อนับจำนวนโครงสร้างข้อมูลที่แตกต่างกัน เพื่อปรับปรุงประสิทธิภาพของอัลกอริธึม ต่างๆ โดยการกำจัดการคำนวณซ้ำซ้อน หรือเพื่อให้สามารถกำหนดลำดับ การจัดเรียง ที่มีความหมายได้
กรณีการใช้งาน
ชื่อไฟล์
โดยส่วนใหญ่แล้ว ไฟล์ในระบบไฟล์สามารถเข้าถึงได้ผ่านชื่อไฟล์ หลายชื่อ ตัวอย่างเช่น ใน ระบบที่คล้าย Unixสตริง " /./" สามารถแทนที่ด้วย " /" ได้ ในไลบรารีมาตรฐานของภาษา Cฟังก์ชันrealpath()จะทำหน้าที่นี้ การดำเนินการอื่นๆ ที่ฟังก์ชันนี้ทำเพื่อทำให้ชื่อไฟล์เป็นมาตรฐาน ได้แก่ การจัดการ/..ส่วนประกอบที่อ้างอิงถึงไดเร็กทอรีแม่ การลดความซับซ้อนของลำดับของเครื่องหมายทับหลายตัว การลบเครื่องหมายทับท้าย และการแก้ไขลิงก์ สัญลักษณ์
การกำหนดรูปแบบชื่อไฟล์มาตรฐานมีความสำคัญต่อความปลอดภัยของคอมพิวเตอร์ ตัวอย่างเช่น เว็บเซิร์ฟเวอร์อาจมีข้อจำกัดว่าC:\inetpub\wwwroot\cgi-binอนุญาตให้เรียกใช้งานได้เฉพาะไฟล์ที่อยู่ในไดเร็กทอรี cgi เท่านั้น กฎนี้บังคับใช้โดยการตรวจสอบว่าพาธเริ่มต้นด้วย `.cgi` C:\inetpub\wwwroot\cgi-bin\หรือไม่ จากนั้นจึงจะเรียกใช้งานได้ แม้ว่าไฟล์C:\inetpub\wwwroot\cgi-bin\..\..\..\Windows\System32\cmd.exeจะปรากฏอยู่ในไดเร็กทอรี cgi ในตอนแรก แต่ระบบจะใช้ประโยชน์จาก..ตัวระบุพาธเพื่อย้อนกลับขึ้นไปในลำดับชั้นของไดเร็กทอรีเพื่อพยายามเรียกใช้งานไฟล์ที่อยู่นอกไดเร็กทอรีcgi-binการอนุญาตcmd.exeให้เรียกใช้งานไฟล์นั้นจะเป็นข้อผิดพลาดที่เกิดจากความล้มเหลวในการกำหนดรูปแบบชื่อไฟล์มาตรฐานให้เป็นรูปแบบที่ง่ายที่สุด `.cgi` C:\Windows\System32\cmd.exeและเรียกว่า ช่องโหว่ การเข้าถึงไดเร็กทอรี (directory traversal vulnerability) เมื่อกำหนดรูปแบบพาธมาตรฐานแล้ว จะเห็นได้ชัดว่าไม่ควรเรียกใช้งานไฟล์นั้น
ยูนิโค้ด
ในยูนิโค้ดตัวอักษรที่มีเครื่องหมายเน้นเสียงหลายตัวสามารถแสดงได้มากกว่าหนึ่งวิธี ตัวอย่างเช่นéสามารถแสดงในยูนิโค้ดได้เป็นอักขระยูนิโค้ด U+0065 (LATIN SMALL LETTER E) ตามด้วยอักขระ U+0301 (COMBINING ACUTE ACCENT) แต่ก็สามารถแสดงได้เป็นอักขระที่ประกอบขึ้นแล้ว U+00E9 (LATIN SMALL LETTER E WITH ACUTE) ด้วยเช่นกัน ซึ่งทำให้การเปรียบเทียบสตริงซับซ้อนมากขึ้น เนื่องจากต้องพิจารณาการแสดงสตริงทุกรูปแบบที่เป็นไปได้ที่มีอักขระดังกล่าว เพื่อแก้ไขปัญหานี้ ยูนิโค้ดจึงมีกลไกของความเท่าเทียม กันแบบมาตรฐาน ( canonical equivalence ) ในบริบทนี้ การทำให้เป็นมาตรฐานก็คือ การทำให้เป็นมาตรฐานของยูนิโค้ด (Unicode normalization )
การเข้ารหัสความกว้างแปรผันในมาตรฐาน Unicode โดยเฉพาะUTF-8อาจทำให้เกิดความจำเป็นเพิ่มเติมสำหรับการกำหนดมาตรฐานในบางสถานการณ์ กล่าวคือ ตามมาตรฐาน ใน UTF-8 จะมีลำดับไบต์ที่ถูกต้องเพียงลำดับเดียวสำหรับอักขระ Unicode ใดๆ[ 1 ]แต่ลำดับไบต์บางลำดับไม่ถูกต้อง กล่าวคือ ไม่สามารถได้มาโดยการเข้ารหัสสตริงของอักขระ Unicode ใดๆ ลงใน UTF-8 การใช้งานตัวถอดรหัสที่ไม่รอบคอบบางอย่างอาจยอมรับลำดับไบต์ที่ไม่ถูกต้องเป็นอินพุตและสร้างอักขระ Unicode ที่ถูกต้องเป็นเอาต์พุตสำหรับลำดับดังกล่าว หากใช้ตัวถอดรหัสดังกล่าว อักขระ Unicode บางตัวจะมีลำดับไบต์ที่สอดคล้องกันมากกว่าหนึ่งลำดับ ได้แก่ ลำดับที่ถูกต้องและลำดับที่ไม่ถูกต้อง ซึ่งอาจนำไปสู่ปัญหาด้านความปลอดภัยที่คล้ายกับที่อธิบายไว้ในส่วนก่อนหน้า ดังนั้น หากต้องการใช้ตัวกรองบางอย่าง (เช่น นิพจน์ปกติที่เขียนใน UTF-8) กับสตริง UTF-8 ที่จะส่งต่อไปยังตัวถอดรหัสที่อนุญาตลำดับไบต์ที่ไม่ถูกต้อง ควรกำหนดมาตรฐานสตริงก่อนที่จะส่งไปยังตัวกรอง ในบริบทนี้ การทำให้เป็นรูปแบบมาตรฐาน (canonicalization) คือกระบวนการแปลงอักขระทุกตัวในสตริงให้เป็นลำดับไบต์ที่ถูกต้องเพียงลำดับเดียว ทางเลือกอื่นนอกเหนือจากการทำให้เป็นรูปแบบมาตรฐานคือการปฏิเสธสตริงใดๆ ที่มีลำดับไบต์ที่ไม่ถูกต้อง
URL
Canonical URLคือURLที่ใช้กำหนดแหล่งข้อมูลหลักเพียงแหล่งเดียวสำหรับเนื้อหาที่ซ้ำกัน
ใช้งานโดย Google
URL หลัก (Canonical URL) คือ URL ของหน้าเว็บที่ Google คิดว่าแสดงถึงหน้าเว็บที่ซ้ำกันได้ดีที่สุดจากชุดหน้าเว็บที่ซ้ำกันในเว็บไซต์ของคุณ ตัวอย่างเช่น หากคุณมี URL สำหรับหน้าเดียวกัน เช่นhttps://example.com/?dress=1234และhttps://example.com/dresses/1234Google จะเลือกหนึ่ง URL เป็น URL หลัก โปรดทราบว่าหน้าเว็บไม่จำเป็นต้องเหมือนกันทุกประการ การเปลี่ยนแปลงเล็กน้อยในการจัดเรียงหรือการกรองหน้ารายการจะไม่ทำให้หน้าเว็บนั้นมีเอกลักษณ์เฉพาะตัว (ตัวอย่างเช่น การจัดเรียงตามราคาหรือการกรองตามสีของสินค้า)
แคนอนิกอาจอยู่ในโดเมนที่แตกต่างจากสำเนา[ 2 ]
อินเทอร์เน็ต
ด้วยความช่วยเหลือของ URL มาตรฐาน เครื่องมือค้นหาจะทราบว่าควรแสดงลิงก์ใดในผลการค้นหา
องค์ประกอบลิงก์มาตรฐานสามารถใช้เพื่อกำหนด URL มาตรฐานได้
อินทราเน็ต
ในระบบอินทราเน็ตการค้นหาข้อมูลด้วยตนเองเป็นวิธีที่ใช้กันอย่างแพร่หลาย ในกรณีนี้ URL มาตรฐานสามารถกำหนดได้ในรูปแบบที่ไม่สามารถอ่านได้ด้วยเครื่องเช่นกัน ตัวอย่างเช่นใน คู่มือ
เบ็ดเตล็ด
Canonical URL คือ URL ที่มักใช้สำหรับการแชร์ไฟล์หรือวิดีโอ
เนื่องจาก URL หลัก (Canonical URL) จะถูกนำไปใช้ในผลการค้นหาของเครื่องมือค้นหา ดังนั้นในกรณีส่วนใหญ่จึงถือเป็นหน้า Landing Page
เครื่องมือค้นหาและ SEO
ในการค้นหาเว็บและการเพิ่มประสิทธิภาพเครื่องมือค้นหา (SEO) การกำหนด URL หลักเกี่ยวข้องกับเนื้อหาเว็บที่มี URL มากกว่าหนึ่งรายการ การมี URL หลายรายการสำหรับเนื้อหาเว็บเดียวกันอาจทำให้เกิดปัญหาสำหรับเครื่องมือค้นหา โดยเฉพาะอย่างยิ่งในการพิจารณาว่าควรแสดง URL ใดในผลการค้นหา[ 3 ]เครื่องมือค้นหาส่วนใหญ่รองรับองค์ประกอบลิงก์ Canonicalเป็นคำแนะนำว่าควรพิจารณา URL ใดเป็นเวอร์ชันที่แท้จริง ดังที่ John Mueller จาก Google ระบุไว้ การมีคำสั่งอื่นๆ ในหน้าเว็บ เช่น องค์ประกอบ robots noindexอาจทำให้เครื่องมือค้นหาได้รับสัญญาณที่ขัดแย้งกันเกี่ยวกับการจัดการการกำหนด URL หลัก[ 4 ]
ตัวอย่าง:
http://wikipedia.comhttp://www.wikipedia.comhttp://www.wikipedia.com/http://www.wikipedia.com/?source=asdf
URL ทั้งหมดนี้ชี้ไปยังหน้าแรกของวิกิพีเดีย แต่เครื่องมือค้นหาจะพิจารณาเพียง URL เดียวเท่านั้นว่าเป็นรูปแบบ URL ที่ถูกต้อง
อีเอ็มแอลอี
เอกสารXML มาตรฐาน (Canonical XML document) คือเอกสาร XML ที่อยู่ในรูปแบบมาตรฐาน XML ตามที่กำหนดไว้ในข้อกำหนดมาตรฐาน XML (The Canonical XML specification ) กล่าวโดยสรุป การทำให้เป็นมาตรฐานจะลบช่องว่างภายในแท็ก ใช้การเข้ารหัสอักขระเฉพาะ จัดเรียงการอ้างอิงเนมสเปซและกำจัดส่วนที่ซ้ำซ้อน ลบการประกาศ XML และ DOCTYPE และแปลง URI สัมพัทธ์ให้เป็น URI สัมบูรณ์
ตัวอย่างง่ายๆ ก็คือโค้ด XML สองส่วนต่อไปนี้:
<node1 x='1' a="1" a="2">Data</node1 > <node2>Data</node2><node1 a="2" x="1">Data</node1> <node2>Data</node2>
ตัวอย่างแรกมีช่องว่างเพิ่มเติมในแท็กปิดของโหนดแรก ตัวอย่างที่สองซึ่งได้รับการจัดรูปแบบตามมาตรฐานแล้ว ได้ลบช่องว่างเหล่านั้นออกแล้ว โปรดทราบว่าภายใต้มาตรฐานการจัดรูปแบบตามมาตรฐาน W3C นั้น จะลบเฉพาะช่องว่างภายในแท็กเท่านั้น ไม่ใช่ช่องว่างระหว่างแท็ก
สรุปการเปลี่ยนแปลงการกำหนดรูปแบบมาตรฐานทั้งหมดมีดังต่อไปนี้:
- เอกสารนี้เข้ารหัสด้วย UTF-8
- การขึ้นบรรทัดใหม่จะถูกปรับให้เป็นมาตรฐาน #xA ในข้อมูลนำเข้า ก่อนการแยกวิเคราะห์
- ค่าของแอตทริบิวต์ได้รับการปรับให้เป็นมาตรฐาน ราวกับว่าผ่านกระบวนการตรวจสอบความถูกต้อง
- การอ้างอิงอักขระและเอนทิตีที่แยกวิเคราะห์แล้วจะถูกแทนที่
- ส่วน CDATA จะถูกแทนที่ด้วยเนื้อหาอักขระ
- การประกาศ XML และการประกาศประเภทเอกสารถูกลบออกแล้ว
- องค์ประกอบที่ว่างเปล่าจะถูกแปลงเป็นคู่แท็กเริ่มต้น-สิ้นสุด
- ช่องว่างภายนอกองค์ประกอบเอกสารและภายในแท็กเริ่มต้นและแท็กสิ้นสุดจะถูกปรับให้เป็นมาตรฐาน
- ช่องว่างทั้งหมดในเนื้อหาตัวอักษรจะยังคงอยู่ (ยกเว้นตัวอักษรที่ถูกลบออกระหว่างการปรับค่าขึ้นบรรทัดใหม่)
- ตัวคั่นค่าแอตทริบิวต์ถูกตั้งค่าเป็นเครื่องหมายอัญประกาศคู่ (เครื่องหมายอัญประกาศคู่)
- อักขระพิเศษในค่าแอตทริบิวต์และเนื้อหาอักขระจะถูกแทนที่ด้วยการอ้างอิงอักขระ
- การประกาศเนมสเปซที่ไม่จำเป็นจะถูกลบออกจากแต่ละองค์ประกอบ
- คุณสมบัติเริ่มต้นจะถูกเพิ่มให้กับแต่ละองค์ประกอบ
- การแก้ไข
xml:baseคุณสมบัติกำลังดำเนินการอยู่ - ลำดับตามพจนานุกรมถูกนำมาใช้กับการประกาศเนมสเปซและแอตทริบิวต์ของแต่ละองค์ประกอบ
ภาษาศาสตร์เชิงคำนวณ
ในทางสัณฐานวิทยาและพจนานุกรมศาสตร์คำหลัก (lemma)คือรูปแบบมาตรฐานของกลุ่มคำตัวอย่างเช่นในภาษาอังกฤษrun , runs , ranและrunning เป็นรูปแบบต่างๆ ของ คำหลักเดียวกันดังนั้นเราสามารถเลือกคำใดคำหนึ่ง เช่นrunเพื่อแทนรูปแบบทั้งหมดได้ฐานข้อมูลคำศัพท์เช่นUnitexใช้การแสดงแทนแบบนี้
การหาคำ หลัก (Lemmatisation)คือ กระบวนการแปลงคำให้เป็นรูปแบบมาตรฐาน ของคำนั้น
ดูเพิ่มเติม
- รูปแบบมาตรฐาน – การแสดงผลแบบมาตรฐานของวัตถุทางคณิตศาสตร์
- การทำให้กราฟเป็นรูปแบบมาตรฐาน – งานในทฤษฎีกราฟเชิงคำนวณ
- การหารากศัพท์ – การทำให้ภาษาธรรมชาติเป็นรูปแบบมาตรฐาน
- การทำให้ข้อความอยู่ในรูปแบบมาตรฐาน – กระบวนการแปลงข้อความให้อยู่ในรูปแบบมาตรฐานเดียว
- ชนิดต้นแบบ – คำที่ใช้ในระบบการตั้งชื่อทางชีววิทยา
ลิงก์ภายนอก
- มาตรฐาน XML เวอร์ชัน 1.0 ตามคำแนะนำของ W3C
- เอกสารอ้างอิงด้านความปลอดภัยของ OWASP สำหรับการกำหนดรูปแบบมาตรฐาน (Canonicalization)
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ การทำให้เป็นมาตรฐาน
ในวิทยาการคอมพิวเตอร์การทำให้เป็นรูปแบบมาตรฐาน (บางครั้ง เรียกว่า การทำให้เป็นมาตรฐานหรือการทำให้เป็นปกติ ) คือกระบวนการแปลงข้อมูลที่มีรูปแบบการแสดงผลมากกว่าหนึ่งรูปแบบ...
ชื่อไฟล์
โดยส่วนใหญ่แล้ว ไฟล์ใน ระบบไฟล์ สามารถเข้าถึงได้ผ่าน ชื่อไฟล์ หลายชื่อ ตัวอย่างเช่น ใน ระบบที่คล้าย Unix สตริง " /.
ยูนิโค้ด
ใน ยูนิโค้ด ตัวอักษรที่มีเครื่องหมายเน้นเสียงหลายตัวสามารถแสดงได้มากกว่าหนึ่งวิธี ตัวอย่างเช่น é สามารถแสดงในยูนิโค้ดได้เป็นอักขระยูนิโค้ด U+0065 (LATIN SMALL LETTER E) ตามด้วยอักขระ U+0301 (COMBINING ACUTE ACCENT)...
URL
Canonical URL คือ URL ที่ใช้กำหนด แหล่งข้อมูลหลักเพียงแหล่งเดียว สำหรับ เนื้อหาที่ซ้ำ กัน