วิธีแก้ไขข้อผิดพลาดสถานะ HTTP 204 (ไม่มีเนื้อหา)

เผยแพร่แล้ว: 2024-01-26

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

HTTP 204 หมายถึงอะไร

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

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

หมายเหตุ : รหัสสถานะ HTTP 204 ถือว่าสามารถแคชได้ตามค่าเริ่มต้น ซึ่งหมายความว่าพร็อกซีเซิร์ฟเวอร์และไคลเอนต์สามารถแคชการตอบกลับได้ฟรี นอกจากนี้ เซิร์ฟเวอร์อาจมีส่วนหัว Etag ในกรณีนี้

อาจมีกรณีที่คุณต้องการแทนที่การทำงานเริ่มต้นนี้ ในกรณีนี้ คุณสามารถรวมส่วนหัวแคช HTTP เพิ่มเติมในการตอบกลับได้


การอ้างอิงรหัสตอบกลับ HTTP 204

  • สัญลักษณ์สถานะ Rails HTTP: no_content
  • สนิม http::StatusCode::NO_CONTENT
  • การตอบสนองสถานะ HTTP ของ Symfony อย่างต่อเนื่อง :: HTTP_NO_CONTENT
  • ไปที่สถานะ HTTP คงที่ http.StatusNoContent
  • Python3.5+ สถานะ HTTP คงที่ http.HTTPStatus.NO_CONTENT
  • .NET HttpStatusCode ไม่มีเนื้อหา
  • ชวา java.net.HttpURLConnection.HTTP_NO_CONTENT
  • Apache HttpComponents Core org.apache.hc.core5.http.HttpStatus.SC_NO_CONTENT
  • เชิงมุม @ เชิงมุม/ทั่วไป/http/HttpStatusCode.NoContent

จะแก้ไขปัญหา HTTP 204 ได้อย่างไร?

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

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

1. ตรวจสอบการกำหนดค่าเซิร์ฟเวอร์

หากคุณกำหนดค่าเซิร์ฟเวอร์ไม่ถูกต้อง อาจทำให้เกิดการตอบสนอง HTTP 204 โดยไม่ได้ตั้งใจ ดังนั้น คุณต้องตรวจสอบการกำหนดค่าเซิร์ฟเวอร์ของคุณ โดยเฉพาะการกำหนดค่าที่เกี่ยวข้องกับการจัดการการตอบสนอง HTTP ที่สอดคล้องกับข้อกำหนดของแอปพลิเคชันของคุณอย่างถูกต้อง

นอกจากนี้ ให้พิจารณาตรวจสอบบันทึกข้อผิดพลาดของเซิร์ฟเวอร์เพื่อดูรายละเอียดเชิงลึก

2. ใช้เครื่องมือ SEO

เนื่องจากเราได้พูดคุยกันแล้วว่าหาก URL ส่งคืนรหัสตอบกลับ HTTP 204 เครื่องมือค้นหาจะไม่จัดทำดัชนี คุณสามารถใช้เครื่องมือ SEO ต่างๆ เช่น SEMRUSH หรือ Screamfrog เพื่อค้นหารหัสตอบกลับ HTTP 204 โดยไม่ได้ตั้งใจบนเว็บไซต์ของคุณ และตรวจสอบให้แน่ใจว่า หน้าส่งคืน HTTP 200 แทน

3. ตรวจสอบตรรกะแอปพลิเคชันของคุณ

ตรวจสอบให้แน่ใจว่าตรรกะของแอปพลิเคชันของคุณสอดคล้องกับกรณีการใช้งานที่เหมาะสมสำหรับ HTTP 204 ดีขึ้น ซึ่งควรสอดคล้องกับวัตถุประสงค์ในการแสดงรหัสสถานะเฉพาะนี้

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

4. เปลี่ยนเส้นทางผู้ใช้ไปยังหน้าเนื้อหา

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

แทนที่จะแสดงรหัสตอบกลับ 204 แก่ผู้ใช้ ควรเปลี่ยนเส้นทางไปยังหน้าที่มีประโยชน์มากกว่าหรือส่งข้อความที่ชัดเจนในหน้าเดียวกัน

