Web Application Structure
ส่วนประกอบเว็บแอป
เว็บแอปแบ่งงานระหว่างสิ่งที่แสดงใน browser กับสิ่งที่ทำบน server และต้องมีช่องทางส่งข้อมูลให้กัน
หัวข้อในบทนี้
ศัพท์ในบทนี้ · กดคำที่ขีดเส้นใต้ในเนื้อหาเพื่อดูความหมายได้ด้วย
- API
- ข้อตกลงวิธีที่โปรแกรมเรียกความสามารถหรือข้อมูลของอีกโปรแกรม
- JSON
- รูปแบบข้อความของ object array และค่าพื้นฐาน
- DOM
- โครงสร้างเอกสารใน browser ที่โปรแกรมเข้าถึงได้
- HTML
- ภาษาโครงสร้างและความหมายของเอกสารเว็บ
- CSS
- กฎการแสดงผลและการจัดวางเว็บ
หน้าจอ กฎธุรกิจ และข้อมูลต้องแยกหน้าที่
Frontend ใช้ เป็นโครงสร้าง จัดรูปลักษณ์ และ JavaScript จัดพฤติกรรมผ่าน Backend รับ request บังคับกฎและสิทธิ์ก่อนเข้าถึงข้อมูล เป็นสัญญาวิธีเรียกความสามารถ ส่วน เป็นรูปแบบข้อความแลกข้อมูล ไม่ใช่ฐานข้อมูลและไม่ใช่การเข้ารหัส
- Browser / frontend
รับ input แสดงข้อมูล และส่งคำขอ ผู้ใช้แก้โค้ดฝั่งนี้หรือสร้าง request เองได้
- API boundary
เช่น GET /devices กำหนด method path schema status และวิธีใช้หลักฐานตัวตน
- Backend
ตรวจรูปแบบ ตัวตน สิทธิ์ของรายการ และกฎธุรกิจ ก่อนอ่านหรือเปลี่ยนข้อมูล
- Database
เก็บและสืบค้นข้อมูลด้วยสิทธิ์ที่ backend ได้ ไม่แจก credential ฐานข้อมูลให้ browser
- Response / rendering
คืนข้อมูลหรือหน้าเว็บ Frontend ตรวจผลและแสดงตามรูปแบบที่ได้รับ
ซ่อนปุ่มลบไม่ป้องกัน : backend ยังต้องตรวจสิทธิ์คนที่ส่งคำขอ Static และ dynamic อาจอยู่เว็บเดียวกันได้ เช่น คงที่เรียก API สำหรับข้อมูลล่าสุด ต้องแยกข้อมูลสาธารณะที่แคชได้กับข้อมูลผู้ใช้ และตรวจ content type กับ schema ก่อนใช้
ส่วนหน้าและส่วนหลังFrontend and Backend · 08.2.1
Frontend เป็นส่วนที่ผู้ใช้โต้ตอบ Backend ประมวลผลและจัดการข้อมูลฝั่งบริการ
Frontend ทำงานในฝั่งผู้ใช้เพื่อแสดงข้อมูลและรับการกระทำ Backend รับคำขอ ตรวจสิทธิ์ ใช้กฎธุรกิจ และเข้าถึงข้อมูล ความลับและกฎอนุญาตต้องบังคับฝั่ง backend เพราะผู้ใช้แก้โค้ดฝั่งเครื่องตนเองได้
หน้าจอและการโต้ตอบ
กฎและการตรวจสิทธิ์
ข้อมูลที่ backend อ่านหรือเปลี่ยน
ปุ่มลบที่ซ่อนจากหน้าจอไม่ใช่การป้องกัน หากผู้ใช้ส่ง DELETE เอง เซิร์ฟเวอร์ยังต้องตรวจว่าใครเป็นเจ้าของรายการก่อนลบ ฐานข้อมูลไม่ควรเปิดให้เบราว์เซอร์ต่อด้วยรหัสผ่านของระบบโดยตรง
ที่มาของหัวข้อนี้ · คำอธิบายต่อยอด
คำอธิบายและภาพในหน้านี้เรียบเรียงใหม่ ชื่อบทต้นทางด้านล่างใช้ตรวจที่มา ไม่ได้แทนเนื้อหาที่คุณต้องไปอ่านเพิ่มเพื่อเข้าใจหน้านี้ และไม่ยืนยันว่าทุกประโยคมีอยู่ในคอร์ส
เป็นส่วนต่อยอดที่เขียนเพื่อเชื่อมความเข้าใจ ไม่มีชื่อ Video/Reading เฉพาะที่ยืนยันจาก inventory เดิม
หน้าที่ของแต่ละภาษาHTML, CSS and JavaScript Roles · 08.2.2
HTML กำหนดโครงสร้าง CSS จัดรูปแบบ JavaScript กำหนดพฤติกรรมในหน้า
บอกโครงสร้างและความหมาย บอกการจัดวางและรูปลักษณ์ JavaScript เพิ่มพฤติกรรม ทั้งสามอาจทำงานร่วมกันแต่ไม่ได้ทดแทนกัน เบราว์เซอร์สร้าง ซึ่งเป็นโครงสร้างเอกสารในหน่วยความจำให้โค้ดเข้าถึง
เนื้อหาและโครงสร้าง
การแสดงผลและ layout
พฤติกรรมและการเปลี่ยน DOM
ในแบบฟอร์ม สร้าง label กับช่องกรอก จัดระยะและสี JavaScript ตรวจความครบแล้วส่งคำขอ หากปิด JavaScript เนื้อหาและการใช้งานพื้นฐานที่ออกแบบไว้ยังควรอ่านได้
ที่มาของหัวข้อนี้ · 1 รายการ
คำอธิบายและภาพในหน้านี้เรียบเรียงใหม่ ชื่อบทต้นทางด้านล่างใช้ตรวจที่มา ไม่ได้แทนเนื้อหาที่คุณต้องไปอ่านเพิ่มเพื่อเข้าใจหน้านี้ และไม่ยืนยันว่าทุกประโยคมีอยู่ในคอร์ส
- Technical Support Fundamentals · Module 5: SoftwareReading: Common Scripting SolutionsIT1.M5.R1
ส่วนเชื่อมต่อและรูปแบบข้อมูลAPIs and JSON · 08.2.3
API เป็นสัญญาการเรียกบริการ JSON เป็นรูปแบบข้อมูลที่ใช้รับส่งได้
กำหนดวิธีที่โปรแกรมหนึ่งเรียกความสามารถของอีกโปรแกรม เช่น endpoint, method, รูปแบบ request และ response เป็นรูปแบบข้อความเก็บ object, array, string, number, boolean และ null ไม่ใช่ฐานข้อมูลหรือโปรโตคอลเครือข่าย
ชื่อ endpoint และข้อมูลที่ตกลงกัน
การเรียกพร้อมสิทธิ์และค่า
สถานะและข้อมูลตามรูปแบบ
GET /devices อาจตอบ {"devices":[{"id":7,"status":"online"}]} โปรแกรมต้องตรวจ status ก่อน parse และต้องรับมือข้อมูลไม่ตรง schema คำตอบผิดพลาดอาจเป็น แม้คาดหวัง JSON
ที่มาของหัวข้อนี้ · คำอธิบายต่อยอด
คำอธิบายและภาพในหน้านี้เรียบเรียงใหม่ ชื่อบทต้นทางด้านล่างใช้ตรวจที่มา ไม่ได้แทนเนื้อหาที่คุณต้องไปอ่านเพิ่มเพื่อเข้าใจหน้านี้ และไม่ยืนยันว่าทุกประโยคมีอยู่ในคอร์ส
เป็นส่วนต่อยอดที่เขียนเพื่อเชื่อมความเข้าใจ ไม่มีชื่อ Video/Reading เฉพาะที่ยืนยันจาก inventory เดิม
เนื้อหาคงที่และเนื้อหาที่ระบบสร้างStatic and Dynamic Content · 08.2.4
Static content ถูกจัดเตรียมไว้ Dynamic content สร้างตามข้อมูลหรือคำขอ
Static content ส่งไฟล์ที่เตรียมไว้ ส่วน dynamic content เกิดจากการประมวลผลตาม request เช่นผู้ใช้หรือข้อมูลล่าสุด เว็บหนึ่งใช้ทั้งคู่ได้ และเว็บ static ก็เรียก เพื่อแสดงข้อมูลที่เปลี่ยนได้
ไฟล์พร้อมส่ง
ผลประมวลตามคำขอ
ไฟล์หน้าเว็บเรียกข้อมูลเพิ่ม
หน้าเอกสาร ส่งไฟล์เดิมได้ ส่วนรายการคำสั่งซื้ออ่านฐานข้อมูลตามผู้ใช้ที่เข้าสู่ระบบ ต้องแยกแคชของเนื้อหาสาธารณะจากข้อมูลส่วนบุคคลเพื่อไม่ส่งข้อมูลคนหนึ่งให้อีกคน
ที่มาของหัวข้อนี้ · คำอธิบายต่อยอด
คำอธิบายและภาพในหน้านี้เรียบเรียงใหม่ ชื่อบทต้นทางด้านล่างใช้ตรวจที่มา ไม่ได้แทนเนื้อหาที่คุณต้องไปอ่านเพิ่มเพื่อเข้าใจหน้านี้ และไม่ยืนยันว่าทุกประโยคมีอยู่ในคอร์ส
เป็นส่วนต่อยอดที่เขียนเพื่อเชื่อมความเข้าใจ ไม่มีชื่อ Video/Reading เฉพาะที่ยืนยันจาก inventory เดิม
นำศัพท์มาเชื่อมกับงาน
กดค้นสินค้าแล้วหน้าแสดงรายการใหม่ อาจมี JavaScript เรียก API ไปยัง backend
สิ่งที่บทนี้เชื่อมไว้
เว็บแอปแบ่งงานระหว่างสิ่งที่แสดงใน browser กับสิ่งที่ทำบน server และต้องมีช่องทางส่งข้อมูลให้กัน
ใช้ภาพกับตัวอย่างด้านบนเชื่อมหน้าที่ของแต่ละส่วน แล้วตรวจความเข้าใจด้วยการอธิบายเหตุผลของผลที่เห็น ก่อนเปิดบทถัดไป
บทเรียนที่เกี่ยวข้องและที่มาของบทอ่าน
คำอธิบายหน้านี้เขียนใหม่ตามหัวข้อใน Atlas รายการด้านล่างเป็นชื่อ Video/Reading ที่เคยจับคู่ไว้ แสดงไว้ให้ตรวจที่มาของชื่อหัวข้อ และไม่รับรองว่าคอร์สสอนทุกส่วนของคำอธิบายนี้
MDN · Web development ↗