Browser State and Delivery
สถานะและการส่งเนื้อหาเว็บ
คำขอเว็บแต่ละครั้งต้องมีวิธีจัดการสถานะและความเร็ว เข้าใจว่าข้อมูลเก็บตรงไหนและใครตรวจมัน
หัวข้อในบทนี้
ศัพท์ในบทนี้ · กดคำที่ขีดเส้นใต้ในเนื้อหาเพื่อดูความหมายได้ด้วย
- HTTP
- กฎคำขอกับคำตอบที่ใช้ในการสื่อสารเว็บ
- CDN
- ระบบช่วยส่งหรือ cache เนื้อหาจากจุดกระจาย
session ผูกคำขอหลายครั้งให้เป็นบริบทเดียว
request แต่ละครั้งไม่ได้รู้เองว่าผู้ใช้คนเดิม login ไว้หรือยัง ระบบจึงสร้างบริบทการใช้งาน เช่น session ฝั่ง server และให้ browser ถือ ID ใน cookie จากนั้นทุก request ที่ต้องป้องกันต้องตรวจบริบทกับสิทธิ์ของทรัพยากรอีกครั้ง Cookie เป็นกลไกเก็บส่งข้อมูล Session เป็นแนวคิดบริบท จึงไม่ใช่คำเดียวกัน
- Login
ผู้ใช้ส่งหลักฐานผ่านช่องทางที่ปกป้อง Server ตรวจและสร้าง session ตามวิธีของระบบ
- Set-Cookie
Server ให้ browser เก็บ session ID พร้อมคุณสมบัติ domain path Secure HttpOnly และ SameSite ตามการออกแบบ
- Next request
Browser แนบ cookie ตามกฎ Server หา session และตรวจว่าคำขอนี้ทำได้หรือไม่
- Cache decision
เนื้อหาสาธารณะอาจแคชได้ ข้อมูลบัญชีต้องมีนโยบายที่ไม่ส่งสำเนาคนหนึ่งให้อีกคน
- Expiry / logout
ระบบหมดอายุหรือยุติบริบทตามวิธีที่ใช้ Token แบบต่างกันมีวิธีเพิกถอนต่างกัน
Cookie ส่งตามกฎ domain path และ flags Session ID ไม่ควรบรรจุความลับของผู้ใช้ทั้งหมด การได้ ID ไม่ได้ให้สิทธิ์อ่าน resource ทุกชิ้น
Secure จำกัดการส่ง cookie ผ่านช่องทางที่ปลอดภัย HttpOnly ลดการอ่านด้วย script SameSite จำกัดบางการส่งข้ามไซต์ แต่ไม่แทนการออกแบบป้องกัน CSRF ทั้งหมด และ browser cache เป็นคนละชั้น ETag ใช้ตรวจรุ่นของเนื้อหา ไม่ใช่หลักฐานยืนยันตัวตน
คุกกี้และเซสชันCookies and Sessions · 08.3.1
Cookie เป็นข้อมูลที่ browser ส่งตามขอบเขตที่กำหนด Session เป็นวิธีผูกคำขอกับสถานะการใช้งาน
Cookie เป็นข้อมูลที่เบราว์เซอร์เก็บและส่งให้โฮสต์ตามกฎ domain, path และคุณสมบัติของมัน Session คือบริบทการใช้งานที่ระบบติดตาม มักใช้ cookie เก็บ session ID แล้วเก็บข้อมูลจริงไว้ฝั่งเซิร์ฟเวอร์
ค่าที่เบราว์เซอร์แนบ
ตัวอ้างอิงการใช้งาน
ข้อมูลและสิทธิ์ที่ผูกกับ ID
หลัง login เซิร์ฟเวอร์ส่ง session cookie คำขอถัดไปแนบ ID เพื่อหา session HttpOnly ลดการอ่าน cookie ด้วยสคริปต์ Secure จำกัดการส่งผ่านช่องทางปลอดภัย และ SameSite ควบคุมบางการส่งข้ามไซต์ แต่ยังต้องป้องกัน CSRF ตามแบบระบบ
Cookie Flags and Server Checks (คุณสมบัติ cookie กับการตรวจฝั่งระบบ)
HttpOnly ลดการอ่าน cookie ผ่าน JavaScript แต่ script อันตรายในเว็บยังอาจเรียกคำขอโดย browser แนบ cookie ให้ตามกฎ Secure จำกัดการส่งผ่านช่องทางที่ปลอดภัยตามระบบ SameSite ควบคุมบางการส่งข้ามไซต์ จึงต้องดูทั้ง session design และมาตรการ CSRF ตามรูปแบบแอป
Expiry ฝั่ง browser กับอายุ session ฝั่ง server เป็นคนละการควบคุม Logout ต้องยุติบริบทตามวิธีที่ออกแบบไว้ Session ID ที่ขโมยมาอาจถูกใช้จนหมดอายุหรือเพิกถอนตามระบบ เปลี่ยนรหัสผ่านไม่ได้ยืนยันว่า session เก่าทุกชุดหยุดทันทีในทุกแอป
ที่มาของหัวข้อนี้ · คำอธิบายต่อยอด
คำอธิบายและภาพในหน้านี้เรียบเรียงใหม่ ชื่อบทต้นทางด้านล่างใช้ตรวจที่มา ไม่ได้แทนเนื้อหาที่คุณต้องไปอ่านเพิ่มเพื่อเข้าใจหน้านี้ และไม่ยืนยันว่าทุกประโยคมีอยู่ในคอร์ส
เป็นส่วนต่อยอดที่เขียนเพื่อเชื่อมความเข้าใจ ไม่มีชื่อ Video/Reading เฉพาะที่ยืนยันจาก inventory เดิม
แคชและเครือข่ายกระจายเนื้อหาCaching and CDNs · 08.3.2
Cache ใช้สำเนาเพื่อลดการดึงซ้ำ CDN กระจายการส่งเนื้อหาใกล้ผู้ใช้
Cache เก็บสำเนาเพื่อลดการโหลดซ้ำ กระจายสำเนาหรือช่วยส่งเนื้อหาจากตำแหน่งใกล้ผู้ใช้ Cache-Control กำหนดนโยบาย ส่วน ETag ใช้เปรียบเทียบรุ่นเพื่อขอเฉพาะเมื่อเปลี่ยน
สำเนาที่เครื่องผู้ใช้
สำเนาบริเวณขอบเครือข่าย
บริการต้นทางของเนื้อหา
ไฟล์ภาพเก็บได้นานหากชื่อไฟล์เปลี่ยนตามรุ่น แต่หน้าข้อมูลบัญชีต้องกำหนดการเก็บอย่างระมัดระวัง หากเว็บยังแสดงของเก่าให้แยก browser cache, cache และต้นทางก่อนสรุปว่าอัปเดตไฟล์ไม่สำเร็จ
ที่มาของหัวข้อนี้ · คำอธิบายต่อยอด
คำอธิบายและภาพในหน้านี้เรียบเรียงใหม่ ชื่อบทต้นทางด้านล่างใช้ตรวจที่มา ไม่ได้แทนเนื้อหาที่คุณต้องไปอ่านเพิ่มเพื่อเข้าใจหน้านี้ และไม่ยืนยันว่าทุกประโยคมีอยู่ในคอร์ส
เป็นส่วนต่อยอดที่เขียนเพื่อเชื่อมความเข้าใจ ไม่มีชื่อ Video/Reading เฉพาะที่ยืนยันจาก inventory เดิม
ลำดับการเข้าสู่ระบบAuthentication Flow · 08.3.3
การเข้าสู่ระบบตรวจข้อมูลยืนยันตัวตน แล้วใช้ session หรือ token กับคำขอถัดไป
Authentication ตรวจว่าเป็นใคร Authorization ตรวจว่าทำอะไรได้ การ login ส่งหลักฐานผ่านช่องทางปลอดภัย ระบบตรวจแล้วสร้าง session หรือ token จากนั้นแต่ละ request ต้องตรวจหลักฐานและสิทธิ์อีกครั้งตามที่จำเป็น
ตรวจบัญชีและปัจจัยยืนยัน
สร้างบริบทการใช้งาน
ตรวจสิทธิ์ของการกระทำ
ผู้ใช้ login ผ่านแล้วไม่ได้หมายถึงดูข้อมูลผู้ใช้อื่นได้ การ logout ต้องยุติบริบทที่ออกแบบไว้ และการหมดอายุหรือเพิกถอนช่วยจำกัดเวลาที่ token ที่ถูกขโมยใช้ได้
ที่มาของหัวข้อนี้ · 2 รายการ
คำอธิบายและภาพในหน้านี้เรียบเรียงใหม่ ชื่อบทต้นทางด้านล่างใช้ตรวจที่มา ไม่ได้แทนเนื้อหาที่คุณต้องไปอ่านเพิ่มเพื่อเข้าใจหน้านี้ และไม่ยืนยันว่าทุกประโยคมีอยู่ในคอร์ส
- IT Security: Defense against the digital dark arts · Module 3: The 3 A's of Cybersecurity: Authentication, Authorization, AccountingVideo: Best practices for authenticationIT5.M3.V1
- Assets, Threats, and Vulnerabilities · Module 2: Protect organizational assetsVideo: Access controls and authentication systemsCY5.M2.V7
นำศัพท์มาเชื่อมกับงาน
กดออกจากระบบต้องยุติสถานะที่เกี่ยวข้อง การลบข้อความชื่อผู้ใช้บนหน้าจออย่างเดียวไม่พอ
สิ่งที่บทนี้เชื่อมไว้
คำขอเว็บแต่ละครั้งต้องมีวิธีจัดการสถานะและความเร็ว เข้าใจว่าข้อมูลเก็บตรงไหนและใครตรวจมัน
ใช้ภาพกับตัวอย่างด้านบนเชื่อมหน้าที่ของแต่ละส่วน แล้วตรวจความเข้าใจด้วยการอธิบายเหตุผลของผลที่เห็น ก่อนเปิดบทถัดไป
บทเรียนที่เกี่ยวข้องและที่มาของบทอ่าน
คำอธิบายหน้านี้เขียนใหม่ตามหัวข้อใน Atlas รายการด้านล่างเป็นชื่อ Video/Reading ที่เคยจับคู่ไว้ แสดงไว้ให้ตรวจที่มาของชื่อหัวข้อ และไม่รับรองว่าคอร์สสอนทุกส่วนของคำอธิบายนี้
MDN · Web development ↗