วิธีค้นหาและแก้ไขข้อผิดพลาด 406 อย่างง่ายดาย

เผยแพร่แล้ว: 2022-06-04

ข้อผิดพลาดในฝั่งไคลเอ็นต์และเซิร์ฟเวอร์อาจเกิดขึ้นได้ (เช่น ข้อผิดพลาด 406) และโดยทั่วไปจะเรียกว่าการตอบกลับ HTTP หรือรหัสสถานะ รหัสตอบกลับ HTTP นี้เรียกว่า "ข้อผิดพลาด 406"

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

สารบัญ

ข้อผิดพลาด 406 คืออะไร

ข้อความแสดงข้อผิดพลาด HTTP "406 Not Acceptable" ไม่เหมือนกับข้อผิดพลาด "404 Not Found" (ซึ่งมักจะระบุว่าไม่มี URL) หรือแม้แต่ปัญหา HTTP 301 หรือ 500 ด้วยเหตุนี้ คุณไม่ควรคาดหวังว่าจะได้เห็นสิ่งนี้มากนัก

รหัสสถานะ 406 ไม่ยอมรับคือรหัสตอบกลับ HTTP เมื่อตัวแทนผู้ใช้ (เว็บเบราว์เซอร์) ขอข้อมูลจากเซิร์ฟเวอร์ พวกเขาจะจัดเตรียมส่วนหัว Accept ซึ่งจะแจ้งเซิร์ฟเวอร์ว่าเบราว์เซอร์อาจยอมรับประเภทข้อมูลใด หากเซิร์ฟเวอร์ไม่สามารถส่งข้อมูลในตัวแปลงสัญญาณใดๆ ที่ระบุในส่วนหัว Accept ข้อผิดพลาด 406 Not Acceptable จะถูกส่งกลับ

แม้ว่าข้อผิดพลาด 406 ไม่ใช่เรื่องปกติ แต่ก็เป็นไปได้ว่าจะทำให้เกิดปัญหากับเว็บไซต์ของคุณ

ข้อความมักจะเป็นดังนี้:

ไม่ยอมรับ

ไม่พบการแสดงที่เหมาะสมของทรัพยากรที่ร้องขอบนเซิร์ฟเวอร์นี้

มีการกล่าวถึงข้อความหรือข้อมูลเซิร์ฟเวอร์เพิ่มเติมในตอนท้าย และบางครั้งบ่งชี้ว่า "ทรัพยากรที่ร้องขอ" ซึ่งมีปัญหา

ข้อผิดพลาด 406 เป็นข้อผิดพลาดฝั่งเซิร์ฟเวอร์หรือฝั่งไคลเอ็นต์หรือไม่

ข้อผิดพลาดฝั่งไคลเอ็นต์คือรหัสสถานะ 406 ไม่เป็นที่ยอมรับ มันเป็นของ 4xx ( คลาสรหัสสถานะ 4xx สำหรับสถานการณ์ที่ไคลเอนต์ดูเหมือนจะทำผิดพลาด ) หมวดหมู่ของรหัสสถานะการตอบสนอง HTTP ซึ่งเป็นการตอบสนองข้อผิดพลาดของไคลเอนต์

รหัสสถานะ HTTP ในหมวดหมู่ 4xx ประกอบด้วย:

  • 400 คำขอไม่ถูกต้อง
  • 401 ข้อผิดพลาดที่ไม่ได้รับอนุญาต
  • 403 ต้องห้าม
  • 404 ไม่พบ
  • 405 วิธีการไม่ได้รับอนุญาต
  • 410 หายไป
  • 429 คำขอมากเกินไป
  • 415 ประเภทสื่อที่ไม่รองรับ

ข้อผิดพลาด 4xx บ่งบอกว่าไม่พบหน้าที่ตั้งใจและคำขอไม่สมบูรณ์ ปัญหาคือสิ่งที่เกิดขึ้นในส่วนท้ายของลูกค้า

แตกต่างจากรหัสสถานะหมวดหมู่ 5xx ซึ่งถือเป็นข้อผิดพลาดฝั่งเซิร์ฟเวอร์ ข้อผิดพลาดเหล่านี้ไม่ใช่ความผิดของลูกค้า แต่บ่งชี้ถึงปัญหาในฝั่งเซิร์ฟเวอร์

ข้อผิดพลาด 406 ที่ยอมรับไม่ได้ในบางครั้ง สามารถตรวจสอบย้อนกลับไปยังเซิร์ฟเวอร์ได้ ตัวอย่างเช่น อาจส่งผลให้มีการตอบสนองรหัส 406 และปัญหาการกำหนดเส้นทางการรับส่งข้อมูลที่สำคัญอื่นๆ หากกำหนดค่าไม่ถูกต้องและจัดการคำขออย่างไม่ถูกต้อง

