Learning AtlasIT Support → Cybersecurity
คลังบทอ่าน08.2 / พื้นฐานการทำงานของเว็บบทถัดไป
สารบัญบทอ่าน / Web Foundations / 08.2
02 · เข้าใจเครือข่ายและเว็บ · บท 08.2

Web Application Structure

ส่วนประกอบเว็บแอป

เว็บแอปแบ่งงานระหว่างสิ่งที่แสดงใน browser กับสิ่งที่ทำบน server และต้องมีช่องทางส่งข้อมูลให้กัน

4 หัวข้อคำอธิบายในหน้านี้ภาพอธิบายและกลไกทีละส่วน
หัวข้อในบทนี้
ศัพท์ในบทนี้ · กดคำที่ขีดเส้นใต้ในเนื้อหาเพื่อดูความหมายได้ด้วย
API
ข้อตกลงวิธีที่โปรแกรมเรียกความสามารถหรือข้อมูลของอีกโปรแกรม
JSON
รูปแบบข้อความของ object array และค่าพื้นฐาน
DOM
โครงสร้างเอกสารใน browser ที่โปรแกรมเข้าถึงได้
HTML
ภาษาโครงสร้างและความหมายของเอกสารเว็บ
CSS
กฎการแสดงผลและการจัดวางเว็บ
จากหลักการไปถึงกลไก

หน้าจอ กฎธุรกิจ และข้อมูลต้องแยกหน้าที่

Frontend ใช้ เป็นโครงสร้าง จัดรูปลักษณ์ และ JavaScript จัดพฤติกรรมผ่าน Backend รับ request บังคับกฎและสิทธิ์ก่อนเข้าถึงข้อมูล เป็นสัญญาวิธีเรียกความสามารถ ส่วน เป็นรูปแบบข้อความแลกข้อมูล ไม่ใช่ฐานข้อมูลและไม่ใช่การเข้ารหัส

ส่วนที่สัมพันธ์กัน · เส้นแสดงการเชื่อมโยง ไม่ใช่เวลาหน้าจอ กฎธุรกิจ และข้อมูลต้องแยกหน้าที่
หน้าจอ กฎธุรกิจ และข้อมูลต้องแยกหน้าที่
  1. Browser / frontend

    รับ input แสดงข้อมูล และส่งคำขอ ผู้ใช้แก้โค้ดฝั่งนี้หรือสร้าง request เองได้

  2. API boundary

    เช่น GET /devices กำหนด method path schema status และวิธีใช้หลักฐานตัวตน

  3. Backend

    ตรวจรูปแบบ ตัวตน สิทธิ์ของรายการ และกฎธุรกิจ ก่อนอ่านหรือเปลี่ยนข้อมูล

  4. Database

    เก็บและสืบค้นข้อมูลด้วยสิทธิ์ที่ backend ได้ ไม่แจก credential ฐานข้อมูลให้ browser

  5. Response / rendering

    คืนข้อมูลหรือหน้าเว็บ Frontend ตรวจผลและแสดงตามรูปแบบที่ได้รับ

ซ่อนปุ่มลบไม่ป้องกัน : backend ยังต้องตรวจสิทธิ์คนที่ส่งคำขอ Static และ dynamic อาจอยู่เว็บเดียวกันได้ เช่น คงที่เรียก API สำหรับข้อมูลล่าสุด ต้องแยกข้อมูลสาธารณะที่แคชได้กับข้อมูลผู้ใช้ และตรวจ content type กับ schema ก่อนใช้

01 / 04

ส่วนหน้าและส่วนหลังFrontend and Backend · 08.2.1

Frontend เป็นส่วนที่ผู้ใช้โต้ตอบ Backend ประมวลผลและจัดการข้อมูลฝั่งบริการ

Frontend ทำงานในฝั่งผู้ใช้เพื่อแสดงข้อมูลและรับการกระทำ Backend รับคำขอ ตรวจสิทธิ์ ใช้กฎธุรกิจ และเข้าถึงข้อมูล ความลับและกฎอนุญาตต้องบังคับฝั่ง backend เพราะผู้ใช้แก้โค้ดฝั่งเครื่องตนเองได้

เทียบหน้าที่เพื่อไม่สับสน
•Frontend

หน้าจอและการโต้ตอบ

•Backend

กฎและการตรวจสิทธิ์

•Database

ข้อมูลที่ backend อ่านหรือเปลี่ยน

ปุ่มลบที่ซ่อนจากหน้าจอไม่ใช่การป้องกัน หากผู้ใช้ส่ง DELETE เอง เซิร์ฟเวอร์ยังต้องตรวจว่าใครเป็นเจ้าของรายการก่อนลบ ฐานข้อมูลไม่ควรเปิดให้เบราว์เซอร์ต่อด้วยรหัสผ่านของระบบโดยตรง

ที่มาของหัวข้อนี้ · คำอธิบายต่อยอด

คำอธิบายและภาพในหน้านี้เรียบเรียงใหม่ ชื่อบทต้นทางด้านล่างใช้ตรวจที่มา ไม่ได้แทนเนื้อหาที่คุณต้องไปอ่านเพิ่มเพื่อเข้าใจหน้านี้ และไม่ยืนยันว่าทุกประโยคมีอยู่ในคอร์ส

เป็นส่วนต่อยอดที่เขียนเพื่อเชื่อมความเข้าใจ ไม่มีชื่อ Video/Reading เฉพาะที่ยืนยันจาก inventory เดิม

02 / 04

หน้าที่ของแต่ละภาษาHTML, CSS and JavaScript Roles · 08.2.2

HTML กำหนดโครงสร้าง CSS จัดรูปแบบ JavaScript กำหนดพฤติกรรมในหน้า

บอกโครงสร้างและความหมาย บอกการจัดวางและรูปลักษณ์ JavaScript เพิ่มพฤติกรรม ทั้งสามอาจทำงานร่วมกันแต่ไม่ได้ทดแทนกัน เบราว์เซอร์สร้าง ซึ่งเป็นโครงสร้างเอกสารในหน่วยความจำให้โค้ดเข้าถึง

เทียบหน้าที่เพื่อไม่สับสน
•HTML

เนื้อหาและโครงสร้าง

•CSS

การแสดงผลและ layout

•JavaScript

พฤติกรรมและการเปลี่ยน DOM

ในแบบฟอร์ม สร้าง label กับช่องกรอก จัดระยะและสี JavaScript ตรวจความครบแล้วส่งคำขอ หากปิด JavaScript เนื้อหาและการใช้งานพื้นฐานที่ออกแบบไว้ยังควรอ่านได้

ที่มาของหัวข้อนี้ · 1 รายการ

คำอธิบายและภาพในหน้านี้เรียบเรียงใหม่ ชื่อบทต้นทางด้านล่างใช้ตรวจที่มา ไม่ได้แทนเนื้อหาที่คุณต้องไปอ่านเพิ่มเพื่อเข้าใจหน้านี้ และไม่ยืนยันว่าทุกประโยคมีอยู่ในคอร์ส

03 / 04

ส่วนเชื่อมต่อและรูปแบบข้อมูลAPIs and JSON · 08.2.3

API เป็นสัญญาการเรียกบริการ JSON เป็นรูปแบบข้อมูลที่ใช้รับส่งได้

กำหนดวิธีที่โปรแกรมหนึ่งเรียกความสามารถของอีกโปรแกรม เช่น endpoint, method, รูปแบบ request และ response เป็นรูปแบบข้อความเก็บ object, array, string, number, boolean และ null ไม่ใช่ฐานข้อมูลหรือโปรโตคอลเครือข่าย

เทียบหน้าที่เพื่อไม่สับสน
•Contract

ชื่อ endpoint และข้อมูลที่ตกลงกัน

•Request

การเรียกพร้อมสิทธิ์และค่า

•Response

สถานะและข้อมูลตามรูปแบบ

