ในยุคที่เว็บแอปพลิเคชันหลายๆ เว็บไซต์จำเป็นต้องดึงข้อมูลจากหลากหลายแหล่งต้นทาง การทำงานโดยอาศัยโครงสร้างพื้นฐานที่สามารถรับและส่งข้อมูลเหล่านี้ได้อย่างปลอดภัยกลายเป็นสิ่งสำคัญยิ่ง บทความนี้จะพูดถึงเทคโนโลยีที่สำคัญอย่าง Cross-Origin Resource Sharing (CORS) ที่ทำงานควบคู่กับรูปแบบข้อมูล JSON เพื่อให้มองเห็นภาพอย่างชัดเจนยิ่งขึ้น
CORS เป็นกลไกหนึ่งที่อนุญาตให้เว็บเพจจากที่อยู่ต้นทางหนึ่งสามารถร้องขอทรัพยากรที่อยู่บนต้นทางอื่นได้ อาทิเช่น เว็บไซต์ A ต้องการดึงข้อมูลจาก API บนเซิร์ฟเวอร์ B ซึ่งตามปกติแล้ว การใช้งานทรัพยากรข้ามต้นทางจะถูกป้องกันโดย security policy ของเบราว์เซอร์ เพื่อป้องกันการโจมตีแบบ Cross-Site Scripting (XSS) แต่ด้วยการใช้ CORS เราสามารถกำหนดได้ว่าเซิร์ฟเวอร์ของเรายินยอมให้โดเมนไหนบ้างที่สามารถเข้าถึงข้อมูลได้
JSON เป็นรูปแบบข้อมูลที่ได้รับความนิยมสูงในปัจจุบัน เนื่องจากมีโครงสร้างที่ง่ายต่อการอ่านและเขียน นอกจากนี้ยังเหมาะสมกับการแลกเปลี่ยนข้อมูลระหว่างระบบ การส่งข้อมูลเป็น JSON จึงทำให้การใช้งาน CORS มีประสิทธิภาพมากยิ่งขึ้น
ตัวอย่างโครงสร้าง JSON:
{
"name": "Jon Doe",
"age": 30,
"city": "Bangkok"
}
โครงสร้าง JSON แบบง่ายๆ ข้างต้นแสดงข้อมูลของบุคคลคนหนึ่ง ซึ่งสามารถแปลงหรืออ่านได้ง่ายในเกือบทุกรูปแบบภาษาโปรแกรม
ลองนึกภาพระบบที่ใช้ในการดึงข้อมูลสภาพภูมิอากาศจากแหล่ง API ภายนอก สมมุติว่าเรามีเว็บไซต์ที่ชื่อว่า WeatherNow และต้องการดึงข้อมูลสภาพภูมิอากาศจาก API ของ GlobalWeather
ขั้นตอนการใช้งาน
1. Request จาก client: เว็บไซต์ WeatherNow ส่ง request เพื่อดึงข้อมูลจาก GlobalWeather โดย URL ที่ดึงข้อมูลนั้นจะมีการแนบ header ที่บอกให้ทราบว่าต้นทางมาจากไหน 2. Preflight request: ก่อนที่ request จริงจะถูกส่งไป เบราว์เซอร์จะส่ง preflight request เพื่อเช็คว่าเซิร์ฟเวอร์ของ GlobalWeather ยอมรับ request จาก WeatherNow หรือไม่ 3. Response จาก server: หากเซิร์ฟเวอร์อนุญาต จะส่ง response ที่มี header ประเภท `Access-Control-Allow-Origin` และ response จริงที่จะมีข้อมูลในรูปแบบ JSON กลับมาให้ WeatherNowตัวอย่างการตอบสนองจาก server:
Access-Control-Allow-Origin: https://weathernow.com
Content-Type: application/json
ตัวอย่าง response JSON:
{
"temperature": "30°C",
"condition": "Sunny",
"humidity": "40%"
}
CORS และ JSON เมื่อนำมาใช้ร่วมกัน จะสร้างประสบการณ์ที่ยอดเยี่ยมให้กับผู้ใช้เว็บแอปพลิเคชัน ช่วยให้สามารถดึงข้อมูลข้ามต้นทางได้อย่างปลอดภัยและมีประสิทธิภาพ ถ้าหากคุณสนใจเรียนรู้เพิ่มเติมเกี่ยวกับการเขียนโปรแกรมและโครงสร้างพื้นฐานสำหรับเว็บแอปพลิเคชัน ไม่ว่าจะเป็น CORS, JSON หรือเทคโนโลยีอื่นๆ ที่เกี่ยวข้อง สามารถพิจารณามาเรียนรู้ที่ Expert-Programming-Tutor (EPT) ซึ่งเป็นโรงเรียนที่มุ่งเน้นให้ความรู้และทักษะเกี่ยวกับคอมพิวเตอร์โปรแกรมมิ่งได้ครับ
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
หากเจอข้อผิดพลาด หรือต้องการพูดคุย ติดต่อได้ที่ https://m.me/expert.Programming.Tutor/
Tag ที่น่าสนใจ: java c# vb.net python c c++ machine_learning web database oop cloud aws ios android
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM