เมื่อเกิดข้อผิดพลาดในการทำงานของเว็บไซต์ ข้อความแจ้งข้อผิดพลาด หรือ Code Error ต่างๆ จะปรากฏขึ้น โดยบ่งบอกถึงปัญหาที่เกิดขึ้นในกระบวนการทำงานของเซิร์ฟเวอร์หรือเบราว์เซอร์ การเข้าใจประเภทของ Code Error เหล่านี้สามารถช่วยในการระบุและแก้ไขปัญหาได้อย่างรวดเร็ว โดยทั่วไป ข้อผิดพลาดจะถูกแบ่งออกเป็นกลุ่มตามประเภทของรหัสสถานะ (HTTP Status Code) และแต่ละกลุ่มมีความหมายดังนี้:
1. 1xx Informational Responses
- เป็นรหัสสถานะที่แสดงว่าคำขอถูกส่งไปและยังคงดำเนินการอยู่ เซิร์ฟเวอร์ยังอยู่ในระหว่างการประมวลผล ซึ่งรหัสในกลุ่มนี้จะไม่ค่อยปรากฏให้ผู้ใช้เห็น
- ตัวอย่าง:
- 100 Continue: แจ้งให้เบราว์เซอร์ทราบว่าคำขอยังไม่เสร็จสมบูรณ์และยังดำเนินการต่อไปได้
2. 2xx Success (สำเร็จ)
- แสดงว่าเซิร์ฟเวอร์ได้ดำเนินการตามคำขอสำเร็จ รหัสสถานะในกลุ่มนี้โดยทั่วไปไม่แสดงให้ผู้ใช้เห็น เพราะการทำงานเป็นปกติ
- ตัวอย่าง:
- 200 OK: คำขอสำเร็จและข้อมูลถูกส่งกลับไปยังผู้ใช้เรียบร้อย
- 201 Created: เซิร์ฟเวอร์ได้สร้างทรัพยากรใหม่สำเร็จ เช่น การสร้างบัญชีผู้ใช้ใหม่
3. 3xx Redirection (การเปลี่ยนเส้นทาง)
- หมายความว่าผู้ใช้หรือเบราว์เซอร์จำเป็นต้องเปลี่ยนเส้นทางเพื่อดำเนินการให้สำเร็จ
- ตัวอย่าง:
- 301 Moved Permanently: หน้าเว็บถูกย้ายไปที่ URL ใหม่อย่างถาวร
- 302 Found: หน้าเว็บถูกย้ายไปที่ URL ใหม่แบบชั่วคราว (Temporary)
4. 4xx Client Error (ข้อผิดพลาดฝั่งไคลเอนต์)
- หมายความว่าเบราว์เซอร์หรือฝั่งผู้ใช้ส่งคำขอที่ไม่ถูกต้องหรือขอสิ่งที่ไม่มีอยู่ ข้อผิดพลาดในกลุ่มนี้เป็นเรื่องปกติที่ผู้ใช้จะพบเมื่อ URL ไม่ถูกต้องหรือไม่มีสิทธิ์เข้าถึง
- ตัวอย่าง:
- 400 Bad Request: คำขอไม่ถูกต้อง อาจเกิดจากโครงสร้างคำขอที่ผิด เช่น URL ผิดหรือส่งข้อมูลไม่ครบถ้วน
- 401 Unauthorized: ผู้ใช้ไม่มีสิทธิ์เข้าถึง จำเป็นต้องมีการยืนยันตัวตน
- 403 Forbidden: ผู้ใช้ไม่มีสิทธิ์เข้าถึงเนื้อหานี้ แม้ว่าจะยืนยันตัวตนแล้ว
- 404 Not Found: ไม่พบหน้าหรือไฟล์ที่ผู้ใช้ขอ เป็นข้อผิดพลาดที่พบได้บ่อยมากเมื่อ URL ไม่ถูกต้อง
- 408 Request Timeout: การเชื่อมต่อหมดเวลา ซึ่งหมายความว่าเซิร์ฟเวอร์ใช้เวลาในการตอบกลับนานเกินไป
5. 5xx Server Error (ข้อผิดพลาดฝั่งเซิร์ฟเวอร์)
- หมายถึงเซิร์ฟเวอร์มีปัญหาในการประมวลผลคำขอ ข้อผิดพลาดในกลุ่มนี้อาจเกิดจากการทำงานของเซิร์ฟเวอร์ที่ขัดข้องหรือการตั้งค่าที่ผิดพลาด
- ตัวอย่าง:
- 500 Internal Server Error: ข้อผิดพลาดทั่วไปที่แสดงว่าเซิร์ฟเวอร์มีปัญหาในการประมวลผลคำขอ
- 502 Bad Gateway: เซิร์ฟเวอร์ที่ทำหน้าที่เป็นเกตเวย์หรือพร็อกซี่ได้รับการตอบกลับที่ไม่ถูกต้องจากเซิร์ฟเวอร์อื่น
- 503 Service Unavailable: เซิร์ฟเวอร์ไม่สามารถให้บริการได้ชั่วคราว เช่น ระบบล่มหรือกำลังซ่อมบำรุง
- 504 Gateway Timeout: เซิร์ฟเวอร์ที่ทำหน้าที่เป็นเกตเวย์ไม่สามารถตอบกลับคำขอได้ภายในเวลาที่กำหนด
ข้อผิดพลาดเพิ่มเติมที่เกี่ยวข้องกับโค้ดหรือระบบฝั่งไคลเอนต์
ในกรณีที่เป็นปัญหาฝั่งไคลเอนต์ อาจเกิดจาก JavaScript หรือการตั้งค่าของเว็บไซต์ โดยในกรณีนี้ ข้อผิดพลาดมักแสดงใน Console ของเบราว์เซอร์ มีข้อผิดพลาดหลักๆ ดังนี้:
- SyntaxError: ข้อผิดพลาดเกิดจากโค้ด JavaScript มีไวยากรณ์ที่ผิด ซึ่งทำให้ไม่สามารถประมวลผลได้ เช่นลืมปิดวงเล็บ
- TypeError: โค้ดพยายามเรียกใช้ฟังก์ชันหรือคุณสมบัติในตัวแปรที่ไม่รองรับ เช่นพยายามเรียกฟังก์ชันในตัวเลขหรือออบเจกต์ที่เป็น
null
- ReferenceError: มีการอ้างถึงตัวแปรที่ไม่ได้ประกาศหรือไม่มีอยู่ในขอบเขตการทำงาน เช่น อ้างถึงตัวแปรที่ไม่ได้กำหนดค่ามาก่อน
- RangeError: ข้อผิดพลาดที่เกิดจากการใช้ค่าที่ไม่ถูกต้อง เช่น ตัวเลขที่อยู่นอกขอบเขตที่อนุญาต
- NetworkError: เกิดขึ้นเมื่อคำขอ HTTP ไม่สำเร็จ เช่น เมื่อเซิร์ฟเวอร์ไม่ตอบสนองหรือถูกบล็อกโดยการตั้งค่า CORS
สรุป
- 4xx Client Error: ข้อผิดพลาดที่ฝั่งผู้ใช้ เช่น URL ไม่ถูกต้องหรือไม่มีสิทธิ์เข้าถึง
- 5xx Server Error: ข้อผิดพลาดที่ฝั่งเซิร์ฟเวอร์ เช่น เซิร์ฟเวอร์ล่มหรือประมวลผลไม่ได้
- ข้อผิดพลาดจากโค้ดฝั่งไคลเอนต์: เช่น SyntaxError, TypeError, ReferenceError ที่เกิดขึ้นใน JavaScript ซึ่งตรวจสอบและแก้ไขได้ใน Browser Console
การเข้าใจรหัสข้อผิดพลาดเหล่านี้ช่วยให้เราสามารถระบุและแก้ไขปัญหาได้ตรงจุด