5. ตรวจสอบคำขอ API หรือ AJAX

ในกรณีที่คุณกำลังจัดการกับคำขอ API หรือ AJAX ตรวจสอบให้แน่ใจว่าความคาดหวังของไคลเอ็นต์และเซิร์ฟเวอร์สอดคล้องกัน

หากไคลเอ็นต์คาดหวังเนื้อหาแต่ได้รับ HTTP 204 แทน ให้ตรวจสอบว่ามีการกระทำโดยตั้งใจหรือมีสิ่งผิดปกติเกิดขึ้น

6. ตรวจสอบให้แน่ใจว่ามีการใช้รหัสสถานะที่เหมาะสม

บางครั้ง เนื่องจากความสับสนหรือขาดความรู้เกี่ยวกับรหัสสถานะ HTTP คุณอาจใช้รหัสอื่นในสถานการณ์ที่แตกต่างกัน ตัวอย่างเช่น หากลูกค้าคาดหวังเนื้อหา ให้ทำให้เป็น 200 OK หรือโค้ดอื่นที่เหมาะสมที่เหมาะสมแทนที่จะใช้ 204 No Content

7. การบันทึกและการตรวจสอบ

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

และยังช่วยให้คุณระบุรูปแบบ ค้นหาปัญหาที่อาจเกิดขึ้น และยังช่วยคุณปรับปรุงประสิทธิภาพและประสบการณ์ผู้ใช้อีกด้วย

8. ปรึกษาเอกสารประกอบ

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

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


ผลกระทบของ HTTP 204 ไม่มีเนื้อหาใน SEO

คุณต้องรู้ด้วยว่า HTTP 204 มีผลกระทบต่อ SEO อย่างไร ลองดู:

1. ปัญหาในการจัดทำดัชนี : เนื่องจาก Http 204 ไม่มีเนื้อหาสำหรับการจัดทำดัชนี อาจทำให้เกิดปัญหาได้หากคุณพยายามสร้างดัชนี URL

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

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

4. การกำหนดค่าไม่ถูกต้องไม่ดี : อาจเป็นไปได้ด้วยว่าเซิร์ฟเวอร์ได้รับการกำหนดค่าไม่ดีโดยไม่ได้ตั้งใจ ซึ่งส่งผลให้เกิด Noindexing หรือจัดอันดับหน้าหลัก


สถานการณ์การใช้งานบางอย่างของรหัสตอบกลับ HTTP 204 ไม่มีเนื้อหา

ดังนั้น คุณอาจสงสัยว่าหากการตอบสนอง HTTP 204 เป็นไปโดยเจตนา แล้วสถานการณ์การใช้งานที่เป็นไปได้จะเป็นอย่างไร สำหรับการอ้างอิงของคุณ ลองดูกรณีที่ระบุด้านล่าง:

1. กรณีการใช้งาน: ลบคำขอ

เพื่อความเข้าใจที่ดีขึ้นคุณต้องพิจารณาตัวอย่าง

ขอ

DELETE https://domain.com/user/666 HTTP/1.1
Host: domain.com
Authorization: Bearer

การตอบสนอง

HTTP/1.1 204 No Content
Date: Tue, 16 Jan 2024 12:00:00 GMT
Server: nginx

จากตัวอย่างข้างต้น คุณจะเห็นว่าไคลเอ็นต์ส่งคำขอ DELETE และได้รับการประมวลผลเรียบร้อยแล้ว ซึ่งบ่งชี้ถึงการลบทรัพยากรผู้ใช้ที่มี ID 666 บนเซิร์ฟเวอร์ domain.com และเซิร์ฟเวอร์ตอบสนองด้วยรหัสสถานะ 204

2. กรณีการใช้งาน: คำขอ POST

ขอ:

POST /job HTTP/1.1
Host: www.domain.re
Content-Type: application/xml
Content-Length: 60
<?xml version="1.0">
<job>
<id>125</id>
<task>G01</task>
</job>

การตอบสนอง:

HTTP/1.1 204 No Content

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

