วิธีแก้ไขข้อผิดพลาดสถานะ HTTP 204 (ไม่มีเนื้อหา)
เผยแพร่แล้ว: 2024-01-26HTTP 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 และ 404 ตรวจสอบตารางเปรียบเทียบด้านล่างเพื่อความชัดเจนในเรื่องนี้
ความแตกต่างระหว่าง HTTP 204 กับ 404
ด้าน | HTTP 204 ไม่มีเนื้อหา | ไม่พบ HTTP 404 |
---|---|---|
คำนิยาม | เซิร์ฟเวอร์ประมวลผลคำขอสำเร็จแล้ว แต่ไม่มีเนื้อหาที่จะส่งในส่วนเนื้อหาการตอบกลับ | ไม่พบทรัพยากรที่ร้องขอบนเซิร์ฟเวอร์ |
ร่างกายตอบสนอง | ไม่มีเนื้อหาใดรวมอยู่ในเนื้อหาการตอบกลับ | เนื้อหาการตอบกลับอาจมีข้อความที่ใช้งานง่ายซึ่งอธิบายการขาดทรัพยากรที่ร้องขอ |
ใช้กรณี | ใช้เมื่อตอบรับคำขอที่สำเร็จซึ่งไม่จำเป็นต้องมีการส่งข้อมูลในการตอบกลับ | ใช้เพื่อระบุว่าทรัพยากรที่ร้องขอไม่พร้อมใช้งานหรือไม่มีอยู่บนเซิร์ฟเวอร์ |
การดำเนินการของลูกค้า | ลูกค้าได้รับแจ้งว่าคำขอสำเร็จแล้ว แต่ไม่จำเป็นต้องดำเนินการใดๆ เพิ่มเติม | ลูกค้าอาจดำเนินการที่เหมาะสม เช่น แจ้งผู้ใช้ เปลี่ยนเส้นทาง หรือพยายามขอทางเลือกอื่น |
ตัวอย่าง | คำขอ DELETE โดยไม่จำเป็นต้องส่งข้อมูลเพิ่มเติม การอัปเดตสำเร็จที่ไม่จำเป็นต้องมีเนื้อหาการตอบกลับ | กำลังพยายามเข้าถึง URL ที่ไม่มีอยู่ การสืบค้นทรัพยากรที่ถูกลบหรือไม่เคยมีอยู่ |
ส่วนหัวทั่วไป | ประเภทเนื้อหา: ไม่เกี่ยวข้อง (ไม่มีเนื้อหา) การควบคุมแคช: ไม่มีแคช ไม่มีการจัดเก็บ (แนะนำว่าอย่าแคช) | ประเภทเนื้อหา: ขึ้นอยู่กับการกำหนดค่าของเซิร์ฟเวอร์ การควบคุมแคช: สิ่งนี้อาจบ่งชี้ว่าจะไม่แคชหากไม่พบทรัพยากรในคำขอครั้งต่อไป |
เปลี่ยนเส้นทาง | โดยทั่วไปแล้ว ไม่จำเป็นต้องเปลี่ยนเส้นทาง | การเปลี่ยนเส้นทางอาจเกิดขึ้นได้หากเซิร์ฟเวอร์หรือทรัพยากรถูกย้าย (เช่น การใช้รหัสสถานะ 3xx) |
อ่าน: วิธีแก้ไข 404 ไม่พบข้อผิดพลาดสำหรับไซต์ WordPress และ Android
บทสรุป
HTTP 204 ไม่มีเนื้อหาเป็นเพียงรหัสตอบกลับ ซึ่งไม่เหมือนกับรหัสข้อผิดพลาด HTTP อื่นๆ ซึ่งบ่งชี้ว่าเซิร์ฟเวอร์ประมวลผลคำขอได้สำเร็จ แต่ไม่มีเนื้อหาที่จะแสดงในการตอบกลับ
อาจฟังดูคล้ายกับข้อผิดพลาด 404 ไม่พบข้อผิดพลาด แต่จะแตกต่างไปจากเดิมอย่างสิ้นเชิงและมีสถานการณ์การใช้งานที่แตกต่างกัน แต่ไม่ว่าจะเป็นกรณีใด หากมีการใช้งานในทางที่ผิดหรือกำหนดค่าไม่ถูกต้อง อย่าลืมว่าสิ่งนี้อาจเป็นอันตรายต่อ SEO ของคุณได้เช่นกัน
คำถามที่พบบ่อย
HTTP 204 หมายถึงอะไร
รหัสตอบกลับ HTTP 204 ที่ไม่มีเนื้อหาบ่งชี้ว่าเซิร์ฟเวอร์ได้ทำงานของตนโดยตอบสนองคำขอ เช่น ส่งโดยไคลเอนต์ แต่เซิร์ฟเวอร์ไม่พบเนื้อหาใด ๆ ที่จะส่งกลับไปยังไคลเอนต์
HTTP 304 และ 204 แตกต่างกันอย่างไร?
ในขณะที่ทั้งรหัสสถานะ 304 และ 204 ระบุถึงสถานการณ์ที่ไม่มีการส่งเนื้อหาใหม่ในส่วนเนื้อหาการตอบกลับ HTTP 304 มุ่งเน้นไปที่การแคชและคำขอแบบมีเงื่อนไขมากกว่า ในขณะที่ HTTP 204 เป็นข้อบ่งชี้ทั่วไปของการประมวลผลที่ประสบความสำเร็จโดยไม่มีเนื้อหาเพิ่มเติม
การลบรหัส 204 คืออะไร?
สถานะ 204 ไม่มีเนื้อหา DELETE บ่งชี้ว่าเซิร์ฟเวอร์ประมวลผลคำขอลบทรัพยากรได้สำเร็จ แต่ไม่มีเนื้อหาเพิ่มเติมที่จะส่งในเนื้อหาการตอบสนอง โดยเป็นการส่งสัญญาณว่าการลบสำเร็จ และไม่จำเป็นต้องส่งคืนข้อมูลใดๆ ในการตอบกลับ
Rahul Kumar เป็นผู้ชื่นชอบเว็บไซต์และเป็นนักยุทธศาสตร์ด้านเนื้อหาที่เชี่ยวชาญด้าน WordPress และเว็บโฮสติ้ง ด้วยประสบการณ์หลายปีและความมุ่งมั่นในการติดตามแนวโน้มของอุตสาหกรรม เขาจึงสร้างกลยุทธ์ออนไลน์ที่มีประสิทธิภาพที่กระตุ้นการเข้าชม เพิ่มการมีส่วนร่วม และเพิ่ม Conversion ความใส่ใจในรายละเอียดและความสามารถในการสร้างสรรค์เนื้อหาที่น่าสนใจของ Rahul ทำให้เขาเป็นทรัพย์สินที่มีค่าสำหรับแบรนด์ใดๆ ก็ตามที่ต้องการปรับปรุงการนำเสนอตัวตนในโลกออนไลน์