กลับไปหน้าบทความ

อ่าน 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.com
  • http://www.wikipedia.com
  • http://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 สองส่วนต่อไปนี้:

  1. <node1 x='1' a="1" a="2">Data</node1    > <node2>Data</node2>
  2. <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)
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Canonicalization&oldid=1340177843 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ การทำให้เป็นมาตรฐาน

ในวิทยาการคอมพิวเตอร์การทำให้เป็นรูปแบบมาตรฐาน (บางครั้ง เรียกว่า การทำให้เป็นมาตรฐานหรือการทำให้เป็นปกติ ) คือกระบวนการแปลงข้อมูลที่มีรูปแบบการแสดงผลมากกว่าหนึ่งรูปแบบ...

ชื่อไฟล์

โดยส่วนใหญ่แล้ว ไฟล์ใน ระบบไฟล์ สามารถเข้าถึงได้ผ่าน ชื่อไฟล์ หลายชื่อ ตัวอย่างเช่น ใน ระบบที่คล้าย Unix สตริง " /.

ยูนิโค้ด

ใน ยูนิโค้ด ตัวอักษรที่มีเครื่องหมายเน้นเสียงหลายตัวสามารถแสดงได้มากกว่าหนึ่งวิธี ตัวอย่างเช่น é สามารถแสดงในยูนิโค้ดได้เป็นอักขระยูนิโค้ด U+0065 (LATIN SMALL LETTER E) ตามด้วยอักขระ U+0301 (COMBINING ACUTE ACCENT)...

URL

Canonical URL คือ URL ที่ใช้กำหนด แหล่งข้อมูลหลักเพียงแหล่งเดียว สำหรับ เนื้อหาที่ซ้ำ กัน