อย่างไรก็ตาม ไม่จำเป็นต้องส่งสิ่งใดกลับไปให้ลูกค้า ดังนั้นจึงใช้รหัสสถานะ 204 ไม่มีเนื้อหา

3. กรณีการใช้งาน: PUT Request

สมมติว่าคุณกำลังใช้ CMS ซึ่งคุณต้องทำการอัพเดตในบทความบนเว็บไซต์ สำหรับสิ่งนี้ คุณต้องส่งคำขอ PUT เพื่ออัปเดตเนื้อหาด้วย ID 123 ของบทความที่มีอยู่ เพย์โหลดคำขอประกอบด้วยชื่อและเนื้อหาที่อัปเดตในรูปแบบ JSON

ขอ:

PUT /api/articles/123
Content-Type: application/json{
"title": "Updated Title",
"content": "Updated content for the article."
}

การตอบสนอง:

HTTP/1.1 204 No Content
Date: Sat, 01 Jan 2024 12:00:00 GMT

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

ในทำนองเดียวกัน HTTP 204 ยังสามารถใช้เพื่อควบคุมพฤติกรรมการแคชตลอดจนการรวมฟิลด์ส่วนหัว HTTP ไว้ด้วย


ความแตกต่างระหว่าง HTTP 204 กับ 200

หลายๆ คนอาจสับสนระหว่างรหัสตอบกลับ HTTP 204 และ HTTP 200 และลงเอยด้วยการใช้รหัสที่ไม่เหมาะสม ดังนั้นด้านล่างนี้คือตารางเปรียบเทียบขั้นสูงสุดที่มีให้เพื่อชี้แจงข้อสงสัยของคุณเกี่ยวกับเรื่องนี้

ด้าน HTTP 204 ไม่มีเนื้อหา HTTP 200 ตกลง
คำนิยาม เซิร์ฟเวอร์ประมวลผลคำขอสำเร็จแล้ว แต่ไม่มีเนื้อหาที่จะส่งในส่วนเนื้อหาการตอบกลับ คำขอสำเร็จแล้ว และเซิร์ฟเวอร์ได้ส่งคืนข้อมูลที่ร้องขอแล้ว
ร่างกายตอบสนอง ไม่มีเนื้อหาใดรวมอยู่ในเนื้อหาการตอบกลับ โดยทั่วไปการตอบกลับจะรวมข้อมูล เช่น HTML, JSON หรือ XML ขึ้นอยู่กับคำขอ
ใช้กรณี ใช้เมื่อตอบรับคำขอที่สำเร็จซึ่งไม่จำเป็นต้องมีการส่งข้อมูลในการตอบกลับ ใช้สำหรับคำขอที่ประสบความสำเร็จโดยที่เซิร์ฟเวอร์ส่งคืนข้อมูลเพื่อตอบสนองคำขอของลูกค้า
เก็บเอาไว้ การตอบสนองไม่ได้ตั้งใจที่จะแคช การตอบกลับสามารถถูกแคชไว้ตามส่วนหัวของแคชที่เซิร์ฟเวอร์จัดเตรียมไว้ให้
การดำเนินการของลูกค้า ไม่จำเป็นต้องดำเนินการใดๆ กับลูกค้า เพียงเพื่อรับทราบลูกค้าเท่านั้น ลูกค้าอาจประมวลผลข้อมูลที่ได้รับหรือดำเนินการเพิ่มเติมตามการตอบสนอง
ตัวอย่าง คำขอ DELETE โดยไม่จำเป็นต้องส่งข้อมูลเพิ่มเติม
การอัปเดตสำเร็จที่ไม่จำเป็นต้องมีเนื้อหาการตอบกลับ
กำลังโหลดหน้าเว็บสำเร็จ การดึงรายละเอียดผู้ใช้จากฐานข้อมูล
ส่วนหัวทั่วไป ประเภทเนื้อหา: ไม่เกี่ยวข้อง (ไม่มีเนื้อหา) การควบคุมแคช: ไม่มีแคช ไม่มีการจัดเก็บ (แนะนำว่าอย่าแคช) ประเภทเนื้อหา: ระบุประเภทสื่อของข้อมูลในส่วนเนื้อหาการตอบสนอง
การควบคุมแคช: ซึ่งอาจรวมถึงคำสั่งสำหรับการแคช
เปลี่ยนเส้นทาง โดยทั่วไปแล้ว ไม่จำเป็นต้องเปลี่ยนเส้นทาง การเปลี่ยนเส้นทางอาจเกิดขึ้นได้หากเซิร์ฟเวอร์หรือทรัพยากรถูกย้าย (เช่น การใช้รหัสสถานะ 3xx)
HTTP 204 กับ 200

