คนอื่น ๆ ได้ตอบว่าการเปลี่ยนเส้นทางทำงานอย่างไร แต่คุณควรทราบด้วยว่าพวกเขาสร้าง URL เล็ก ๆ ของพวกเขาอย่างไร คุณจะเข้าใจผิดว่าพวกเขาสร้างแฮชของ URL เพื่อสร้างรหัสเฉพาะสำหรับ URL แบบย่อ สิ่งนี้ไม่ถูกต้องในกรณีส่วนใหญ่ไม่ได้ใช้อัลกอริทึมการแฮช (ซึ่งคุณอาจมีการชนกัน)
บริการย่อ URL ที่เป็นที่นิยมส่วนใหญ่จะใช้ ID ในฐานข้อมูลของ URL แล้วแปลงเป็น Base 36 [a-z0-9] (ไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่) หรือฐาน 62 (พิจารณาตัวพิมพ์เล็กและใหญ่)
ตัวอย่างง่ายๆของตารางฐานข้อมูล TinyURL:
ID URL VisitCount
1 www.google.com 26
2 www.stackoverflow.com 2048
3 www.reddit.com 64
...
20103 www.digg.com 201
20104 www.4chan.com 20
Web Frameworks ที่อนุญาตให้มีการกำหนดเส้นทางที่ยืดหยุ่นทำให้การจัดการ URL ขาเข้านั้นง่ายมาก (Ruby, ASP.NET MVC ฯลฯ )
ดังนั้นบนเว็บเซิร์ฟเวอร์ของคุณคุณอาจมีการดำเนินการเส้นทางที่ดูเหมือน (รหัสหลอก):
Route: www.mytinyurl.com/{UrlID}
Route Action: RouteURL(UrlID);
ซึ่งกำหนดเส้นทางคำขอที่เข้ามาใด ๆ ไปยังเซิร์ฟเวอร์ของคุณที่มีข้อความใด ๆ หลังจากโดเมนของคุณ www.mytinyurl.com ไปยังวิธีการที่เกี่ยวข้องของคุณ RouteURL มันให้ข้อความที่ส่งผ่านหลังจากเครื่องหมายทับใน URL ของคุณไปยังเมธอดนั้น
สมมติว่าคุณร้องขอ: www.mytinyurl.com/fif
จากนั้น "fif" จะถูกส่งต่อไปยังเมธอดของคุณ RouteURL (String UrlID) จากนั้น RouteURL จะแปลงค่า "fif" ให้เทียบเท่ากับ base10 ในปี 20103 และจะมีการร้องขอฐานข้อมูลเพื่อเปลี่ยนเส้นทางไปยัง URL ใดก็ตามที่จัดเก็บภายใต้ ID 20103 (ในกรณีนี้คือ www.digg.com) นอกจากนี้คุณยังสามารถเพิ่มจำนวนการเยี่ยมชมสำหรับ Digg ทีละรายการก่อนที่จะเปลี่ยนเส้นทางไปยัง URL ที่ถูกต้อง
นี่เป็นตัวอย่างที่เรียบง่าย แต่คุณควรจะเข้าใจแนวคิดทั่วไปได้