Server response 414 URI Too Long
HTTP สถานะรหัส 414 (URI Too Long)
รหัสสถานะ HTTP 414 (URI Too Long) แสดงให้เห็นว่าฝ่ายลูกค้าได้ส่ง URI ที่ยาวเกินกว่าความยาวสูงสุดที่เซิร์ฟเวอร์อนุญาต ซึ่งอาจเกิดจากการปฏิบัติที่ไม่ถูกต้องของผู้ใช้หรือการสร้างคำขอที่ผิดพลาด การทำความเข้าใจเกี่ยวกับผลกระทบที่เกิดขึ้นจากปัญหานี้ต่อการทำงานร่วมกับ API เป็นสิ่งสำคัญ เพื่อให้สามารถแก้ไขปัญหาที่เกิดขึ้นได้อย่างมีประสิทธิภาพ
สาเหตุของข้อผิดพลาด 414
- การใช้สตริงคำขอยาวใน GET requests
- การสร้างพารามิเตอร์จำนวนมากใน URL
- ข้อผิดพลาดในการจัดการเซสชันและการแคช
ตัวอย่างการเกิดข้อผิดพลาด
- ตัวอย่าง 1: URL ยาวที่มีพารามิเตอร์การกรองในเว็บไซต์อีคอมเมิร์ซ
- ตัวอย่าง 2: การสร้าง URL ด้วยข้อมูลจากฟอร์มที่มีจำนวนฟิลด์มาก
- ตัวอย่าง 3: การใช้ตัวระบุที่ยาวสำหรับวัตถุในฐานข้อมูล
วิธีการแก้ไขข้อผิดพลาด 414 ในหลายภาษาโปรแกรม
ภาษา | วิธีการแก้ไข | ตัวอย่างโค้ด |
---|---|---|
PHP | เปลี่ยนวิธีการร้องขอจาก GET เป็น POST สำหรับการส่งข้อมูล |
if ($_SERVER['REQUEST_METHOD'] === 'GET') { // เปลี่ยนเส้นทางไปยังฟอร์ม POST header('Location: /form', true, 302); exit(); } |
JavaScript (Node.js) | ใช้ POST requests สำหรับส่งข้อมูลที่ยาว |
const express = require('express'); const app = express(); app.post('/submit', (req, res) => { // การประมวลผลข้อมูล }); app.listen(3000); |
Python (Flask) | เปลี่ยนไปใช้ POST แทน GET สำหรับ URL ที่ยาว |
from flask import Flask, request app = Flask(__name__) @app.route('/submit', methods=['POST']) def submit(): return 'ข้อมูลถูกประมวลผล' if __name__ == '__main__': app.run() |
คำแนะนำในการป้องกันข้อผิดพลาด 414
- ใช้ POST requests แทน GET สำหรับการส่งข้อมูลที่มีปริมาณมาก
- ปรับโครงสร้าง URL และจำกัดจำนวนพารามิเตอร์
- ตรวจสอบความยาวของ URI บนฝั่งลูกค้าก่อนการส่งคำขอ