ในทำนองเดียวกัน คุณอาจสับสนระหว่างรหัสตอบกลับ HTTP 204 และ 404 ตรวจสอบตารางเปรียบเทียบด้านล่างเพื่อความชัดเจนในเรื่องนี้


ความแตกต่างระหว่าง HTTP 204 กับ 404

ด้าน HTTP 204 ไม่มีเนื้อหา ไม่พบ HTTP 404
คำนิยาม เซิร์ฟเวอร์ประมวลผลคำขอสำเร็จแล้ว แต่ไม่มีเนื้อหาที่จะส่งในส่วนเนื้อหาการตอบกลับ ไม่พบทรัพยากรที่ร้องขอบนเซิร์ฟเวอร์
ร่างกายตอบสนอง ไม่มีเนื้อหาใดรวมอยู่ในเนื้อหาการตอบกลับ เนื้อหาการตอบกลับอาจมีข้อความที่ใช้งานง่ายซึ่งอธิบายการขาดทรัพยากรที่ร้องขอ
ใช้กรณี ใช้เมื่อตอบรับคำขอที่สำเร็จซึ่งไม่จำเป็นต้องมีการส่งข้อมูลในการตอบกลับ ใช้เพื่อระบุว่าทรัพยากรที่ร้องขอไม่พร้อมใช้งานหรือไม่มีอยู่บนเซิร์ฟเวอร์
การดำเนินการของลูกค้า ลูกค้าได้รับแจ้งว่าคำขอสำเร็จแล้ว แต่ไม่จำเป็นต้องดำเนินการใดๆ เพิ่มเติม ลูกค้าอาจดำเนินการที่เหมาะสม เช่น แจ้งผู้ใช้ เปลี่ยนเส้นทาง หรือพยายามขอทางเลือกอื่น
ตัวอย่าง คำขอ DELETE โดยไม่จำเป็นต้องส่งข้อมูลเพิ่มเติม
การอัปเดตสำเร็จที่ไม่จำเป็นต้องมีเนื้อหาการตอบกลับ
กำลังพยายามเข้าถึง URL ที่ไม่มีอยู่
การสืบค้นทรัพยากรที่ถูกลบหรือไม่เคยมีอยู่
ส่วนหัวทั่วไป ประเภทเนื้อหา: ไม่เกี่ยวข้อง (ไม่มีเนื้อหา)
การควบคุมแคช: ไม่มีแคช ไม่มีการจัดเก็บ (แนะนำว่าอย่าแคช)
ประเภทเนื้อหา: ขึ้นอยู่กับการกำหนดค่าของเซิร์ฟเวอร์
การควบคุมแคช: สิ่งนี้อาจบ่งชี้ว่าจะไม่แคชหากไม่พบทรัพยากรในคำขอครั้งต่อไป
เปลี่ยนเส้นทาง โดยทั่วไปแล้ว ไม่จำเป็นต้องเปลี่ยนเส้นทาง การเปลี่ยนเส้นทางอาจเกิดขึ้นได้หากเซิร์ฟเวอร์หรือทรัพยากรถูกย้าย (เช่น การใช้รหัสสถานะ 3xx)
HTTP 204 กับ 404

อ่าน: วิธีแก้ไข 404 ไม่พบข้อผิดพลาดสำหรับไซต์ WordPress และ Android


บทสรุป

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

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


คำถามที่พบบ่อย

HTTP 204 หมายถึงอะไร

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

HTTP 304 และ 204 แตกต่างกันอย่างไร?

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

การลบรหัส 204 คืออะไร?

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