GET /devices อาจตอบ {"devices":[{"id":7,"status":"online"}]} โปรแกรมต้องตรวจ status ก่อน parse และต้องรับมือข้อมูลไม่ตรง schema คำตอบผิดพลาดอาจเป็น แม้คาดหวัง JSON

ที่มาของหัวข้อนี้ · คำอธิบายต่อยอด

คำอธิบายและภาพในหน้านี้เรียบเรียงใหม่ ชื่อบทต้นทางด้านล่างใช้ตรวจที่มา ไม่ได้แทนเนื้อหาที่คุณต้องไปอ่านเพิ่มเพื่อเข้าใจหน้านี้ และไม่ยืนยันว่าทุกประโยคมีอยู่ในคอร์ส

เป็นส่วนต่อยอดที่เขียนเพื่อเชื่อมความเข้าใจ ไม่มีชื่อ Video/Reading เฉพาะที่ยืนยันจาก inventory เดิม

04 / 04

เนื้อหาคงที่และเนื้อหาที่ระบบสร้างStatic and Dynamic Content · 08.2.4

Static content ถูกจัดเตรียมไว้ Dynamic content สร้างตามข้อมูลหรือคำขอ

Static content ส่งไฟล์ที่เตรียมไว้ ส่วน dynamic content เกิดจากการประมวลผลตาม request เช่นผู้ใช้หรือข้อมูลล่าสุด เว็บหนึ่งใช้ทั้งคู่ได้ และเว็บ static ก็เรียก เพื่อแสดงข้อมูลที่เปลี่ยนได้

เทียบหน้าที่เพื่อไม่สับสน
•Static file

ไฟล์พร้อมส่ง

•Dynamic response

ผลประมวลตามคำขอ

•Hybrid page

ไฟล์หน้าเว็บเรียกข้อมูลเพิ่ม

หน้าเอกสาร ส่งไฟล์เดิมได้ ส่วนรายการคำสั่งซื้ออ่านฐานข้อมูลตามผู้ใช้ที่เข้าสู่ระบบ ต้องแยกแคชของเนื้อหาสาธารณะจากข้อมูลส่วนบุคคลเพื่อไม่ส่งข้อมูลคนหนึ่งให้อีกคน

ที่มาของหัวข้อนี้ · คำอธิบายต่อยอด

คำอธิบายและภาพในหน้านี้เรียบเรียงใหม่ ชื่อบทต้นทางด้านล่างใช้ตรวจที่มา ไม่ได้แทนเนื้อหาที่คุณต้องไปอ่านเพิ่มเพื่อเข้าใจหน้านี้ และไม่ยืนยันว่าทุกประโยคมีอยู่ในคอร์ส

เป็นส่วนต่อยอดที่เขียนเพื่อเชื่อมความเข้าใจ ไม่มีชื่อ Video/Reading เฉพาะที่ยืนยันจาก inventory เดิม

เชื่อมความเข้าใจ

นำศัพท์มาเชื่อมกับงาน

ตัวอย่างให้เห็นภาพ

กดค้นสินค้าแล้วหน้าแสดงรายการใหม่ อาจมี JavaScript เรียก API ไปยัง backend

สิ่งที่บทนี้เชื่อมไว้

เว็บแอปแบ่งงานระหว่างสิ่งที่แสดงใน browser กับสิ่งที่ทำบน server และต้องมีช่องทางส่งข้อมูลให้กัน

ใช้ภาพกับตัวอย่างด้านบนเชื่อมหน้าที่ของแต่ละส่วน แล้วตรวจความเข้าใจด้วยการอธิบายเหตุผลของผลที่เห็น ก่อนเปิดบทถัดไป

บันทึกในเบราว์เซอร์นี้
บทเรียนที่เกี่ยวข้องและที่มาของบทอ่าน

คำอธิบายหน้านี้เขียนใหม่ตามหัวข้อใน Atlas รายการด้านล่างเป็นชื่อ Video/Reading ที่เคยจับคู่ไว้ แสดงไว้ให้ตรวจที่มาของชื่อหัวข้อ และไม่รับรองว่าคอร์สสอนทุกส่วนของคำอธิบายนี้

MDN · Web development ↗