|
400
|
Bad Request
RFC 9110
|
Pelayan tidak dapat memproses permintaan kerana sintaks, parameter, header, atau badan tidak sah. |
Lazim dengan JSON tidak sah, nilai wajib hilang, URL cacat, atau header tidak normal. |
Semak format badan permintaan, Content-Type, parameter query, dan log validasi pelayan.
Berkaitan: 422
|
|
401
|
Unauthorized
RFC 9110
|
Pengesahan diperlukan atau kelayakan yang diberikan tidak sah. |
Digunakan apabila token login hilang, API key tamat tempoh, atau header Authorization salah. |
Semak header WWW-Authenticate, tamat tempoh token, skim pengesahan, dan sama ada cookie dihantar.
Berkaitan: 403, 407
|
|
402
|
Payment Required
RFC 9110
|
Dikhaskan untuk senario memerlukan bayaran, tetapi makna standardnya belum digunakan secara meluas. |
Sesetengah API dan perkhidmatan pembayaran menggunakannya secara tidak rasmi untuk masalah bayaran, kredit, atau langganan. |
Semak dokumentasi API khusus perkhidmatan untuk maksud sebenar 402 dan laluan pemulihan.
Berkaitan: 403, 429
|
|
403
|
Forbidden
RFC 9110
|
Pelayan memahami permintaan tetapi menolak untuk membenarkan akses. |
Lazim dengan kebenaran tidak mencukupi, sekatan IP, dasar pentadbiran, atau akses kepada sumber peribadi. |
Semak dasar kebenaran, ACL, peraturan WAF, kebenaran fail, dan peraturan routing secara berasingan daripada pengesahan.
Berkaitan: 401, 404, 451
|
|
404
|
Not Found
RFC 9110
|
Sumber yang diminta tidak dapat ditemui, atau pelayan tidak mendedahkan sama ada ia wujud. |
Paling lazim dengan salah taip URL, halaman dipadam, route tidak betul, atau sumber yang sengaja disembunyikan. |
Semak pautan dalaman, sitemap, redirect, jadual routing, dan URL pengganti untuk kandungan yang dipadam.
Berkaitan: 410, 403, 451
|
|
405
|
Method Not Allowed
RFC 9110
|
Sumber wujud, tetapi kaedah HTTP yang diminta tidak dibenarkan. |
Berlaku apabila POST dihantar ke URL GET sahaja atau apabila route API dikonfigurasi untuk kaedah berbeza. |
Semak header Allow, definisi kaedah router, dan dasar sekatan kaedah proxy.
Berkaitan: 404, 501
|
|
406
|
Not Acceptable
RFC 9110
|
Pelayan tidak dapat menyediakan representasi yang sepadan dengan header Accept klien. |
Boleh berlaku apabila klien hanya meminta media type, bahasa, atau pengekodan yang tidak disokong. |
Semak header Accept, Accept-Language, dan Accept-Encoding serta tetapan rundingan kandungan pelayan.
Berkaitan: 415
|
|
407
|
Proxy Authentication Required
RFC 9110
|
Pengesahan diperlukan sebelum klien boleh menggunakan proxy. |
Dilihat dalam rangkaian korporat, proxy keselamatan, dan persekitaran pengesahan gateway. |
Semak header Proxy-Authenticate dan Proxy-Authorization serta konfigurasi proxy rangkaian.
Berkaitan: 401, 305
|
|
408
|
Request Timeout
RFC 9110
|
Pelayan tidak menerima permintaan klien yang lengkap dalam masa tunggu yang sanggup diberikan. |
Boleh berlaku dengan rangkaian perlahan, upload besar, timeout keep-alive, atau timeout load balancer. |
Semak tingkah laku retry klien, saiz upload, tetapan keep-alive, dan nilai timeout proxy.
Berkaitan: 504
|
|
409
|
Conflict
RFC 9110
|
Permintaan bercanggah dengan keadaan semasa sumber. |
Sering digunakan untuk penciptaan pendua, konflik versi, suntingan serentak, atau peralihan keadaan tidak sah. |
Semak versi sumber, ETags, kunci pendua, dan peraturan peralihan keadaan bisnes.
Berkaitan: 412, 422
|
|
410
|
Gone
RFC 9110
|
Sumber pernah wujud tetapi telah dibuang secara kekal. |
Lebih khusus daripada 404 apabila anda mahu memberitahu enjin carian dan klien bahawa halaman telah dipadam. |
Gunakan 301 jika ada URL pengganti; gunakan 410 bersama pembersihan sitemap apabila pembuangan kekal memang betul.
Berkaitan: 404, 301
|
|
411
|
Length Required
RFC 9110
|
Pelayan menolak permintaan kerana ia tidak menyertakan Content-Length. |
Boleh berlaku apabila pelayan atau gateway mesti mengetahui panjang badan permintaan terlebih dahulu. |
Semak Content-Length, Transfer-Encoding, dan tingkah laku streaming library klien.
Berkaitan: 413
|
|
412
|
Precondition Failed
RFC 9110
|
Prasyarat dalam permintaan bersyarat, seperti If-Match, gagal. |
Digunakan untuk mencegah suntingan serentak, pengesahan semula cache, dan kemas kini berasaskan ETag. |
Bandingkan If-Match, If-None-Match, dan If-Unmodified-Since dengan versi sumber semasa.
Berkaitan: 304, 409, 428
|
|
413
|
Content Too Large
RFC 9110
|
Badan permintaan lebih besar daripada yang sanggup diterima oleh pelayan. |
Lazim dengan had upload fail, had saiz badan JSON, dan sekatan saiz badan proxy. |
Semak had upload merentas pelayan, proxy, CDN, dan aplikasi.
Berkaitan: 411, 431
|
|
414
|
URI Too Long
RFC 9110
|
URI permintaan lebih panjang daripada yang boleh diproses oleh pelayan. |
Boleh berlaku dengan query string sangat panjang, loop redirect rosak, atau data berlebihan diletakkan dalam URL GET. |
Pindahkan data panjang ke badan POST dan semak had panjang URI dalam proxy dan pelayan.
Berkaitan: 400, 431
|
|
415
|
Unsupported Media Type
RFC 9110
|
Pelayan tidak menyokong media type bagi badan permintaan. |
Berlaku apabila API JSON menerima Content-Type yang salah atau format fail yang tidak disokong diupload. |
Semak Content-Type, sambungan fail, tetapan multipart, dan sama ada parser pelayan telah didaftarkan.
Berkaitan: 406, 422
|
|
416
|
Range Not Satisfiable
RFC 9110
|
Range yang diminta tidak dapat dilayan kerana tidak sesuai dengan saiz sumber. |
Berlaku dalam muat turun boleh disambung atau penstriman apabila julat yang diminta berada di luar saiz fail. |
Semak header Range, Content-Range, saiz fail, dan metadata cache yang lapuk.
Berkaitan: 206
|
|
417
|
Expectation Failed
RFC 9110
|
Pelayan tidak dapat memenuhi jangkaan yang diberikan dalam header Expect. |
Boleh berlaku apabila pelayan atau proxy tidak menyokong jangkaan seperti Expect: 100-continue. |
Buang header Expect atau sahkan bahawa pelayan menyokong pengendalian 100 Continue.
Berkaitan: 100
|
|
418
|
I'm a teapot
RFC 2324 / RFC 9110
|
Kod yang berasal daripada RFC April Fools, lebih bermakna sejarah dan budaya berbanding pengendalian ralat praktikal. |
Sesetengah perkhidmatan menggunakannya untuk respons main-main, ujian, atau budaya developer, tetapi ia tidak disarankan untuk reka bentuk API biasa. |
Untuk API produksi, gunakan kod status 4xx atau 5xx yang jelas dengan maksud yang ditakrifkan baik.
Berkaitan: 400
|
|
421
|
Misdirected Request
RFC 9110
|
Permintaan dihantar kepada pelayan yang tidak dapat menghasilkan respons untuknya. |
Boleh berlaku apabila penggunaan semula sambungan HTTP/2, TLS/SNI, CDN, atau routing reverse proxy tersalah konfigurasi. |
Semak Host, SNI, sijil, coalescing sambungan HTTP/2, dan routing origin CDN.
Berkaitan: 400, 502
|
|
422
|
Unprocessable Content
RFC 9110
|
Sintaks permintaan sah, tetapi kandungannya tidak boleh diproses secara semantik. |
Lazim untuk kegagalan validasi API, pelanggaran peraturan bisnes, dan nilai medan tidak sah. |
Tentukan dalam peraturan API sama ada 400 bermaksud ralat format dan 422 bermaksud ralat semantik atau validasi.
Berkaitan: 400, 409, 415
|
|
423
|
Locked
RFC 4918
|
Sumber sasaran dikunci, jadi permintaan tidak dapat diproses. |
Digunakan untuk kunci suntingan fail, dokumen kolaboratif, dan kunci sumber WebDAV. |
Semak pemilik kunci, tamat tempoh kunci, API unlock, dan dasar pengendalian konflik.
Berkaitan: 409, 424
|
|
424
|
Failed Dependency
RFC 4918
|
Permintaan semasa tidak dapat dilakukan kerana operasi terdahulu yang menjadi dependensi telah gagal. |
Digunakan apabila beberapa operasi bergantung antara satu sama lain dan kegagalan operasi awal menyebabkan operasi kemudian gagal. |
Jelaskan operasi terdahulu yang gagal dan hubungan dependensi dalam badan respons.
Berkaitan: 207, 423
|
|
425
|
Too Early
RFC 8470
|
Pelayan enggan memproses permintaan yang mungkin terlalu awal dan berisiko dimainkan semula. |
Boleh digunakan dengan data awal TLS 1.3 0-RTT apabila wujud risiko replay attack. |
Pastikan permintaan non-idempotent tidak dihantar dengan 0-RTT, dan sahkan tetapan klien serta pelayan.
Berkaitan: 429, 503
|
|
426
|
Upgrade Required
RFC 9110
|
Pelayan memerlukan klien menaik taraf protokol sebelum permintaan dikendalikan. |
Digunakan apabila upgrade tertentu diperlukan, seperti versi HTTP, TLS, atau WebSocket. |
Semak header Upgrade, protokol yang disokong, dan sama ada proxy meneruskan permintaan upgrade.
Berkaitan: 101
|
|
428
|
Precondition Required
RFC 6585
|
Pelayan memerlukan header permintaan bersyarat. |
Digunakan untuk mencegah kemas kini hilang akibat suntingan serentak dengan mensyaratkan keadaan seperti If-Match. |
Sediakan dokumentasi API dan mesej ralat yang memberitahu klien supaya membaca ETag dan mengemas kini dengan If-Match.
Berkaitan: 412, 409
|
|
429
|
Too Many Requests
RFC 6585
|
Klien menghantar terlalu banyak permintaan dalam tempoh masa tertentu. |
Lazim dengan had kadar API, had percubaan login, sekatan bot, dan tingkah laku refresh berlebihan. |
Semak Retry-After, header rate limit, had per pengguna atau per token, dan strategi backoff.
Berkaitan: 403, 503
|
|
431
|
Request Header Fields Too Large
RFC 6585
|
Keseluruhan header permintaan atau medan header tertentu terlalu besar. |
Boleh berlaku apabila cookie menjadi terlalu besar atau token pengesahan, header penjejakan, atau header tambahan proxy terkumpul. |
Kurangkan saiz Cookie, saiz header Authorization, dan header yang ditambah oleh rantaian proxy.
Berkaitan: 400, 413, 414
|
|
451
|
Unavailable For Legal Reasons
RFC 7725
|
Sumber tidak dapat disediakan atas sebab undang-undang. |
Digunakan apabila akses kepada kandungan disekat oleh perintah mahkamah, permintaan kerajaan, notis hak cipta, atau peraturan tempatan. |
Sahkan bahawa kod ini digunakan untuk mengenal pasti keperluan undang-undang secara telus, tidak seperti 403 atau 404 umum.
Berkaitan: 403, 404, 410
|