เคยเจอปัญหาเข้าเว็บไซต์แล้วเห็นหน้าจอแสดงตัวเลข 404 หรือ 500 ไหม? หรือบางทีคุณอาจเป็นเจ้าของเว็บไซต์ที่พบว่าเว็บของคุณมีปัญหาแต่ไม่รู้ว่าเกิดจากอะไร การเข้าใจความหมายของรหัสสถานะ HTTP หรือ HTTP Status Code จะช่วยให้คุณรู้ว่ากำลังเกิดอะไรขึ้นและแก้ไขปัญหาได้ถูกจุด
HTTP Status Code คืออะไร?
HTTP Status Code คือรหัสตัวเลขสามหลักที่เซิร์ฟเวอร์ส่งกลับเมื่อมีการร้องขอข้อมูลจากเว็บเบราว์เซอร์ รหัสเหล่านี้เป็นส่วนหนึ่งของโปรโตคอล HTTP (Hypertext Transfer Protocol) ที่เป็นพื้นฐานการสื่อสารบนเว็บ โดยรหัสแต่ละตัวจะบอกสถานะของการติดต่อสื่อสารว่าสำเร็จหรือล้มเหลว และถ้าล้มเหลวเกิดจากสาเหตุใด
เมื่อคุณป้อน URL ในเบราว์เซอร์ เบราว์เซอร์จะส่งคำขอไปยังเซิร์ฟเวอร์ที่เก็บเว็บไซต์นั้น ๆ เซิร์ฟเวอร์จะตอบกลับด้วย HTTP Status Code และข้อมูลเว็บเพจที่ต้องการ
HTTP Status Code สำคัญยังไง?
รหัสสถานะ HTTP มีความสำคัญอย่างมากต่อระบบเว็บไซต์และเซิร์ฟเวอร์ในหลายแง่มุม เช่น ช่วยระบุปัญหาที่เว็บไซต์ ทำให้แก้ไขได้รวดเร็วยิ่งขึ้น ใช้ติดตามว่าเว็บไซต์ทำงานได้ราบรื่นหรือไม่ และช่วยให้ระบบแสดงข้อความที่เหมาะสมเมื่อเกิดปัญหา ทำให้ผู้ใช้งานเข้าใจสถานการณ์
ประเภทของ HTTP Status Code ทั้ง 5 กลุ่มหลัก
HTTP Status Code แบ่งออกเป็น 5 กลุ่มใหญ่ โดยแต่ละกลุ่มจะบ่งบอกลักษณะของการตอบสนองที่แตกต่างกัน
กลุ่ม 1xx (Informational) – ข้อมูลเบื้องต้น
รหัสกลุ่ม 1xx เป็นรหัสที่บอกว่าเซิร์ฟเวอร์ได้รับคำขอแล้วและกำลังดำเนินการต่อ เป็นรหัสที่ผู้ใช้ทั่วไปแทบไม่เคยเห็น เพราะเบราว์เซอร์จัดการอัตโนมัติ รหัสกลุ่มนี้มักเกี่ยวข้องกับการสื่อสารระดับโปรโตคอล
กลุ่ม 2xx (Success) – การร้องขอสำเร็จ
รหัสกลุ่ม 2xx แสดงว่าการร้องขอสำเร็จเรียบร้อย เซิร์ฟเวอร์เข้าใจและตอบสนองคำขอได้ตามที่ต้องการ เป็นสัญญาณที่ดีที่สุดที่แสดงว่าทุกอย่างทำงานได้ถูกต้อง รหัสที่พบบ่อยที่สุดในกลุ่มนี้คือ 200 OK
กลุ่ม 3xx (Redirection) – การเปลี่ยนเส้นทาง
รหัสกลุ่ม 3xx แสดงว่าต้องมีการดำเนินการเพิ่มเติมเพื่อให้คำขอสำเร็จ มักเกี่ยวข้องกับการเปลี่ยนเส้นทางหรือ Redirect ไปยัง URL อื่น เช่น เมื่อเว็บไซต์ย้ายไปอยู่ที่โดเมนใหม่ หรือเปลี่ยนโครงสร้าง URL
กลุ่ม 4xx (Client Error) – ข้อผิดพลาดฝั่งผู้ใช้งาน
รหัสกลุ่ม 4xx แสดงว่าเกิดข้อผิดพลาดจากฝั่งผู้ใช้งานหรือไคลเอนต์ อาจเป็นเพราะเข้า URL ที่ไม่มีอยู่ ไม่มีสิทธิ์ในการเข้าถึง หรือส่งข้อมูลไม่ถูกต้อง รหัสที่พบบ่อยที่สุดในกลุ่มนี้คือ 404 Not Found
กลุ่ม 5xx (Server Error) – ข้อผิดพลาดฝั่งเซิร์ฟเวอร์
รหัสกลุ่ม 5xx แสดงว่าเกิดข้อผิดพลาดที่เซิร์ฟเวอร์ แม้คำขอจากผู้ใช้จะถูกต้อง แต่เซิร์ฟเวอร์ไม่สามารถดำเนินการได้ อาจเกิดจากโค้ดมีปัญหา เซิร์ฟเวอร์ล่ม หรือมีการบำรุงรักษาระบบ รหัสที่พบบ่อยที่สุดคือ 500 Internal Server Error
ตัวอย่าง HTTP Status Code พร้อมคำอธิบายและวิธีแก้ไข
1xx Informational Response (ข้อมูลได้รับการตอบสนอง)
100 Continue (ดำเนินการต่อ)
เซิร์ฟเวอร์ได้รับส่วนหัวของคำขอและพร้อมให้ไคลเอนต์ส่งข้อมูลต่อไป มักใช้กับการอัปโหลดไฟล์ขนาดใหญ่
วิธีแก้ไข: ไม่จำเป็นต้องแก้ไข เป็นส่วนหนึ่งของการทำงานปกติ
101 Switching Protocols (เปลี่ยนโปรโตคอล)
เซิร์ฟเวอร์ตกลงที่จะเปลี่ยนโปรโตคอลตามที่ไคลเอนต์ร้องขอ เช่น เปลี่ยนจาก HTTP เป็น WebSocket
วิธีแก้ไข: ไม่จำเป็นต้องแก้ไข เป็นส่วนหนึ่งของการทำงานปกติ
102 Processing (กำลังประมวลผล)
เซิร์ฟเวอร์ได้รับคำขอและกำลังประมวลผล แต่ยังไม่มีการตอบสนองที่พร้อม
วิธีแก้ไข: รอให้การประมวลผลเสร็จสิ้น
103 Early Hints (คำใบ้ก่อนกาล)
ส่งข้อมูลเบื้องต้นเพื่อให้เบราว์เซอร์เตรียมทรัพยากรก่อนที่จะส่งการตอบสนองจริง ช่วยเพิ่มความเร็วในการโหลดหน้าเว็บ
วิธีแก้ไข: ไม่จำเป็นต้องแก้ไข เป็นการเพิ่มประสิทธิภาพการทำงาน
2xx Success (สำเร็จ)
200 OK (โอเค)
คำขอสำเร็จ นี่คือสถานะปกติที่แสดงว่าทุกอย่างทำงานได้ถูกต้อง
วิธีแก้ไข: ไม่จำเป็นต้องแก้ไข เป็นสถานะที่ต้องการ
201 Created (สร้าง)
คำขอสำเร็จและทรัพยากรใหม่ถูกสร้างขึ้น มักใช้หลังจากการส่งฟอร์มหรือ API request ที่สร้างข้อมูลใหม่
วิธีแก้ไข: ไม่จำเป็นต้องแก้ไข เป็นสถานะที่ต้องการ
202 Accepted (ยอมรับ)
คำขอได้รับการยอมรับแต่ยังไม่ได้ดำเนินการ อาจเป็นเพราะต้องใช้เวลาในการประมวลผล
วิธีแก้ไข: รอให้การประมวลผลเสร็จสิ้น
203 Non-Authoritative Information (ข้อมูลที่ไม่ได้รับอนุญาต)
คำขอสำเร็จ แต่ข้อมูลที่ส่งกลับมาอาจมาจากแหล่งอื่นที่ไม่ใช่เซิร์ฟเวอร์ต้นทาง
วิธีแก้ไข: ไม่จำเป็นต้องแก้ไข แต่ควรตระหนักว่าข้อมูลอาจไม่ได้มาจากแหล่งที่แท้จริง
204 No Content (ไม่มีเนื้อหา)
คำขอสำเร็จ แต่ไม่มีเนื้อหาส่งกลับ มักใช้กับการลบข้อมูลหรือการบันทึกโดยไม่ต้องรีเฟรชหน้า
วิธีแก้ไข: ไม่จำเป็นต้องแก้ไข เป็นสถานะที่ต้องการ
205 Reset Content (รีเซ็ตเนื้อหา)
คำขอสำเร็จ และเบราว์เซอร์ควรรีเซ็ตมุมมองหรือฟอร์ม
วิธีแก้ไข: ไม่จำเป็นต้องแก้ไข เป็นสถานะที่ต้องการ
206 Partial Content (เนื้อหาบางส่วน)
คำขอสำเร็จ และส่งเนื้อหาเพียงบางส่วนตามที่ระบุใน Range header มักใช้กับการส่งวิดีโอหรือไฟล์ขนาดใหญ่
วิธีแก้ไข: ไม่จำเป็นต้องแก้ไข เป็นส่วนหนึ่งของการทำงานปกติ
207 Multi-Status (หลากหลายสถานะ)
คำขอสำเร็จ และมีการส่งผลลัพธ์หลายสถานะสำหรับแต่ละคำขอย่อย มักใช้กับ WebDAV
วิธีแก้ไข: ไม่จำเป็นต้องแก้ไข แต่ควรตรวจสอบสถานะของแต่ละคำขอย่อย
208 Already Reported (รายงานเป็นที่เรียบร้อย)
ใช้เพื่อหลีกเลี่ยงการรายงานซ้ำในการทำงานกับ WebDAV
วิธีแก้ไข: ไม่จำเป็นต้องแก้ไข เป็นส่วนหนึ่งของการทำงานปกติ
226 IM Used
เซิร์ฟเวอร์ได้ทำตามคำขอ GET สำหรับทรัพยากร และการตอบสนองเป็นการแสดงถึงการแสดงผลของข้อมูลที่ได้รับการประยุกต์ใช้กับทรัพยากรปัจจุบัน
วิธีแก้ไข: ไม่จำเป็นต้องแก้ไข เป็นส่วนหนึ่งของการทำงานปกติ
3xx Redirection (การเปลี่ยนเส้นทาง)
300 Multiple Choices (หลายตัวเลือก)
มีหลายตัวเลือกสำหรับทรัพยากรที่ร้องขอ ผู้ใช้ควรเลือกหนึ่งตัวเลือก
วิธีแก้ไข: ระบุ URL ที่ต้องการให้ชัดเจนมากขึ้น
301 Moved Permanently (ย้ายถาวร)
ทรัพยากรถูกย้ายไปยัง URL ใหม่อย่างถาวร เบราว์เซอร์และเครื่องมือค้นหาควรอัปเดตลิงก์
วิธีแก้ไข: อัปเดตลิงก์ไปยัง URL ใหม่ รวมถึงทำการอัปเดตในฐานข้อมูลหรือไซต์แมป
302 Found (พบแล้ว)
ทรัพยากรถูกย้ายไปชั่วคราวไปยัง URL อื่น
วิธีแก้ไข: ไม่จำเป็นต้องแก้ไข แต่ควรรู้ว่าการเปลี่ยนเส้นทางนี้เป็นชั่วคราว
303 See Other (ดูอื่น ๆ)
คำขอสามารถพบได้ที่ URL อื่น และควรใช้วิธี GET ในการเข้าถึง
วิธีแก้ไข: ไม่จำเป็นต้องแก้ไข แต่ควรเข้าใจว่าระบบกำลังนำทางไปยัง URL อื่น
304 Not Modified (ไม่ได้แก้ไข)
เนื้อหาไม่มีการเปลี่ยนแปลงตั้งแต่การร้องขอครั้งล่าสุด เบราว์เซอร์สามารถใช้เวอร์ชันในแคชได้
วิธีแก้ไข: ไม่จำเป็นต้องแก้ไข เป็นการประหยัดแบนด์วิดท์
305 Use Proxy (ใช้ Proxy)
ทรัพยากรที่ร้องขอต้องเข้าถึงผ่าน proxy ที่ระบุ
วิธีแก้ไข: ตั้งค่าการเชื่อมต่อให้ใช้ proxy ที่กำหนด
306 Switch Proxy (เปลี่ยน Proxy)
รหัสนี้ไม่ได้ใช้งานแล้ว สงวนไว้สำหรับการใช้งานในอนาคต
วิธีแก้ไข: ไม่มีวิธีแก้ไขเนื่องจากไม่ได้ใช้งานแล้ว
307 Temporary Redirect (เปลี่ยนเส้นทางชั่วคราว)
ทรัพยากรถูกย้ายไปชั่วคราวไปยัง URL อื่น และต้องใช้วิธีเดิมในการเข้าถึง
วิธีแก้ไข: ไม่จำเป็นต้องแก้ไข แต่ควรรู้ว่าการเปลี่ยนเส้นทางนี้เป็นชั่วคราว
308 Permanent Redirect (เปลี่ยนเส้นทางถาวร)
ทรัพยากรถูกย้ายไปยัง URL ใหม่อย่างถาวร และต้องใช้วิธีเดิมในการเข้าถึง
วิธีแก้ไข: อัปเดตลิงก์ไปยัง URL ใหม่ รวมถึงทำการอัปเดตในฐานข้อมูลหรือไซต์แมป
4xx Client Error (Client ผิดพลาด)
400 Bad Request (คำขอไม่ถูกต้อง)
เซิร์ฟเวอร์ไม่เข้าใจคำขอเนื่องจากไวยากรณ์ที่ไม่ถูกต้อง
วิธีแก้ไข: ตรวจสอบและแก้ไขพารามิเตอร์ที่ส่งไป อาจเป็นปัญหาจากการส่งข้อมูลฟอร์มไม่ถูกต้อง
401 Unauthorized (ไม่ได้รับอนุญาต)
ต้องมีการยืนยันตัวตนก่อนเข้าถึงทรัพยากร
วิธีแก้ไข: ลงชื่อเข้าใช้งานด้วยข้อมูลที่ถูกต้อง หรือขอสิทธิ์การเข้าถึง
402 Payment Required (ต้องชำระเงินก่อน)
ต้องมีการชำระเงินก่อนเข้าถึงทรัพยากร รหัสนี้ส่วนใหญ่ยังอยู่ในระหว่างการพัฒนา
วิธีแก้ไข: ชำระเงินตามที่ระบบต้องการ
403 Forbidden (หวงห้าม)
เซิร์ฟเวอร์เข้าใจคำขอแต่ปฏิเสธการให้สิทธิ์เข้าถึง
วิธีแก้ไข: ติดต่อผู้ดูแลระบบเพื่อขอสิทธิ์เข้าถึง หรือตรวจสอบว่าคุณมีสิทธิ์ที่จำเป็น
404 Not Found (ไม่พบ)
ไม่พบทรัพยากรที่ร้องขอบนเซิร์ฟเวอร์ อาจเป็นเพราะ URL ไม่ถูกต้องหรือเนื้อหาถูกลบไปแล้ว
วิธีแก้ไข: ตรวจสอบความถูกต้องของ URL หรือค้นหาเนื้อหาทดแทน สำหรับเจ้าของเว็บ อาจต้องสร้าง redirect หรือหน้า 404 ที่เป็นมิตรกับผู้ใช้
405 Method Not Allowed (วิธีที่ใช้ไม่ได้รับการอนุญาต)
วิธีการเข้าถึง (เช่น GET, POST, PUT) ไม่ได้รับอนุญาตสำหรับทรัพยากรนี้
วิธีแก้ไข: ตรวจสอบและแก้ไขวิธีการเข้าถึงให้ถูกต้อง
406 Not Acceptable (ไม่ยอมรับ)
เซิร์ฟเวอร์ไม่สามารถให้เนื้อหาที่ตรงกับ Accept headers ที่ไคลเอนต์ส่งมาได้
วิธีแก้ไข: แก้ไข Accept headers หรือปรับแก้ไขเนื้อหาให้ตรงกับความต้องการ
407 Proxy Authentication Required (ต้องมีการตรวจสอบสิทธิ์ผ่าน Proxy)
ต้องยืนยันตัวตนกับ proxy ก่อนเข้าถึงทรัพยากร
วิธีแก้ไข: ยืนยันตัวตนกับ proxy ตามที่ต้องการ
408 Request Timeout (คำขอหมดเวลา)
เซิร์ฟเวอร์หมดเวลารอคำขอจากไคลเอนต์
วิธีแก้ไข: ลองใหม่อีกครั้ง หรือตรวจสอบการเชื่อมต่อเครือข่าย
409 Conflict (ความขัดแย้ง)
คำขอไม่สามารถดำเนินการได้เนื่องจากขัดแย้งกับสถานะปัจจุบันของทรัพยากร
วิธีแก้ไข: แก้ไขข้อมูลให้ไม่ขัดแย้งกับสถานะปัจจุบัน
410 Gone (หายไปแล้ว)
ทรัพยากรไม่มีอยู่อีกต่อไปและไม่มีที่อยู่ใหม่ แตกต่างจาก 404 ตรงที่ข้อมูลนี้ถูกลบออกอย่างถาวร
วิธีแก้ไข: ลบลิงก์ที่ชี้ไปยังทรัพยากรนี้ เนื่องจากไม่มีอยู่อีกต่อไป
411 Length Required (ความยาวที่ต้องการ)
ต้องระบุความยาวของเนื้อหาในส่วนหัวของคำขอ
วิธีแก้ไข: เพิ่ม Content-Length header ในคำขอ
412 Precondition Failed (เงื่อนไขเบื้องต้นล้มเหลว)
เงื่อนไขที่กำหนดในส่วนหัวของคำขอไม่เป็นจริง
วิธีแก้ไข: ตรวจสอบและแก้ไขเงื่อนไขในส่วนหัวของคำขอ
413 Payload Too Large (Payload ใหญ่เกินไป)
ขนาดของคำขอใหญ่เกินกว่าที่เซิร์ฟเวอร์ยอมรับได้
วิธีแก้ไข: ลดขนาดของข้อมูลที่ส่ง หรือแบ่งการส่งข้อมูลเป็นส่วนย่อย
414 URI Too Long (URI ยาวเกินไป)
URI ยาวเกินกว่าที่เซิร์ฟเวอร์ยอมรับได้
วิธีแก้ไข: ลดความยาวของ URI หรือใช้วิธี POST แทน GET
415 Unsupported Media Type (เป็นสื่อที่ไม่รองรับ)
เซิร์ฟเวอร์ไม่รองรับประเภทของสื่อที่คำขอส่งมา
วิธีแก้ไข: ใช้ประเภทของสื่อที่เซิร์ฟเวอร์รองรับ
416 Range Not Satisfiable
ช่วงของข้อมูลที่ร้องขอไม่สามารถตอบสนองได้
วิธีแก้ไข: ตรวจสอบและแก้ไขช่วงของข้อมูลที่ร้องขอ
417 Expectation Failed (ไม่สามารถทำตามที่คาดหวังได้)
เซิร์ฟเวอร์ไม่สามารถทำตามความคาดหวังที่ระบุในส่วนหัว Expect ได้
วิธีแก้ไข: ตรวจสอบและแก้ไขส่วนหัว Expect ในคำขอ
418 I’m a teapot (ฉันเป็นกาน้ำชา)
รหัสอารมณ์ขันที่เกิดจาก April Fools’ RFC ปี 1998 ที่ระบุว่าอุปกรณ์เป็นกาน้ำชาและปฏิเสธที่จะชงกาแฟ
วิธีแก้ไข: ไม่จำเป็นต้องแก้ไข เนื่องจากเป็นรหัสที่ใช้เพื่อความบันเทิงมากกว่าการระบุปัญหาจริง
421 Misdirected Request (คำขอผิดเส้นทาง)
คำขอถูกส่งไปยังเซิร์ฟเวอร์ที่ไม่สามารถสร้างการตอบสนองได้ อาจเกิดจากการตั้งค่า DNS หรือ load balancer ไม่ถูกต้อง
วิธีแก้ไข: ตรวจสอบการกำหนดค่า DNS และเซิร์ฟเวอร์ว่าถูกตั้งค่าอย่างเหมาะสม
422 Unprocessable Entity (ไม่สามารถประมวลผล Entity ได้)
คำขอถูกต้องตามไวยากรณ์ แต่มีความผิดพลาดทางความหมายทำให้ไม่สามารถประมวลผลได้
วิธีแก้ไข: ตรวจสอบความถูกต้องของข้อมูลที่ส่งไป โดยเฉพาะในส่วนของ JSON หรือ XML
423 Locked (ล็อก)
ทรัพยากรที่ขอเข้าถึงถูกล็อกอยู่ มักพบในระบบ WebDAV เมื่อมีการแก้ไขไฟล์พร้อมกัน
วิธีแก้ไข: รอให้ทรัพยากรถูกปลดล็อก หรือติดต่อผู้ที่กำลังใช้งานทรัพยากรนั้นอยู่
424 Failed Dependency (การพึ่งพาล้มเหลว)
คำขอล้มเหลวเนื่องจากคำขอก่อนหน้าล้มเหลว มักพบในการทำงานเป็นชุดที่ต้องพึ่งพากัน
วิธีแก้ไข: แก้ไขปัญหาที่คำขอก่อนหน้าก่อน แล้วจึงลองใหม่
425 Too Early (ยังเร็วเกินไป)
เซิร์ฟเวอร์ไม่เต็มใจที่จะประมวลผลคำขอที่อาจถูกส่งซ้ำ ใช้ป้องกันการโจมตีแบบ replay
วิธีแก้ไข: รอสักครู่แล้วลองส่งคำขออีกครั้ง หรือตรวจสอบว่าระบบมีการป้องกันการโจมตีอยู่
426 Upgrade Required (จำเป็นต้องอัปเกรด)
ไคลเอนต์จำเป็นต้องอัปเกรดโปรโตคอลหรือเวอร์ชันเพื่อให้สามารถเข้าถึงทรัพยากรได้
วิธีแก้ไข: อัปเกรดโปรโตคอลหรือซอฟต์แวร์ตามที่ระบุในส่วนหัวของการตอบสนอง
428 Precondition Required (มีเงื่อนไขเบื้องต้นที่จำเป็น)
เซิร์ฟเวอร์ต้องการให้คำขอมีเงื่อนไขเบื้องต้น มักใช้ป้องกันปัญหา “lost update” ในสภาพแวดล้อมที่มีหลายผู้ใช้
วิธีแก้ไข: เพิ่มส่วนหัว If-Match หรือเงื่อนไขที่จำเป็นในคำขอ
429 Too Many Requests (มีคำขอมากเกินไป)
ผู้ใช้ส่งคำขอมากเกินกว่าที่กำหนดในช่วงเวลาหนึ่ง เป็นการจำกัดอัตราการใช้งาน (rate limiting)
วิธีแก้ไข: รอสักครู่แล้วลองใหม่ หรือลดความถี่ในการส่งคำขอ ตรวจสอบส่วนหัว Retry-After ที่อาจระบุเวลาที่ควรรอ
431 Request Header Fields Too Large (คำขอ Header มีขนาดใหญ่เกินไป)
ส่วนหัวของคำขอมีขนาดใหญ่เกินไป เซิร์ฟเวอร์ไม่สามารถประมวลผลได้
วิธีแก้ไข: ลดขนาดหรือจำนวนส่วนหัวในคำขอ เช่น ลดขนาดของ cookies
451 Unavailable For Legal Reasons (ไม่พร้อมใช้งานด้วยเหตุผลด้านกฏหมาย)
ทรัพยากรไม่สามารถเข้าถึงได้เนื่องจากข้อจำกัดทางกฎหมาย เช่น การเซ็นเซอร์หรือคำสั่งศาล
วิธีแก้ไข: ปัญหานี้อยู่นอกเหนือการควบคุมของผู้ใช้ อาจต้องใช้ VPN หรือติดต่อหน่วยงานที่เกี่ยวข้อง
5xx Server Errors (เซิร์ฟเวอร์ผิดพลาด)
500 Internal Server Error (พบข้อผิดพลาดภายในเซิร์ฟเวอร์)
เกิดข้อผิดพลาดทั่วไปในเซิร์ฟเวอร์ที่ไม่สามารถระบุสาเหตุที่แน่ชัดได้
วิธีแก้ไข: ตรวจสอบบันทึกข้อผิดพลาดของเซิร์ฟเวอร์ อาจเกิดจากข้อผิดพลาดในโค้ด การตั้งค่าที่ไม่ถูกต้อง หรือปัญหาฐานข้อมูล
501 Not Implemented
เซิร์ฟเวอร์ไม่รองรับความสามารถที่จำเป็นต้องใช้ในการตอบสนองคำขอ
วิธีแก้ไข: ตรวจสอบว่าเซิร์ฟเวอร์รองรับวิธีหรือความสามารถที่คุณต้องการใช้หรือไม่ อาจต้องอัปเดตซอฟต์แวร์เซิร์ฟเวอร์
502 Bad Gateway
เซิร์ฟเวอร์ทำหน้าที่เป็น gateway หรือ proxy ได้รับการตอบสนองที่ไม่ถูกต้องจากเซิร์ฟเวอร์ต้นทาง
วิธีแก้ไข: ตรวจสอบการเชื่อมต่อระหว่างเซิร์ฟเวอร์ อาจเกิดจากปัญหาเครือข่ายหรือเซิร์ฟเวอร์ต้นทางทำงานผิดปกติ
503 Service Unavailable (บริการไม่พร้อมใช้งาน)
เซิร์ฟเวอร์ไม่พร้อมที่จะให้บริการชั่วคราว อาจเกิดจากการบำรุงรักษาหรือโหลดเกิน
วิธีแก้ไข: รอสักครู่แล้วลองใหม่ ตรวจสอบส่วนหัว Retry-After ที่อาจระบุเวลาที่ควรลองอีกครั้ง
504 Gateway Timeout
เซิร์ฟเวอร์ทำหน้าที่เป็น gateway หรือ proxy ไม่ได้รับการตอบสนองจากเซิร์ฟเวอร์ต้นทางในเวลาที่กำหนด
วิธีแก้ไข: ตรวจสอบว่าเซิร์ฟเวอร์ต้นทางทำงานอยู่และตอบสนองภายในเวลาที่กำหนด อาจต้องเพิ่มค่า timeout
505 HTTP Version Not Supported (ไม่รองรับ HTTP เวอร์ชันที่ใช้งาน)
เซิร์ฟเวอร์ไม่รองรับเวอร์ชันของ HTTP ที่ใช้ในคำขอ
วิธีแก้ไข: ใช้เวอร์ชันของ HTTP ที่เซิร์ฟเวอร์รองรับ เช่น ลดจาก HTTP/2 เป็น HTTP/1.1
506 Variant Also Negotiates
เซิร์ฟเวอร์พบการตั้งค่าที่ขัดแย้งภายในซึ่งทำให้เกิดวงจรการเจรจา content
วิธีแก้ไข: แก้ไขการตั้งค่าเซิร์ฟเวอร์ โดยเฉพาะในส่วนของ content negotiation
507 Insufficient Storage (พื้นที่เก็บข้อมูลไม่เพียงพอ)
เซิร์ฟเวอร์ไม่สามารถเก็บข้อมูลที่จำเป็นสำหรับการดำเนินการคำขอให้เสร็จสิ้นได้
วิธีแก้ไข: เพิ่มพื้นที่จัดเก็บข้อมูลบนเซิร์ฟเวอร์ หรือลบข้อมูลที่ไม่จำเป็นออก
508 Loop Detected (ตรวจพบลูป)
เซิร์ฟเวอร์ตรวจพบลูปที่ไม่สิ้นสุดขณะประมวลผลคำขอ
วิธีแก้ไข: ตรวจสอบและแก้ไขการกำหนดค่าที่อาจทำให้เกิดลูป เช่น การ redirect วนไปวนมา
510 Not Extended (ไม่ขยาย)
จำเป็นต้องมีส่วนขยายเพิ่มเติมสำหรับเซิร์ฟเวอร์เพื่อให้สามารถตอบสนองคำขอได้
วิธีแก้ไข: ติดตั้งส่วนขยายที่จำเป็นบนเซิร์ฟเวอร์
511 Network Authentication Required (เครือข่ายต้องผ่านการรับรองก่อน)
ผู้ใช้ต้องยืนยันตัวตนกับเครือข่ายก่อนเข้าถึงทรัพยากร มักพบในเครือข่าย Wi-Fi สาธารณะที่ต้องเข้าสู่ portal ก่อนใช้งาน
วิธีแก้ไข: ดำเนินการยืนยันตัวตนกับเครือข่ายตามที่ระบุ
วิธีตรวจสอบและวิเคราะห์ HTTP Status Code บนเว็บไซต์
การตรวจสอบรหัสสถานะ HTTP เป็นทักษะสำคัญสำหรับผู้ดูแลเว็บไซต์ นักพัฒนา และผู้ที่ทำงานด้าน SEO มีหลายวิธีที่ช่วยให้คุณตรวจพบและแก้ไขปัญหาเหล่านี้
การใช้เครื่องมือ Developer Tools บนเบราว์เซอร์
เบราว์เซอร์ส่วนใหญ่มีเครื่องมือสำหรับนักพัฒนาที่แสดงสถานะ HTTP ของแต่ละรีเควสท์
- Chrome DevTools: กด F12 หรือคลิกขวา > Inspect > แท็บ Network จะแสดงรหัสสถานะของทุกทรัพยากรที่โหลด
- Firefox Developer Tools: กด F12 หรือคลิกขวา > Inspect Element > แท็บ Network
- Edge DevTools: กด F12 หรือคลิกขวา > Inspect > แท็บ Network
เครื่องมือเหล่านี้แสดงเวลาโหลด รหัสสถานะ และทรัพยากรทั้งหมดที่เว็บไซต์เรียกใช้ เป็นจุดเริ่มต้นที่ดีในการวินิจฉัยปัญหา
การใช้เครื่องมือ SEO เช่น Screaming Frog, Ahrefs
เครื่องมือในการทำ SEO ช่วยให้คุณตรวจสอบเว็บไซต์ทั้งหมดเพื่อหารหัสสถานะ HTTP ที่มีปัญหา
- Screaming Frog SEO Spider: เครื่องมือนี้จะครอลเว็บไซต์ของคุณและรายงานรหัสสถานะของทุก URL รวมถึงหน้า 404, 500 และการ redirect ต่าง ๆ
- Ahrefs Site Audit: ให้รายงานโดยละเอียดเกี่ยวกับปัญหาเว็บไซต์ รวมถึงหน้าที่มีรหัสสถานะที่เป็นปัญหา
- Google Search Console: แสดงรายงานข้อผิดพลาดการเข้าถึงเมื่อ Google มีปัญหาในการเข้าถึงเว็บไซต์ของคุณ
เครื่องมือเหล่านี้ช่วยให้คุณมองเห็นภาพรวมของปัญหาบนเว็บไซต์และจัดลำดับความสำคัญในการแก้ไข
การใช้คำสั่ง cURL หรือเครื่องมือสำหรับนักพัฒนา
สำหรับนักพัฒนาที่ต้องการข้อมูลเชิงลึกมากขึ้น
cURL: ใช้คำสั่งในเทอร์มินัลเพื่อดูรหัสสถานะและส่วนหัวของ HTTP
curl -I https://example.com
เครื่องมือเหล่านี้ให้ข้อมูลโดยละเอียดที่อาจไม่ปรากฏในเบราว์เซอร์ เช่น ส่วนหัว HTTP เฉพาะทาง หรือรายละเอียดการ redirect
HTTP Status Code กับผลกระทบต่อ SEO
รหัสสถานะ HTTP มีผลกระทบโดยตรงต่อประสิทธิภาพ SEO ของเว็บไซต์ เนื่องจากเครื่องมือค้นหาใช้รหัสเหล่านี้เพื่อทำความเข้าใจโครงสร้างและสถานะของเว็บไซต์
ทำไม 404 และ 500 ถึงส่งผลต่ออันดับ SEO
รหัส 404 (Not Found) และ 500 (Internal Server Error) ส่งผลเสียต่อ SEO ในหลายด้าน
คุณภาพเว็บไซต์: Google มองว่าเว็บไซต์ที่มีข้อผิดพลาดจำนวนมากเป็นเว็บที่มีคุณภาพต่ำ
ประสบการณ์ผู้ใช้: เมื่อผู้ใช้พบหน้า 404 หรือ 500 พวกเขามักออกจากเว็บไซต์ทันที ทำให้อัตราการตีกลับ (bounce rate) สูงขึ้น
งบประมาณการครอล: หากเว็บไซต์มีหน้า 404 จำนวนมาก Google จะเสียเวลาครอลหน้าเหล่านี้แทนที่จะครอลหน้าที่มีคุณค่า
การสูญเสียลิงก์: หากหน้าที่มีลิงก์เข้าจากภายนอกกลายเป็น 404 คุณจะสูญเสียคุณค่าของลิงก์เหล่านั้น
สิ่งที่ควรทำ
- ตรวจสอบและแก้ไขลิงก์ที่ขาดหายภายในเว็บไซต์อย่างสม่ำเสมอ
- สร้างหน้า 404 ที่เป็นมิตรกับผู้ใช้ พร้อมเสนอทางเลือกในการนำทาง
- ตั้งค่าการแจ้งเตือนเพื่อให้ทราบทันทีเมื่อเกิดข้อผิดพลาด 500
- ใช้ Google Search Console เพื่อติดตามและแก้ไขข้อผิดพลาดที่ Google พบเจอ
วิธีป้องกันและจัดการ Redirect อย่างเหมาะสม
การ redirect หรือเปลี่ยนเส้นทาง (รหัส 3xx) เป็นเครื่องมือสำคัญสำหรับ SEO แต่ต้องใช้อย่างเหมาะสมดังนี้
301 vs 302: ใช้ 301 (Moved Permanently) เมื่อย้าย URL อย่างถาวร เพื่อส่งต่อคุณค่า SEO ใช้ 302 (Found) สำหรับการย้ายชั่วคราวเท่านั้น
การหลีกเลี่ยง Redirect Chain: อย่าให้เกิดลูกโซ่การ redirect (A → B → C) เพราะจะทำให้เว็บโหลดช้าและสูญเสียคุณค่า SEO
การอัปเดต Internal Links: เมื่อเปลี่ยน URL ควรอัปเดตลิงก์ภายในเว็บไซต์แทนที่จะพึ่งแต่การ redirect
Canonical URL: ใช้แท็ก canonical เพื่อระบุเวอร์ชันที่ต้องการของหน้าที่มีหลาย URL
ตัวอย่างการตั้งค่า 301 redirect ใน .htaccess (Apache):
Redirect 301 /old-page.html https://example.com/new-page
การจัดการ redirect ที่ดีช่วยรักษาคุณค่า SEO เมื่อต้องเปลี่ยนโครงสร้าง URL และป้องกันประสบการณ์ผู้ใช้ที่ไม่ดีจากลิงก์ที่ขาดหาย
ควรรู้และรับมือกับ HTTP Status Code อย่างไร?
การเข้าใจและจัดการกับรหัสสถานะ HTTP อย่างเหมาะสมเป็นทักษะสำคัญสำหรับทั้งนักพัฒนาและผู้ทำงานด้าน SEO
เช็กลิสต์สำหรับนักพัฒนาและสาย SEO
สำหรับนักพัฒนา
- ตรวจสอบบันทึกข้อผิดพลาดของเซิร์ฟเวอร์เป็นประจำ
- ตั้งค่าการแจ้งเตือนสำหรับรหัสข้อผิดพลาด 5xx
- พัฒนาหน้า 404 และหน้าแสดงข้อผิดพลาดอื่น ๆ ที่เป็นมิตรกับผู้ใช้
- ใช้ try-catch และการจัดการข้อผิดพลาดในโค้ดเพื่อป้องกัน 500 errors
- ทดสอบประสิทธิภาพเว็บไซต์ภายใต้โหลดสูงเพื่อป้องกัน 503 errors
สำหรับผู้ทำงาน SEO
- ตรวจสอบลิงก์ที่ขาดหายเป็นประจำด้วยเครื่องมือเช่น Screaming Frog
- ติดตามการเปลี่ยนแปลง URL และตั้งค่า redirect อย่างเหมาะสม
- ใช้ Google Search Console เพื่อตรวจหาและแก้ไขข้อผิดพลาดการเข้าถึง
- ตรวจสอบลิงก์ขาเข้าจากเว็บไซต์อื่นและแก้ไขหากพวกเขาชี้ไปยัง URL ที่ไม่มีอยู่
- จัดทำแผนที่เว็บไซต์ (sitemap.xml) ที่ถูกต้องและอัปเดต
แนวทางการปรับปรุงเว็บไซต์ให้ปลอดภัยและเสถียร
เพื่อลดปัญหารหัสสถานะ HTTP ที่ไม่พึงประสงค์
การติดตามและบำรุงรักษาเชิงป้องกัน
- ใช้เครื่องมือเฝ้าระวังเว็บไซต์ เช่น Uptime Robot หรือ Pingdom
- ตั้งค่าการแจ้งเตือนสำหรับปัญหาประสิทธิภาพและข้อผิดพลาด
- ทดสอบเว็บไซต์บนอุปกรณ์และเบราว์เซอร์ที่หลากหลาย
การสำรองข้อมูลและแผนฟื้นฟู
- สำรองข้อมูลเว็บไซต์และฐานข้อมูลอย่างสม่ำเสมอ
- มีแผนฟื้นฟูจากความล้มเหลวที่ชัดเจน
- ทดสอบกระบวนการกู้คืนเป็นระยะ
การรักษาความปลอดภัย
- อัปเดตซอฟต์แวร์เว็บไซต์และปลั๊กอินให้ทันสมัย
- ใช้ HTTPS เพื่อป้องกันข้อผิดพลาด 401 และ 403 ที่ไม่จำเป็น
- ตั้งค่าไฟร์วอลล์แอปพลิเคชันเว็บ (WAF) เพื่อป้องกันการโจมตี
การปรับประสิทธิภาพ
- ใช้ CDN เพื่อลดโหลดบนเซิร์ฟเวอร์และป้องกัน 503 errors
- เพิ่มประสิทธิภาพรูปภาพและสคริปต์เพื่อลดเวลาโหลด
- พิจารณาใช้โฮสติ้งที่สามารถขยายได้ตามโหลด
สรุป
HTTP Status Code เป็นภาษาพื้นฐานที่เว็บไซต์ใช้สื่อสารว่าเกิดอะไรขึ้นเมื่อผู้ใช้หรือบอทพยายามเข้าถึงหน้าเว็บ การเข้าใจความหมายของรหัสเหล่านี้เป็นกุญแจสำคัญในการวินิจฉัยปัญหา ปรับปรุงประสบการณ์ผู้ใช้ และเพิ่มประสิทธิภาพ SEO
หากคุณกำลังมองหาทีมงานมืออาชีพที่เชี่ยวชาญด้านการทำเว็บไซต์ เพื่อสร้างความน่าเชื่อถือและมอบประสบการณ์ที่ดีให้แก่ลูกค้าของคุณ Yes Web Design Studio พร้อมช่วยคุณ เราเป็นบริษัทเว็บดีไซน์แนวหน้าในไทยที่ให้บริการรับทำเว็บไซต์ WordPress และรับทําเว็บไซต์ e-commerce ครบวงจร รวมไปถึงบริการรับทำ SEO และการตลาดออนไลน์ด้วยเช่นกัน
Yes Web Design Studio
Tel. : 096-879-5445
LINE : @yeswebdesign
E-mail : [email protected]
Address : ชั้น 17 อาคารวิทยกิตติ์ ถนนพญาไท วังใหม่ ปทุมวัน กรุงเทพมหานคร 10330 (สถานี BTS สยาม)