ข้อผิดพลาดและ Response Codes
เคล็ดลับทั่วไป
- ตรวจสอบว่า URL ที่ทดสอบโหลดพร้อมใช้งานและเข้าถึงได้สาธารณะก่อนรันการทดสอบโหลดหรือประสิทธิภาพใดๆ
- ตรวจสอบ HTTP method (GET คือ request ที่เบราว์เซอร์ส่งเมื่อเข้าเว็บไซต์หรือ API endpoint)
- เริ่มต้นด้วยจำนวนไคลเอนต์น้อย (25-50 ไคลเอนต์) และตรวจสอบจำนวนข้อผิดพลาด
- พยายามเพิ่มจำนวนไคลเอนต์ทีละน้อยเพื่อทำความเข้าใจว่า API เว็บไซต์ หรือ WebApp ของคุณทำงานอย่างไร
- ตรวจสอบ Time, Latency, Hits, Throughput และ Errors สำหรับแต่ละการทดสอบเพื่อตรวจสอบประสิทธิภาพของระบบ
Response codes 3xx (การเปลี่ยนเส้นทาง)
- หาก URL ที่เพิ่มสำหรับการทดสอบโหลดมีการ redirect ไปยัง URL อื่น
- หากคุณกำลังทดสอบการเปลี่ยนเส้นทาง ให้ทดสอบโหลดบน URL สุดท้ายหลังจากการ redirect สิ้นสุด
- ยกเลิกเครื่องหมาย "Follow redirects" ข้าง URL หากคุณต้องการหลีกเลี่ยงการเปลี่ยนเส้นทาง requests และทดสอบโหลดบน URL ที่เพิ่ม
Response codes 4xx (ข้อผิดพลาดฝั่งไคลเอนต์)
- URL ถูกต้องและเข้าถึงได้สาธารณะ
- ตรวจสอบ HTTP Method ที่ใช้: GET, POST, PUT หรือ DELETE (GET คือ request ที่เบราว์เซอร์ส่งเมื่อเข้าเว็บไซต์หรือ API endpoint)
- request headers, cookies, query params หรือ basic HTTP auth params ตั้งค่าถูกต้อง
Response codes 5xx (ข้อผิดพลาดฝั่งเซิร์ฟเวอร์)
- response code โดยปกติหาก API, เว็บไซต์, แอปพลิเคชันเว็บหรือมือถือที่ทดสอบโหลดไม่สามารถจัดการโหลดได้อย่างเหมาะสม คุณจะเริ่มได้รับ 503 Service Unavailable responses
- ลองลดจำนวนไคลเอนต์ (concurrent users) สำหรับการทดสอบโหลดและตรวจสอบขอบเขตของระบบ
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีทดสอบโหลดเว็บไซต์และ APIs บนคลาวด์ด้วยเครื่องมือ LoadFocus Load Testing ดู Load Testing Service หรือ JMeter Load Testing Service
Response Codes (รายการทั้งหมด)
ตาม (w3schools.com)[https://w3schools.com] นี่คือรายการข้อความสถานะ HTTP ที่อาจส่งกลับเมื่อรันการทดสอบโหลดสำหรับ API Endpoints เว็บไซต์ แอปพลิเคชันเว็บและมือถือ:
1xx: ข้อมูล
- 100 Continue เซิร์ฟเวอร์ได้รับ request headers แล้ว และไคลเอนต์ควรดำเนินการส่ง request body
- 101 Switching Protocols ผู้ร้องขอได้ขอให้เซิร์ฟเวอร์สลับ protocols
- 103 Checkpoint ใช้ในข้อเสนอ resumable requests เพื่อดำเนินการ PUT หรือ POST requests ที่ถูกยกเลิกต่อ
2xx: สำเร็จ
- 200 OK คำขอสำเร็จ (นี่คือ response มาตรฐานสำหรับ HTTP requests ที่สำเร็จ)
- 201 Created คำขอสำเร็จและทรัพยากรใหม่ถูกสร้างขึ้น
- 202 Accepted คำขอได้รับการยอมรับสำหรับการประมวลผล แต่การประมวลผลยังไม่เสร็จสมบูรณ์
- 203 Non-Authoritative Information คำขอได้รับการประมวลผลสำเร็จ แต่กำลังส่งข้อมูลที่อาจมาจากแหล่งอื่น
- 204 No Content คำขอได้รับการประมวลผลสำเร็จ แต่ไม่มีเนื้อหาส่งกลับ
- 205 Reset Content คำขอได้รับการประมวลผลสำเร็จ แต่ไม่มีเนื้อหาส่งกลับ และต้องการให้ผู้ร้องขอรีเซ็ตมุมมองเอกสาร
- 206 Partial Content เซิร์ฟเวอร์ส่งเฉพาะส่วนหนึ่งของทรัพยากรเนื่องจาก range header ที่ไคลเอนต์ส่ง
3xx: การเปลี่ยนเส้นทาง
- 300 Multiple Choices รายการลิงก์ ผู้ใช้สามารถเลือกลิงก์และไปยังตำแหน่งนั้น สูงสุดห้าที่อยู่
- 301 Moved Permanently หน้าที่ร้องขอได้ย้ายไปยัง URL ใหม่ถาวร
- 302 Found หน้าที่ร้องขอได้ย้ายไปยัง URL ใหม่ชั่วคราว
- 303 See Other หน้าที่ร้องขอสามารถพบได้ภายใต้ URL อื่น
- 304 Not Modified บ่งชี้ว่าหน้าที่ร้องขอไม่ได้ถูกแก้ไขตั้งแต่ครั้งสุดท้ายที่ร้องขอ
- 306 Switch Proxy ไม่ใช้แล้ว
- 307 Temporary Redirect หน้าที่ร้องขอได้ย้ายไปยัง URL ใหม่ชั่วคราว
- 308 Resume Incomplete ใช้ในข้อเสนอ resumable requests เพื่อดำเนินการ PUT หรือ POST requests ที่ถูกยกเลิกต่อ
4xx: ข้อผิดพลาดไคลเอนต์
- 400 Bad Request คำขอไม่สามารถดำเนินการได้เนื่องจาก syntax ไม่ถูกต้อง
- 401 Unauthorized คำขอถูกต้องตามกฎหมาย แต่เซิร์ฟเวอร์ปฏิเสธที่จะตอบสนอง ใช้เมื่อสามารถยืนยันตัวตนได้แต่ล้มเหลวหรือยังไม่ได้ให้ข้อมูล
- 402 Payment Required สงวนไว้สำหรับการใช้ในอนาคต
- 403 Forbidden คำขอถูกต้องตามกฎหมาย แต่เซิร์ฟเวอร์ปฏิเสธที่จะตอบสนอง
- 404 Not Found ไม่พบหน้าที่ร้องขอ แต่อาจมีให้บริการอีกครั้งในอนาคต
- 405 Method Not Allowed คำขอถูกส่งไปยังหน้าด้วย request method ที่หน้านั้นไม่รองรับ
- 406 Not Acceptable เซิร์ฟเวอร์สามารถสร้าง response ที่ไคลเอนต์ไม่ยอมรับเท่านั้น
- 407 Proxy Authentication Required ไคลเอนต์ต้องยืนยันตัวตนกับ proxy ก่อน
- 408 Request Timeout เซิร์ฟเวอร์หมดเวลารอคำขอ
- 409 Conflict คำขอไม่สามารถดำเนินการได้เนื่องจากความขัดแย้งในคำขอ
- 410 Gone หน้าที่ร้องขอไม่มีให้บริการอีกต่อไป
- 411 Length Required "Content-Length" ไม่ได้กำหนด เซิร์ฟเวอร์จะไม่ยอมรับคำขอหากไม่มี
- 412 Precondition Failed เงื่อนไขเบื้องต้นที่ให้ในคำขอถูกประเมินว่าเป็นเท็จโดยเซิร์ฟเวอร์
- 413 Request Entity Too Large เซิร์ฟเวอร์จะไม่ยอมรับคำขอเพราะ request entity ใหญ่เกินไป
- 414 Request-URI Too Long เซิร์ฟเวอร์จะไม่ยอมรับคำขอเพราะ URL ยาวเกินไป เกิดขึ้นเมื่อแปลง POST request เป็น GET request ที่มี query information ยาว
- 415 Unsupported Media Type เซิร์ฟเวอร์จะไม่ยอมรับคำขอเพราะ media type ไม่รองรับ
- 416 Requested Range Not Satisfiable ไคลเอนต์ขอส่วนหนึ่งของไฟล์ แต่เซิร์ฟเวอร์ไม่สามารถให้ส่วนนั้นได้
- 417 Expectation Failed เซิร์ฟเวอร์ไม่สามารถตอบสนองข้อกำหนดของ Expect request-header field
5xx: ข้อผิดพลาดเซิร์ฟเวอร์
- 500 Internal Server Error ข้อความข้อผิดพลาดทั่วไป เมื่อไม่มีข้อความเฉพาะเจาะจงที่เหมาะสมกว่า
- 501 Not Implemented เซิร์ฟเวอร์ไม่รู้จัก request method หรือไม่มีความสามารถในการตอบสนองคำขอ
- 502 Bad Gateway เซิร์ฟเวอร์ทำหน้าที่เป็น gateway หรือ proxy และได้รับ response ที่ไม่ถูกต้องจากเซิร์ฟเวอร์ต้นทาง
- 503 Service Unavailable เซิร์ฟเวอร์ไม่พร้อมใช้งานในขณะนี้ (โอเวอร์โหลดหรือหยุดทำงาน)
- 504 Gateway Timeout เซิร์ฟเวอร์ทำหน้าที่เป็น gateway หรือ proxy และไม่ได้รับ response ทันเวลาจากเซิร์ฟเวอร์ต้นทาง
- 505 HTTP Version Not Supported เซิร์ฟเวอร์ไม่รองรับเวอร์ชัน HTTP protocol ที่ใช้ในคำขอ
- 511 Network Authentication Required ไคลเอนต์ต้องยืนยันตัวตนเพื่อเข้าถึงเครือข่าย
อื่นๆ: ข้อผิดพลาดการเชื่อมต่อ
URL ที่เพิ่มสำหรับการทดสอบโหลดไม่สามารถเข้าถึงได้ด้วยเหตุผลใดเหตุผลหนึ่งต่อไปนี้: -- URL ไม่สามารถเข้าถึงได้สาธารณะ (เรารองรับเฉพาะ URLs ที่สามารถเข้าถึงได้สาธารณะผ่านอินเทอร์เน็ต) -- ระบบ crash ด้วยเหตุผลบางอย่าง