HTTP Status Codes

Developer

Bawat status code, at alin sa magkapares ang dapat gamitin.

Status codes
34
Maghanap ayon sa numero, pangalan o gamit.
Mali ng kliyente
14
Nabigo ang server
5
Kabuuan
34
100ContinueRFC 9110 §15.2.1

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.

101Switching ProtocolsRFC 9110 §15.2.2

Nagpapalit ng protocol ang koneksyon, kadalasan sa WebSocket.

Inilalabas ng server habang nasa WebSocket handshake. Hindi ito ibinabalik ng isang application.

103Early HintsRFC 8297

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.

200OKRFC 9110 §15.3.1

Nagtagumpay ang request at nasa body ang resulta.

Ang default para sa matagumpay na GET, o PUT o POST na may ibinabalik na content.

201CreatedRFC 9110 §15.3.2

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

202AcceptedRFC 9110 §15.3.3

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

204No ContentRFC 9110 §15.3.5

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

205Reset ContentRFC 9110 §15.3.6

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

206Partial ContentRFC 9110 §15.3.7

Bahagi ng resource, bilang sagot sa Range request.

Pag-seek sa video at mga download na naitutuloy. Dapat ibalik ang Content-Range.

301Moved PermanentlyRFC 9110 §15.4.2

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

302FoundRFC 9110 §15.4.3

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

303See OtherRFC 9110 §15.4.4

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

304Not ModifiedRFC 9110 §15.4.5

Maayos pa ang naka-cache mong kopya.

Bilang sagot sa conditional request na may If-None-Match o If-Modified-Since. Sadyang walang body.

307Temporary RedirectRFC 9110 §15.4.8

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

308Permanent RedirectRFC 9110 §15.4.9

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

400Bad RequestRFC 9110 §15.5.1

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

401UnauthorizedRFC 9110 §15.5.2

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

403ForbiddenRFC 9110 §15.5.4

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

404Not FoundRFC 9110 §15.5.5

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

405Method Not AllowedRFC 9110 §15.5.6

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

409ConflictRFC 9110 §15.5.10

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

410GoneRFC 9110 §15.5.11

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

412Precondition FailedRFC 9110 §15.5.13

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

413Content Too LargeRFC 9110 §15.5.14

Mas malaki ang body kaysa sa kayang tanggapin ng server.

Mga limitasyon sa upload. Dati itong "Payload Too Large".

415Unsupported Media TypeRFC 9110 §15.5.16

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

422Unprocessable ContentRFC 9110 §15.5.21

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

428Precondition RequiredRFC 6585 §3

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.

429Too Many RequestsRFC 6585 §4

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.

451Unavailable For Legal ReasonsRFC 7725

Hinarangan dahil sa legal na dahilan.

Mga utos ng korte at harang ayon sa batas. Pagtukoy sa Fahrenheit 451 ang numero, at sinadya iyon.

500Internal Server ErrorRFC 9110 §15.6.1

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

501Not ImplementedRFC 9110 §15.6.2

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

502Bad GatewayRFC 9110 §15.6.3

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

503Service UnavailableRFC 9110 §15.6.4

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

504Gateway TimeoutRFC 9110 §15.6.5

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

Paano gamitin

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.

  1. 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.

  2. 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.

  3. Maghanap

    Pindutin ang Maghanap para makita ang listahan. Kumikitid din ito habang nagta-type ka.

  4. 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

  • Status codes: kung ilang code ang tumutugma sa tinype mo, mula sa lahat ng code sa listahan.
  • Mali ng kliyente, Nabigo ang server at Kabuuan: kung ilang code ng bawat grupo ang nasa listahan. Hindi nagbabago ang mga ito habang naghahanap ka.
  • Ang maliit na numerong RFC sa tabi ng pangalan ng code ay ang dokumento ng pamantayan na nagtatakda nito, kung kailangan mo itong banggitin.

Kung may problema

  • Sabi ng note, Walang status code na tumutugma: subukan ang numero lang, o mas maikling salita. Sa Ingles hinahanap ang listahan, kaya gumamit ng salitang Ingles.
  • Hindi sigurado kung kaninong panig ang problema: ang 4xx ay nangangahulugang mali ang request — sirang link o walang pahintulot — habang ang 5xx ay nangangahulugang ang website mismo ang pumalya, kaya kadalasan hindi mo kasalanan ang 5xx.
  • Wala talaga sa listahan ang code mo: ang laman ng listahan ay ang mga code na talagang nakikita at pinagpipilian ng mga tao, hindi ang bawat code na nairehistro. Sinasabi pa rin ng unang digit nito kung saang grupo ito kabilang.

Ano ito

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.

Mga tanong

Ano ang pagkakaiba ng 401 at 403?

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.

404 ba o 403 ang ibabalik ko para sa bagay na hindi dapat makita ng user?

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.

Kailan ko gagamitin ang 400 at kailan ang 422?

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.

Anong redirect ang dapat kong gamitin?

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.

Ano ang pagkakaiba ng 502 at 504?

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.

Ano ang dapat ibalik ng site habang nagde-deploy?

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.

Totoo ba ang 418 I’m a teapot?

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 komputasyon

Ang limang klase
1xxnatanggap, may susunod pa
2xxtagumpay
3xxmay dapat pang gawin
4xxmali ang request
5xxnabigo ang server

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.

Sa panahon ng deploy

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.

Ituloy pa

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.