สาเหตุของข้อผิดพลาด 406 คืออะไร?

เบราว์เซอร์ของคุณ (เช่น Safari, Firefox, Brave, Chrome หรือ Internet Explorer) ขอไฟล์และเนื้อหาของไซต์ทุกครั้งที่คุณเปิดหน้าเว็บ ในการสื่อสารกับเซิร์ฟเวอร์ เบราว์เซอร์จะแจ้งเซิร์ฟเวอร์ว่าผู้ใช้ต้องการเห็นอะไร และหวังว่าเซิร์ฟเวอร์จะตอบกลับด้วยข้อมูลที่ถูกต้อง

เมื่อเบราว์เซอร์ส่งคำขอครั้งแรก จะแจ้งให้เซิร์ฟเวอร์ทราบว่าไฟล์ประเภทใดที่สามารถรับได้ โดยพื้นฐานแล้วมันคือคำขอ Accept-Header ซึ่งบอกให้เซิร์ฟเวอร์ส่งไฟล์ในรูปแบบที่เหมาะสมเพื่อสร้างเว็บไซต์หรือเว็บแอปพลิเคชันทั้งหมดโดยเริ่มจากส่วนหัว

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

ในคำขอส่วนหัว อาจมี "รูปแบบที่ไม่ถูกต้อง" และ "การละเมิดกฎ" นี่คือตัวอย่างบางส่วน:

  • ช่วงที่ยอมรับ: เซิร์ฟเวอร์บางตัวใช้มาตรการรักษาความปลอดภัยหรืออนุญาตเฉพาะขนาดไฟล์ที่ระบุในการตอบกลับ คุณจะได้รับข้อผิดพลาด 406 หากคำตอบพยายามส่งไบต์นอกช่วงที่อนุญาตมากเกินไป
  • ยอมรับการเข้ารหัส: ส่วนนี้ของส่วนหัวใช้เพื่อบีบอัดไฟล์เพื่อให้สามารถส่งจากเซิร์ฟเวอร์ไปยังเบราว์เซอร์ได้อย่างรวดเร็ว รหัสข้อผิดพลาด 406 จะถูกสร้างขึ้นเมื่อไม่ยอมรับวิธีการเข้ารหัสและรูปแบบบางอย่าง
  • ภาษาที่ยอมรับ: ภาษา ที่ยอมรับเป็นชื่อเล่นสำหรับชุดอักขระที่ยอมรับซึ่งหมายถึงการเน้นที่ภาษาทั่วโลก
  • การละเมิดประเภท MIME: เบราว์เซอร์อาจขอประเภท MIME บางประเภทจากเซิร์ฟเวอร์เป็นครั้งคราว รูปภาพ JPEG รูปแบบวิดีโอเฉพาะ และข้อความพื้นฐานเป็นตัวอย่างของประเภท MIME คุณจะได้รับข้อผิดพลาด 406 หากเซิร์ฟเวอร์ไม่สามารถเสนอประเภท MIME ที่ระบุได้ เช่น รูปภาพ JPEG
  • ชุดอักขระที่ยอมรับ: นี่คือชุดอักขระที่อธิบายวิธีที่ตารางไฟล์ของไซต์แปลงโค้ด (เช่น CSS และ HTML) เป็นอักขระที่อ่านได้ เป็นการยากที่จะครอบคลุมอักขระ ภาษา และสัญลักษณ์ทั้งหมดที่มีอยู่ทั่วโลก ตาราง ISO-8859 เป็นตารางมาตรฐาน แม้ว่าจะมีตารางเสริมต่างๆ ด้วยเช่นกัน เพื่อให้ทันกับการเพิ่มภาษาและอักขระ ตารางอักขระใหม่จะออกเป็นประจำ

ข้อผิดพลาด "406 Not Acceptable" บ่งชี้ว่าไคลเอ็นต์ได้ส่งคำขอที่ถูกต้องไปยังเว็บเซิร์ฟเวอร์ แต่คำขอมีเกณฑ์พิเศษที่เซิร์ฟเวอร์ต้องปฏิบัติตาม คำขอเริ่มต้นรวมถึงความต้องการเฉพาะในรูปแบบของส่วนหัวการยอมรับ HTTP

