เคยเจอปัญหาเข้าเว็บไซต์แล้วเห็นหน้าจอแสดงตัวเลข 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
หากคุณกำลังมองหาทีมงานมืออาชีพที่เชี่ยวชาญด้านการทำเว็บไซต์ เพื่อสร้างความน่าเชื่อถือและมอบประสบการณ์ที่ดีให้แก่ลูกค้าของคุณ
คำถามที่พบบ่อยเกี่ยวกับ HTTP Status Code
HTTP Status Code 200, 301, 404, 500 ต่างกันยังไง?
200 = สำเร็จ OK, 301 = ย้ายถาวร Permanent Redirect, 302 = ย้ายชั่วคราว, 404 = ไม่พบหน้า, 500 = Server Error สำคัญต่อ SEO เพราะ Google ใช้ตัดสินใจว่าจะ Index หรือไม่
HTTP 301 vs 302 ใช้อันไหนดีกว่า?
301 = ย้ายถาวร ส่ง Link Equity 100%, 302 = ย้ายชั่วคราว ไม่ส่ง Equity เต็ม สำหรับการเปลี่ยน URL ถาวรใช้ 301 สำหรับ Promotion ชั่วคราวใช้ 302
Status Code 404 ส่งผลต่อ SEO อย่างไร?
404 หลายๆ หน้าทำให้ Google เสียเวลา Crawl Budget แนะนำ 1. Redirect 301 ไปหน้าที่เกี่ยวข้อง 2. สร้างหน้าใหม่ขึ้นมา 3. ปล่อย 404 ถ้าหน้านั้นไม่จำเป็นแล้ว
วิธีตรวจสอบ HTTP Status Code?
1. Chrome DevTools - F12 จากนั้น Network tab 2. Online tools เช่น httpstatus.io 3. curl -I URL บน Terminal 4. Google Search Console -> Pages 5. Screaming Frog SEO Spider





