แคชคืออะไร ?
แคช (Cache) มีหลากหลายประเภท หลายรูปแบบ ขึ้นอยู่กับเทคโนโลยีที่นำไปใช้ อาจกล่าวได้ว่าแคชคือรูปแบบการจัดเก็บข้อมูลอย่างหนึ่ง ที่มีประโยชน์มากสำหรับคอมพิวเตอร์ที่ต้องการประมวลผลข้อมูลเดิมๆซ้ำๆ ในบทความนี้จะอธิบายแคชที่เกี่ยวกับเว็บไซต์เท่านั้น
จุดประสงค์หรือเป้าหมายของการทำแคชคือ ความรวดเร็วในการตอบสนองหรือลดภาระการทำงานของเซิร์ฟเวอร์ ทำให้เว็บไซต์รองรับผู้ใช้งานได้มากขึ้น
ข้อมูลที่ถูกแคชมีวันการหมดอายุ เนื่องจากหากมีการเปลี่ยนแปลงโค้ด คำสั่งการทำงาน หรือรูปภาพ ข้อมูลจะได้มีการอัพเดทล่าสุดเพื่อให้การทำงานหรือการแสดงผลเพื่อให้เป็นไปตามความต้องการ สำหรับระยะเวลานั้นขึ้นอยู่การตั้งค่าต่างๆของระบบหรือโปรแกรม
บทความถูกเรียบเรียงตามความรู้และความเข้าใจของผู้เขียนเท่านั้น ขออภัยหากข้อมูลอาจผิดพลาดหรือไม่ครบถ้วน
หลักการทำงาน
โดยส่วนใหญ่แล้ว แคชจะมีหลักการทำงานคล้ายๆกันไม่ว่าอยู่บนเทคโนโลยีใดก็ตาม เพื่อง่ายต่อการเข้าใจกระบวนการทำงานของแคชที่เป็นประเภทลักษณะของการประมวลผลข้อมูล ขอยกตัวอย่างการทำงานอย่างง่ายดังนี้
กรณีที่คอมฯทำงานโดยไม่มี Cache สมมุติเราต้องการคำตอบว่า 100 + 100 = ? ผลลัพธ์คือจำนวนเท่าไร หากคำถามนี้คอมฯใช้เวลาคำนวณ 1.0 วินาที และถ้าเราถามคำถามเดิมๆ 5 ครั้ง ซึ่งผลลัพธ์ก็จะออกเหมือนเดิมทุกครั้ง แต่คอมฯจะประมวลผลใหม่ทุกครั้ง แสดงว่าคอมฯจะใช้เวลาในการประมวลผลทั้งหมด 5.0 วินาที
กรณีที่คอมฯทำงานโดยมี Cache คำถามเดิม 100 + 100 = ? ครั้งแรกคอมฯใช้เวลาคำนวณ 1 วินาที แต่ผลลัพธ์ที่ได้มานั้นจะถูกบันทึกลงใน Memory และถามคำถามเดิมอีก 4 ครั้ง ในครั้งต่อๆมาจะใช้เวลาในการคำนวณเพียง 0.1 วินาที นั้นหมายความว่า คอมฯใช้เวลาในการคำนวณคำถามนี้ 5 ครั้ง ใช้เวลาทั้งหมด 1.4 วินาที
ประเภทของแคช
Browser Cache
เบราว์เซอร์แคชจะถูกเก็บโดย Web Browser (Google Chrome, Firefox, IE, เป็นต้น) ข้อมูลจะถูกเก็บลงในคอมพิวเตอร์ที่เข้าใช้งานเว็บไซต์ ข้อมูลที่ถูกจัดเก็บส่วนใหญ่จะเป็น ไฟล์รูปภาพ ไฟล์สคริปต์ ซึ่งไฟล์เหล่านี้โดยปกติไม่ค่อยมีการเปลี่ยนแปลงข้อมูล ทำให้การเข้าใช้งานเว็บไซต์เดิมสามารถดาวน์โหลดหน้าเว็บได้เร็วขึ้น
Server Cache
เซิร์ฟเวอร์แคชตามความเข้าใจของผู้เขียน ข้อมูลแคชจะถูกจัดเก็บอยุ่ในหน่วยความจำของเซิร์ฟเวอร์ (Memory) เนื่องจากหน่วยความจำมีความเร็วในการทำงานสูง หลักการทำงานจะมีความคล้ายคลึงกับคอมฯตามบ้านทั่วไปที่ทุกคนใช้งานอยู่
CDN Cache
CDN (Content Delivery Network) คือการคัดลอกข้อมูลไปไว้บนเซิร์ฟเวอร์ที่อยู่ตามภูมิภาคต่างๆบนโลก เพื่อความรวดเร็วในการเข้าถึงข้อมูล ยกตัวอย่างเช่น Facebook มีการตั้งเซิร์ฟเวอร์ CDN ที่อยู่บนประเทศสิงคโปร์ การเข้าถึงเว็บ Facebook ข้อมูลหลายๆอย่าง เช่น รูปภาพ ไฟล์เอกสาร ไฟล์มัลติมิเดียต่างๆ อาจถูกดึงมาจากเซิร์ฟเวอร์ที่สิงคโปร์ แทนที่การดึงข้อมูลจากเซิร์ฟเวอร์หลักที่ประเทศอเมริกา หากต้องการให้เว็บของเราใช้ CDN บ้าง Cloudflare มีบริการฟรี สามารถลดภาระของเซิร์ฟเวอร์ไปได้เยอะมาก
Code Cache
โค้ดแคช เป็นคำที่ผู้เขียนนึกขึ้นมาเอง คือการเขียนโค้ด, ชุดคำสั่ง หรือติดตั้ง Plugin เพื่อทำแคชของเว็บไซต์ หากเว็บไซต์ถูกพัฒนามาจากระบบ CMS เช่น WordPress ก็สามารถดาวน์โหลดปลั๊กอินที่ได้รับความนิยม เช่น W3 Total Cache และ WP Super Cache มาติดตั้งได้ แต่ถ้าหากเว็บไซต์ของคุณถูกพัฒนาขึ้นมาเอง สามารถเขียนชุดคำสั่งเพื่อควบคุมการทำงานของเว็บไซต์ได้
ข้อดีและข้อเสีย
ข้อดี
ลดภาระของเซิร์ฟเวอร์ลงอย่างมาก ไม่ต้องประมวลผลข้อมูลซ้ำๆโดยไม่จำเป็น ทำให้เซิร์ฟเวอร์รองรับผู้ใช้งานได้มากขึ้น และทำให้ผู้ใช้งานโหลดหน้าเว็บไซต์ได้อย่างรวดเร็ว
ข้อเสีย
หากมีการทำ Cache ที่ไม่ถูกต้อง อาจส่งด้านลบให้กับผู้ใช้งาน เพราะอาจมีการประมวลผลหรือแสดงผลผิดพลาด อีกทั้งหากข้อมูลมีการเปลี่ยนแปลงหรืออัพเดท ผู้ใช้งานอาจเห็นข้อมูลเก่าอยู่ ผู้ดูแลเว็บสามารถเคลียข้อมูลแคชได้หรืออาจต้องใช้ระยะเวลาในการเปลี่ยนเพราะต้องรอให้ข้อมูลแคชหมดอายุ ซึ่งปัญหาเหล่านี้เป็นปัญหาใหญ่กับผู้ใช้งาน แต่สามารถแก้ไขได้ง่ายหากแก้ไขถูกจุด