นั่นทำให้เรามีโอกาสหรือสาเหตุเพียงเล็กน้อย:

  • เซิร์ฟเวอร์ไม่ได้จัดเตรียมประเภท MIME หรือรูปแบบที่เหมาะสม เช่น วิดีโอ JPEG หรือ mp4
  • เซิร์ฟเวอร์ไม่ได้จัดเตรียมภาษาที่เหมาะสม (Accept-language)
  • ตามคำขอยอมรับการเข้ารหัส เซิร์ฟเวอร์ใช้วิธีการบีบอัดหรือรูปแบบที่ไม่ถูกต้อง
  • เซิร์ฟเวอร์ส่งคืนจำนวนไบต์มากเกินไปซึ่งไม่ตรงกับคำขอช่วงการยอมรับ
  • เซิร์ฟเวอร์ไม่สามารถส่งอักขระที่เข้าใจได้ ส่งผลให้เกิดปัญหากับคำขอ Accept-charset ของเบราว์เซอร์

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

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

มาตรการป้องกันข้อผิดพลาด 406 มีอะไรบ้าง

ปัญหาเกี่ยวกับข้อผิดพลาด 406 คืออาจปรากฏในหลากหลายสถานการณ์

ไม่เหมาะ แต่ก็ไม่มีอะไรที่การแก้ไขปัญหาเล็กน้อยไม่สามารถแก้ไขได้ เมื่อข้อผิดพลาด 406 เกิดขึ้นบนเว็บไซต์หรือแอปของคุณ จะทำให้เกิดปัญหามากขึ้น

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

  • รักษาปลั๊กอิน ธีม และส่วนขยายให้น้อยที่สุด ติดตั้งเฉพาะองค์ประกอบที่จำเป็นและมีชื่อเสียงเท่านั้น
  • เว้นแต่คุณจะรู้ว่าคุณกำลังทำอะไรอยู่และจำเป็นต้องทำอย่างแน่นอน คุณไม่ควรแก้ไขไฟล์หลักของ WordPress
  • ขอแนะนำให้ดำเนินการล้างฐานข้อมูลและเครื่องมือเพิ่มประสิทธิภาพเว็บไซต์เป็นประจำ เราขอแนะนำว่ากระบวนการนี้จะเสร็จสิ้นทุกเดือน และใช้ปลั๊กอินที่สะอาดกว่าซึ่งจะทำงานโดยอัตโนมัติในพื้นหลัง
  • การดีบักเซิร์ฟเวอร์และเว็บแอปพลิเคชันของคุณควรกลายเป็นเรื่องปกติ
  • สำรองข้อมูลเว็บไซต์หรือแอปพลิเคชันของคุณเป็นประจำ วิธีนี้จะช่วยป้องกันไม่ให้โค้ดขัดแย้งหรือข้อผิดพลาดทำให้เกิดความวิตกกังวลมากเกินไป เนื่องจากคุณสามารถกู้คืนไซต์เวอร์ชันก่อนหน้าได้อย่างง่ายดาย
  • แม้ว่าคุณจะเรียกใช้การสำรองข้อมูลอัตโนมัติแล้ว ให้เรียกใช้การสำรองข้อมูลไซต์ของคุณด้วยตนเองก่อนที่จะอัปเดต WordPress และปลั๊กอินใดๆ ยังเป็นความคิดที่ดีที่จะสำรองข้อมูลก่อนที่จะแก้ไขไฟล์ใดๆ หรือเพิ่มโค้ดใหม่ลงในไซต์ของคุณ

จะแก้ไขข้อผิดพลาด 406 ได้อย่างไร?

ไปที่ตัวจัดการไฟล์ของไซต์ WordPress ป้อน publi_html และคลิกขวาที่ . htaccess เพื่อแก้ไข

ข้อผิดพลาด 406

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

 <IfModule mod_security.c> SecFilterEngineOff SecFilterScanPOSTOff </IfModule>

บทสรุป

เมื่อเรียกดูเว็บไซต์ คุณอาจเห็นข้อผิดพลาด 406 หรือในกรณีที่แย่ที่สุดบนเว็บไซต์ของคุณ แม้ว่าอาจสร้างความรำคาญให้กับผู้ใช้อินเทอร์เน็ตทั่วไป แต่ก็อาจทำให้เจ้าของเว็บไซต์หรือบริการหวาดกลัวได้ รหัสตอบกลับ HTTP ใดๆ แม้แต่ข้อผิดพลาด 406 อาจสูญเสียยอดขายและผู้ใช้ นอกจากจะดูไม่เป็นมืออาชีพและไม่ชัดเจน

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

แม้ว่านี่จะไม่ใช่ปัญหาที่พบบ่อยที่สุดปัญหาหนึ่งของ WordPress แต่ก็เป็นปัญหาที่คุณอาจพบหากการกำหนดค่าของคุณไม่ถูกต้อง