Bawat status code, at alin sa magkapares ang dapat gamitin.
Ayos ang request headers; ipadala na ang body.
Halos hindi kailanman itinatakda nang mano-mano. Nagpapadala ang client ng Expect: 100-continue bago ang malaking body para matanggihan ito bago pa ma-upload.
Nagpapalit ng protocol ang koneksyon, kadalasan sa WebSocket.
Inilalabas ng server habang nasa WebSocket handshake. Hindi ito ibinabalik ng isang application.
Mga paunang header habang inihahanda ang tunay na response.
Para magpadala ng Link headers nang ma-preload ng browser ang assets bago pa handa ang page mismo.
Nagtagumpay ang request at nasa body ang resulta.
Ang default para sa matagumpay na GET, o PUT o POST na may ibinabalik na content.
Nagtagumpay ang request at may bagong resource na ngayon.
POST o PUT na may nilikha. Magpadala ng Location header na tumuturo rito — iyan ang bahaging kadalasang nakakalimutan.
Madalas mapagkamalan sa 200 OK · 202 Accepted
Tinanggap ang request pero hindi pa naisasagawa.
Nakapilang trabaho. Gamitin kapag hindi mo maipapangako ang resulta, at bigyan ang caller ng paraan para tingnan ang progreso.
Madalas mapagkamalan sa 201 Created · 200 OK
Nagtagumpay, at sadyang walang body.
DELETE na gumana, o PUT na walang maibabalik. Salungat sa sarili ang 204 na may body, at may mga client na itatapon ito.
Madalas mapagkamalan sa 200 OK · 205 Reset Content
Nagtagumpay, at dapat burahin ng client ang form na ipinadala nito.
Bihira, at talagang iba sa 204: sinasabi ng 204 na "walang maipapakita", sinasabi ng 205 na "walang maipapakita AT i-reset ang input mo". Wala ring body.
Madalas mapagkamalan sa 204 No Content
Bahagi ng resource, bilang sagot sa Range request.
Pag-seek sa video at mga download na naitutuloy. Dapat ibalik ang Content-Range.
May bagong URL ang resource, permanente na.
Permanenteng paglipat. Inililipat ng mga crawler ang ranking signals sa bagong URL. Agresibong naka-cache at mahirap bawiin — siguraduhin muna bago magpadala nito.
Madalas mapagkamalan sa 302 Found · 308 Permanent Redirect
Pansamantalang nasa ibang lugar ang resource.
Pansamantalang paglipat. Noon, hinahayaan nitong gawing GET ng mga client ang POST — kaya umiiral ang 307.
Madalas mapagkamalan sa 301 Moved Permanently · 307 Temporary Redirect
Tingnan ang ibang URL na ito, gamit ang GET.
Pagkatapos ng matagumpay na POST, para hindi maipadala ulit ang form kapag ni-refresh. Ang POST-redirect-GET pattern.
Madalas mapagkamalan sa 302 Found · 307 Temporary Redirect
Maayos pa ang naka-cache mong kopya.
Bilang sagot sa conditional request na may If-None-Match o If-Modified-Since. Sadyang walang body.
Pansamantalang nasa ibang lugar, at panatilihin ang method.
Gaya ng 302 pero dapat mapanatili ang method at body — nananatiling POST ang POST. Gamitin kapag mahalaga iyon.
Madalas mapagkamalan sa 302 Found · 308 Permanent Redirect
Permanenteng nasa ibang lugar, at panatilihin ang method.
Gaya ng 301 pero napapanatili ang method. Ang tamang pagpili para sa API endpoint na permanenteng inilipat.
Madalas mapagkamalan sa 301 Moved Permanently · 307 Temporary Redirect
Mali ang anyo ng request at hindi ito ipoproseso ng server.
Mga syntax error — JSON na hindi ma-parse, kulang na required field. Hindi para sa request na maayos ang anyo pero tinanggihan.
Madalas mapagkamalan sa 422 Unprocessable Content · 404 Not Found
Hindi ka authenticated. Mali ang pangalan — unauthenticated ang ibig sabihin nito.
Walang credentials, o mali ang mga ito. Puwedeng maayos ito ng pag-sign in. Dapat may kasamang WWW-Authenticate header.
Madalas mapagkamalan sa 403 Forbidden
Authenticated ka pero hindi ka pa rin pinapayagan.
Hindi makakatulong ang pag-sign in ulit. Ang pagkakaiba nito sa 401 ang pinakagulong pares sa HTTP: ang 401 ay "sino ka?", ang 403 ay "kilala kita, at hindi".
Madalas mapagkamalan sa 401 Unauthorized · 404 Not Found
Walang resource sa URL na ito.
Tamang sagot din ito kapag ayaw mong kumpirmahing umiiral ang isang resource sa taong walang karapatan dito — mas mabuti kaysa 403 doon, dahil kinukumpirma iyon ng 403.
Madalas mapagkamalan sa 403 Forbidden · 410 Gone
Umiiral ang URL; hindi akma rito ang verb na iyon.
POST sa read-only na endpoint. Dapat ilista ang mga pinapayagang verb sa Allow header.
Madalas mapagkamalan sa 404 Not Found · 501 Not Implemented
Sumasalungat ang request sa kasalukuyang estado.
Edit laban sa bersyong nagbago na, o dobleng unique value. Sabihin kung ano ang nagsalungat.
Madalas mapagkamalan sa 422 Unprocessable Content · 412 Precondition Failed
Nandito ito noon at sadyang tinanggal.
Mas matindi kaysa 404: sinasabihan nito ang crawler na alisin ang URL sa halip na paulit-ulit na subukan. Kapag sigurado ka lang na permanente ito.
Madalas mapagkamalan sa 404 Not Found
Hindi natupad ang kondisyong ikinabit mo.
Ang kabilang kalahati ng optimistic concurrency, kasama ang If-Match. Pinipigilan ang bulag na pag-overwrite.
Madalas mapagkamalan sa 409 Conflict · 428 Precondition Required
Mas malaki ang body kaysa sa kayang tanggapin ng server.
Mga limitasyon sa upload. Dati itong "Payload Too Large".
Hindi tinatanggap ng endpoint na ito ang Content-Type na iyon.
Form na ipinadala sa endpoint na JSON lang ang tinatanggap. Tungkol sa format, hindi kailanman sa mga value.
Madalas mapagkamalan sa 400 Bad Request · 422 Unprocessable Content
Maayos ang anyo, naintindihan, pero mali ang kahulugan.
Mga validation failure — petsang lumipas na kung saan kailangan ng darating pa. Ito ang code na dapat gamitin ng karamihan ng API kung saan 400 ang ipinapadala nila.
Madalas mapagkamalan sa 400 Bad Request · 409 Conflict
Iginigiit ng server na conditional ang request.
Pinipilit ang client na magpadala ng If-Match, para hindi tahimik na ma-overwrite ng sabay-sabay na edit ang isa’t isa.
Nire-rate limit ka.
Magpadala ng Retry-After. Ang 429 na walang sinasabi kung kailan susubok ulit ay nag-iiwan sa client na nanghuhula o paulit-ulit na sumusubok.
Hinarangan dahil sa legal na dahilan.
Mga utos ng korte at harang ayon sa batas. Pagtukoy sa Fahrenheit 451 ang numero, at sinadya iyon.
May nasira at hindi na makapagbigay ng mas tiyak na sagot ang server.
Ang pansalo sa exception na hindi na-handle. Huwag kailanman ilabas ang stack trace sa caller.
Madalas mapagkamalan sa 502 Bad Gateway · 503 Service Unavailable
Hindi talaga sinusuportahan ng server ang method.
Para sa verb na hindi ipinapatupad ng server kahit saan. Hindi para sa verb na hindi lang akma rito — 405 iyon.
Madalas mapagkamalan sa 405 Method Not Allowed
Nakatanggap ang proxy ng invalid na response mula sa upstream.
Basura ang isinagot ng upstream, o namatay ito sa gitna ng response. Malamang ang application mo ang upstream.
Madalas mapagkamalan sa 503 Service Unavailable · 504 Gateway Timeout
Pansamantalang hindi kayang hawakan ang request.
Maintenance o sobrang load. Magpadala ng Retry-After. Gamitin ito sa halip na 500 habang nagde-deploy — sinasabihan nito ang crawler na bumalik sa halip na alisin ang page.
Madalas mapagkamalan sa 500 Internal Server Error · 502 Bad Gateway
Sumuko ang proxy sa paghihintay sa upstream.
Hindi kailanman sumagot ang upstream. Masamang sagot ang ibig sabihin ng 502; walang sagot talaga ang 504.
Madalas mapagkamalan sa 502 Bad Gateway · 503 Service Unavailable
Para saan ito
Alamin ang ibig sabihin ng tatlong-digit na error o status number mula sa website, app o log ng server — 404, 403, 503 — at kung aling kahawig na code ang madalas ipagkamali rito.
Bago magsimula
Ihanda ang numero, o isang salita para sa naging mali, gaya ng forbidden o timeout. Listahang sanggunian ito: walang kinukuwenta, at walang ipinapadala kahit saan sa tina-type mo.
I-type ang numero o isang salita
I-type ang code sa Maghanap, gaya ng 404 — o salitang Ingles mula sa pangalan o kahulugan nito, gaya ng forbidden o rate limited. Iwang blangko para makita ang lahat ng code.
Paliitin sa isang grupo, kung gusto mo
Ang unang digit ang nagsasabi kung saang grupo ang code. Sa Klase, pumili ng isa, gaya ng 4xx — Mali ng kliyente para sa problema sa mismong request o 5xx — Nabigo ang server para sa sira sa panig ng website. Ibinabalik ng Lahat ng klase ang lahat.
Maghanap
Pindutin ang Maghanap para makita ang listahan. Kumikitid din ito habang nagta-type ka.
Basahin ang entry
Ibinibigay ng bawat entry ang code at ang opisyal nitong pangalan, saka isang linya kung ano ang ibig sabihin nito at isang linya kung kailan ito ginagamit. Kung mayroon, pinangangalanan ng Madalas mapagkamalan sa ang kahawig nitong madalas ipagkamali — basahin din iyon.
Pagbasa ng resulta
Kung may problema
Hindi ang pangalan ang mahirap. Alam ng lahat na "Not Found" ang 404. Ang magkapares na madaling magkamali ang kumakain ng oras.
401 laban sa 403 ang pinakamalabo sa HTTP, at kasalanan ito ng pangalan: ang 401 ay nagsasabing "Unauthorized" pero ang ibig sabihin ay hindi pa nakikilala. Ang 401 ay "sino ka?"; ang 403 ay "kilala kita, at hindi puwede".
Ang 400 laban sa 422 ay isa pa. Ang 400 ay para sa hindi mabasang request; ang 422 ay para sa request na tama ang anyo at mali ang laman. Karamihan sa API ay nagpapadala ng 400 sa dalawa, at karamihan doon ay 422 talaga.
Kaya bawat entry dito ay may kailan gagamitin, hindi lang kahulugan — at pinapangalanan ang kapares na madaling mapagkamalan.
Ang 401 ay nangangahulugang hindi alam ng server kung sino ka — walang kredensiyal, o mali — at puwedeng maayos ito ng pag-sign in. Ang 403 ay nangangahulugang alam na alam niya kung sino ka at hindi ka pa rin puwede. Ang pangalan ng 401 ang problema: sinasabi nitong “Unauthorized” at ang ibig sabihin ay hindi napatunayan. Kailangan ding may dalang WWW-Authenticate header ang 401 na nagsasabi kung paano magpapatunay, at iyon ang bahaging madalas iwanan.
Kadalasan ay mas magandang sagot ang 404. Kinukumpirma ng 403 na umiiral ang resource, at sinasabi niyon sa taong walang karapatan dito na nakahanap siya ng tunay na URL — ganoon inililista ng umaatake kung ano ang sulit atakihin. Walang ibinibigay ang 404. Ganoon din ang ginagawa ng site na ito para sa naka-save na datos ng ibang miyembro.
Ang 400 ay para sa request na hindi mabasa ng server — sirang JSON, kulang na kailangang patlang, ganap na maling hugis. Ang 422 ay para sa request na maayos ang anyo at mali ang kahulugan, tulad ng petsang nakaraan kung saan kailangan ng hinaharap. Karamihan sa API ay nagpapadala ng 400 sa dalawa, at karamihan sa mga kasong iyon ay 422 talaga.
Dalawang tanong: permanente ba ito, at kailangan bang makaligtas ang method? Ang 301 ay permanente at sa kasaysayan ay pinapayagan ang kliyenteng gawing GET ang POST. Ang 308 ay permanente at pinapanatili ang method. Ang 302 ay pansamantala na may parehong kalabuan sa method; ang 307 ay pansamantala at pinapanatili ito. Para sa API endpoint na lumipat ay halos laging 308 ang gusto mo. Mag-ingat sa 301 — mabigat itong ina-cache at mahirap bawiin.
Parehong galing sa bagay na nakaupo sa harap ng aplikasyon mo. Ang 502 ay nangangahulugang sumagot ang upstream ng wala sa lugar, o namatay sa gitna ng pagsagot. Ang 504 ay nangangahulugang hindi kailanman sumagot ang upstream bago sumuko ang proxy. Kung inaayos mo ang sarili mong serbisyo sa likod ng proxy, ang 502 ay kadalasang tumuturo sa pagbagsak at ang 504 sa bagay na mabagal.
503 Service Unavailable, kasama ang Retry-After header. Sinasabi nito sa crawler na pansamantalang wala ang pahina at bumalik muli, samantalang ang 500 ay nagpapahiwatig na may sira at ang 404 ay nagpapahiwatig na wala na ang pahina. Ang maling pagbabalik sa loob ng ilang minuto ng pagmamantini ay puwedeng magpalabas ng pahina sa index.
Tunay itong nakarehistrong code mula sa espesipikasyong biro noong Abril 1998, at sinasadyang wala ito sa listahang ito. Walang silbi ito sa tunay na API, at ang pagsama nito katabi ng mga code na pinagpipilian ng mga tao ay nagdaragdag ng ingay sa isang sanggunian.
Ang 4xx at 5xx ang tunay na paghahati: sasabihin ng 4xx na baguhin ang request, at sasabihin ng 5xx na tama ang request at ang server ang may problema.
Magpadala ng 503 na may Retry-After. Sinasabi nito sa crawler na pansamantala lang at babalik ito. Ang 500 ay nagpapahiwatig ng sira; ang 404 ay nagpapahiwatig na wala na. Ang maling pagpili sa loob ng ilang minutong maintenance ay puwedeng magpatanggal ng pahina sa index.
Mahalaga
A reference, not a specification. Every code cites the RFC it comes from — read that where the exact wording matters. Walang ipinapadala sa mga server namin ang tina-type mo rito — sa browser mo tumatakbo nang buo ang pagkuwenta.