Pereiti prie pagrindinio turinio

HTTP būsenos kodų žinynas nemokamai

Visų HTTP būsenos kodų žinynas su paieška — ką reiškia kiekvienas, kada naudojamas ir dažnos priežastys. Nuo 100 iki 511.

Veikia neprisijungus, kai įkeliama

61 būsenos kodas

100

Tęsti

Serveris gavo užklausos antraštę ir klientas turėtų tęsti turinio dalimi.

Naudojama užklausoms su Expect: 100-continue. Serveris patvirtina, kad paruoštas gauti turinio dalį prieš klientui jį siunčiant. Retai pasitaiko šiuolaikiniuose žiniatinklio programose.

RFC 9110 ↗
101

Protokolų perjungimas

Serveris perjungia protokolus, kaip prašė klientas.

Dažniausiai naudojama WebSocket atnaujinimams — klientas prašo Upgrade: websocket ir serveris atsako 101, norėdamas perjungti.

RFC 9110 ↗
102

Apdorojimas

Serveris gavo užklausą ir ją apdoroja, bet atsakymas dar nepasiekiamas.

WebDAV tarpinis atsakymas, siunčiamas siekiant išvengti kliento skirtojo laiko pasibaigimo vykdant ilgas operacijas. Pasenęs — šiuolaikiniai serveriai jo neturėtų siųsti.

RFC 2518 ↗
103

Ankstyvosios užuominos

Preliminariosios antraštės siunčiamos prieš galutinį atsakymą.

Leidžia serveriams siųsti Link antraštes (iš anksto įkelti/iš anksto prijungti) dar ruošiant galutinį atsakymą, todėl naršyklės gali greičiau pradėti įkelti kritinius išteklius.

RFC 8297 ↗
200

Gerai

Užklausa sėkmingai įvykdyta.

Standartinis sėkmės atsakymas. Reikšmė priklauso nuo HTTP metodo: GET → resursas grąžinamas, POST/PUT → veiksmas baigtas.

RFC 9110 ↗
201

Sukurta

Naujas resursas sėkmingai sukurtas.

Dažna po POST. Atsakyme turėtų būti Location antraštė, nurodanti naujo resurso URL.

RFC 9110 ↗
202

Priimta

Užklausa priimta apdorojimui, bet apdorojimas nėra baigtas.

Asinchroninėms operacijoms — serveris darbą pastatė į eilę. Klientas turėtų apklausti būsenos tašką arba sugrįžti vėliau.

RFC 9110 ↗
203

Neautoritetinga informacija

Atsakymą pakeitė transformuojantis tarpinis serveris.

Užklausa sėkminga, bet tarpinis serveris (pvz., talpyklos arba transformuojantis tarpinis serveris) pakeitė pradinio serverio turinį — pavyzdžiui, iš naujo suspaudė vaizdus. Praktiškai retai pasitaiko.

RFC 9110 ↗
204

Nėra turinio

Užklausa sėkmingai įvykdyta, bet atsakymo turinio nėra.

Dažnai naudojama DELETE operacijoms arba PUT atnaujinimams, kurie neturi grąžinti turinio. Klientas neturėtų palikti dabartinio puslapio.

RFC 9110 ↗
205

Iš naujo nustatyti turinį

Užklausa sėkmingai įvykdyta; klientas turėtų iš naujo nustatyti dokumento rodinį.

Kaip 204, turinys negrąžinamas — tačiau klientui papildomai nurodoma iš naujo nustatyti formą arba rodinį, kuris sukūrė užklausą (pvz. išvalyti formos laukus kitam įrašui).

RFC 9110 ↗
206

Dalinis turinys

Serveris pristatė tik dalį resurso.

Atsakymas į Range užklausą. Naudojamas vaizdo leistuvais ir atsisiuntimo tvarkytuvais, norėdami tęsti nutrauktus atsisiuntimus arba transliuoti didelius failus.

RFC 9110 ↗
207

Kelios būsenos

Atsakymo turinyje pateikiami keli būsenos kodai kelioms operacijoms.

WebDAV: XML turinyje atskirai pateikiamas kelių suboperacijų rezultatas — pvz., grupinis perkėlimas, kai kai kurie elementai perkelti, o kiti ne.

RFC 4918 ↗
208

Jau pranešta

Kolekcijos nariai jau buvo išvardyti anksčiau atsakyme.

WebDAV: naudojama 207 Multi-Status atsakymuose, norėdami išvengti pakartotinio to paties kolekcijos narių išvardijimo, kai ryšiai sukuria kilpas.

RFC 5842 ↗
226

IM naudojamas

Atsakymas yra egzemplioriaus manipuliacijų, taikytų resursui, rezultatas.

Delta kodavimas: serveris grąžina skirtumą pagal ankstesnę versiją, o ne visą resursą, taip sutaupydamas pralaidumą. Įdiegiama labai retai.

RFC 3229 ↗
300

Keletas pasirinkimų

Yra keli resurso atvaizdai.

Serveris siūlo kelis pasirinkimus (pvz. skirtingus formatus arba kalbas) ir klientas turėtų pasirinkti vieną. Naudojama retai, nes automatinis turinio derinimas paprastai tai sutvarko.

RFC 9110 ↗
301

Nuolat perkeltas

Resursas visam laikui perkeltas į naują URL.

Naudokite nuolatiniams URL pokyčiams — paieškos varikliai atnaujins savo indeksą. SEO autoritetas perkeliamas į naują URL.

RFC 9110 ↗
302

Rasta (laikinasis peradresavimas)

Resursas yra laikinai kitame URL.

Nurodo, kad peradresavimas nėra nuolatinis. Talpinimas ne toks agresyvus kaip 301. Naudokite tokiais atvejais kaip 'reikalinga prisijungti, peradresavimas į /login'.

RFC 9110 ↗
303

Žiūrėkite kitą

Peradresavimas į kitą URL naudojant GET.

Naudojama po POST pateikimų — atsakymas sako 'jūsų POST pavyko, rezultatą žiūrėkite šiame GET URL'. Naršyklės naują URL visada pasiekia GET metodu.

RFC 9110 ↗
304

Nepakeista

Talpyklos versija vis dar tinkama; naudokite ją.

Atsakymas į sąlyginę užklausą (su If-None-Match arba If-Modified-Since antraštėmis). Sutaupo pralaidumą — joks turinys negrąžinamas.

RFC 9110 ↗
307

Laikinasis peradresavimas

Kaip 302, bet išsaugo originalų HTTP metodą.

Jei originalas buvo POST, peradresavimas taip pat naudoja POST. Šiuolaikinė 302 alternatyva, kai metodo išsaugojimas svarbus.

RFC 9110 ↗
308

Nuolatinis peradresavimas

Kaip 301, bet išsaugo originalų HTTP metodą.

Šiuolaikinis 301 pakeitimas, kai norite, kad POST užklausos po peradresavimo liktų POST.

RFC 9110 ↗
400

Bloga užklausa

Serveris negalėjo suprasti užklausos dėl blogos sintaksės.

Paplitusios priežastys: blogai suformuotas JSON turinyje, netinkami užklausos parametrai arba trūkstami būtini laukai. Patikrinkite užklausos turinį ir antraštes.

RFC 9110 ↗
401

Neautorizuota

Reikalingas tapatybės nustatymas, bet jis nepateiktas.

Klientas turi pateikti autentifikavimo duomenis (Authorization antraštę, slapuką, žetoną). 'Unauthorized' yra klaidingas pavadinimas — jis iš tikrųjų reiškia 'neautentifikuotas'.

RFC 9110 ↗
402

Mokėjimas reikalingas

Rezervuota būsimam naudojimui — kartais naudojama mokamiems API planams.

Iš pradžių skirta skaitmeniniams mokėjimams. Šiuolaikinis naudojimas: API kartais grąžina 402, kai naudotojas viršijo sumokėtą kvotą.

RFC 9110 ↗
403

Draudžiama

Klientas yra autentifikuotas, tačiau neturi leidimo.

Skiriasi nuo 401 — naudotojas YRA prisijungęs, tačiau jo sąskaita neturi šio resurso prieigos teisių. Patikrinkite vaidmenų/leidimų logiką.

RFC 9110 ↗
404

Nerasta

Prašytas resursas neegzistuoja.

URL yra klaidingas, resursas buvo ištrintas arba jo niekada nebuvo. Serveriai kartais grąžina 404, norėdami paslėpti, kad 403 būtų tikslesnis.

RFC 9110 ↗
405

Metodas neleistinas

Naudotas HTTP metodas šiam resursui neleidžiamas.

Pavyzdžiui, GET užklausa į tašką, kuris priima tik POST. Atsakyme turėtų būti Allow antraštė, išvardijanti galiojančius metodus.

RFC 9110 ↗
406

Nepriimtina

Joks atvaizdis neatitinka kliento Accept antraščių.

Klientas paprašė turinio tipo, kalbos arba kodavimo (per Accept, Accept-Language, Accept-Encoding), kurio serveris negali pateikti. Daugelis serverių praleidžia griežtą derinimą ir grąžina numatytąjį variantą.

RFC 9110 ↗
407

Tarpinio serverio tapatybės nustatymas reikalingas

Klientas pirmiausia turi autentifikuotis tarpiniame serveryje.

Kaip 401, tačiau išduodama tarpinio serverio: klientas turi siųsti Proxy-Authorization kredencialus. Matoma korporatyviniuose tinkluose su autentifikavimo tarpiniais serveriais.

RFC 9110 ↗
408

Užklausos skirtasis laikas baigėsi

Serveris nesulaukė užklausos per skirtą laiką.

Klientas per ilgai siuntė užklausos turinį arba paliko ryšį neaktyvų. Bandykite užklausą dar kartą.

RFC 9110 ↗
409

Konfliktas

Užklausa konfliktuoja su dabartine resurso būsena.

Dažniausiai grąžinama dėl vienalaikio redagavimo konfliktų arba pasikartojančio resurso kūrimo (pvz., vartotojo su jau egzistuojančiu el. pašto adresu sukūrimo).

RFC 9110 ↗
410

Išbraukta

Resursas buvo ištrintas ir nebegrįš.

Stipriau nei 404 — serveris aiškiai žino, kad resursas ANKSČIAU egzistavo, bet buvo visam laikui pašalintas. Paieškos varikliai jį pašalins iš indekso.

RFC 9110 ↗
411

Reikalinga ilgio specifikacija

Serveris reikalauja Content-Length antraštės.

Užklausa buvo atmesta, nes trūko Content-Length antraštės, o serveris atsisako priimti nežinomo dydžio turinį. Pridėkite antraštę ir bandykite dar kartą.

RFC 9110 ↗
412

Išankstinė sąlyga neįvykdyta

Sąlyga užklausos antraštėse nebuvo įvykdyta.

Grąžinama, kai sąlyginės antraštės, tokios kaip If-Match arba If-Unmodified-Since, nesiseka — paprastai optimistinis užrakinimas: kas nors kitas pakeitė išteklių nuo jūsų versijos. Iš naujo nuskaitykite ir bandykite dar kartą.

RFC 9110 ↗
413

Turinys per didelis

Užklausos turinys viršija serverio dydžio limitą.

Dažnai pasitaiko keliant didelius failus. Serverio konfigūracija (nginx, apache) nustato didžiausią turinio dydį. Patikrinkite serverio konfigūraciją.

RFC 9110 ↗
414

URI per ilgas

Užklausos URL viršija serverio ilgio limitą.

Paprastai sukelia labai ilgos užklausos eilutės (pvz., duomenų kodavimas GET užklausoje). Pereikite prie POST turinio arba padidinkite serverio limitą, jei galite jį valdyti.

RFC 9110 ↗
415

Nepalaikomas medijos tipas

Serveris negali tvarkyti siunčiamo Content-Type.

Pavyzdžiui, siunčiant application/xml į serverį, kuris priima tik application/json. Tinkamai nustatykite Content-Type antraštę.

RFC 9110 ↗
416

Intervalas netenkinamas

Prašomas baitų intervalas yra už resurso dydžio ribų.

Range antraštė prašo failo dalies, kurios nėra — pvz., bandant tęsti atsisiuntimą už failo pabaigos. Atsakyme turi būti Content-Range su tikruoju dydžiu.

RFC 9110 ↗
417

Lūkestis neįvykdytas

Serveris negali patenkinti Expect antraštės reikalavimų.

Siunčiama, kai serveris nepalaiko Expect: 100-continue. Kai kurie klientai siunčia šią antraštę pagal numatytuosius nustatymus dideliems POST; jos išjungimas paprastai išsprendžia klaidą.

RFC 9110 ↗
418

Aš arbatinukas

Serveris atsisakė virti kavą, nes jis arbatinukas.

Balandžio 1-osios pokštas iš 1998 m. (RFC 2324). Kai kurie tikri API naudoja jį pokštams arba pasenusiems galiniams taškams žymėti. Nenaudoti produkcinėje aplinkoje.

RFC 2324 ↗
421

Klaidingai nukreipta užklausa

Užklausa buvo nusiųsta serveriui, kuris negali į ją atsakyti.

Dažna naudojant HTTP/2 ryšio pakartotinį naudojimą: užklausa pasiekė serverį, kuris nesukonfigūruotas tam tikslinio serverio vardui. Klientas turėtų bandyti iš naujo naujame ryšyje.

RFC 9110 ↗
422

Neapdorojamas turinys

Užklausa buvo sintaksiškai tinkama, bet semantiškai neteisinga.

Pavyzdžiui, JSON išanalizuotas teisingai, bet trūko privalomo lauko arba lauko reikšmė buvo už ribų. Dažna REST API patikros atsakymuose.

RFC 9110 ↗
423

Užrakinta

Resursas užrakintas.

WebDAV: šaltinio arba paskirties resursą yra užrakinęs kitas klientas, todėl operacijos atlikti negalima. Palaukite, kol užraktas bus atlaisvintas, arba atrakinkite jį naudodami tinkamą žetoną.

RFC 4918 ↗
424

Priklausomybės klaida

Užklausa nepavyko, nes ankstesnė priklausoma užklausa nepavyko.

WebDAV: priklausomų operacijų grandinėje ankstesnis veiksmas nepavyko, todėl šis neatliktas. Ieškokite ankstesnės klaidos, kad rastumėte pagrindinę priežastį.

RFC 4918 ↗
425

Per anksti

Serveris atsisako apdoroti užklausą, kuri gali būti pakartota.

Susiję su TLS 1.3 0-RTT (ankstyvaisiais duomenimis): serveris nerizikuos apdoroti galbūt pakartotos užklausos. Klientas turėtų bandyti iš naujo, kai baigsis rankos paspaudimas (handshake).

RFC 8470 ↗
426

Atnaujinimas reikalingas

Klientas turėtų perjungti į kitą protokolą.

Serveris atsisako aptarnauti užklausą per dabartinį protokolą, bet aptarnaus po atnaujinimo — atsakyme yra Upgrade antraštė, kurioje nurodomas reikalingas protokolas.

RFC 9110 ↗
428

Sąlyga reikalinga

Serveris reikalauja, kad užklausa būtų sąlyginė.

Serveris reikalauja sąlyginių antraščių (pvz. If-Match), kad išvengtų prarasto atnaujinimo konfliktų. Gaukite resursą, užfiksuokite jo ETag ir siųskite iš naujo su If-Match.

RFC 6585 ↗
429

Per daug užklausų

Klientas yra ribojamas.

Sulėtinkite. Atsakyme turi būti Retry-After antraštė, nurodanti, kada bandyti iš naujo. Dažna API, turinčiuose užklausų kvotas.

RFC 6585 ↗
431

Užklausos antraščės per didelės

Antraštės per didelės serverio apdorojimui.

Arba viena antraštė, arba bendras antraščių dydis viršija limitą — dažniausiai dėl per didelių slapukų. Išvalykite slapukus arba sumažinkite, ką jūsų programa juose saugo.

RFC 6585 ↗
451

Nepasiekiama dėl teisinių priežasčių

Prieiga atmesta dėl teisinių reikalavimų.

Resursas užblokuotas dėl teisinių priežasčių — cenzūra, teismų sprendimai arba regioniniai reglamentai. Skaičius yra nuoroda į romaną „Fahrenheit 451“.

RFC 7725 ↗
500

Vidaus serverio klaida

Serveris susidūrė su netikėta sąlyga.

Bendras visų serverio pusės klaidų atvejis. Patikrinkite serverio žurnalus, kad rastumėte tikrąją priežastį: neapdorota išimtis, duomenų bazės klaida ir pan.

RFC 9110 ↗
501

Neįdiegta

Serveris nepalaiko prašomos funkcijos.

Pavyzdžiui, serveris neatpažino HTTP metodo. Praktikoje retai — dažniau pamatysite 405.

RFC 9110 ↗
502

Netinkamas šliuzas

Serveris, veikdamas kaip šliuzas, gavo netinkamą atsaką iš aukščiau esančio serverio.

Dažna mikropaslaugų architektūrose. Jūsų apkrovos balansuotojas arba atvirkštinis tarpinis serveris gavo netinkamą atsaką iš foninės paslaugos.

RFC 9110 ↗
503

Paslauga nepasiekiama

Serveris laikinai negali tvarkyti užklausos.

Arba vykdoma priežiūra, arba perkrautas. Atsakyme turėtų būti Retry-After antraštė. Dažnai grąžinama diegimo metu.

RFC 9110 ↗
504

Šliuzo skirtasis laikas baigėsi

Šliuzo serveris nesulaukė aukščiau esančio serverio atsakymo per skirtą laiką.

Fono tarnyba neatsakė laiku. Patikrinkite aukščiau esančios tarnybos sveikatą ir timeout konfigūracijas.

RFC 9110 ↗
505

HTTP versija nepalaikoma

Serveris nepalaiko užklausoje naudotos HTTP versijos.

Serveris nepalaiko pagrindinės užklausos HTTP versijos. Su šiuolaikiniais klientais beveik niekada nematoma.

RFC 9110 ↗
506

Variantas taip pat derinamas

Serverio turinio derinimo konfigūracija netinkama.

Skaidrus turinio derinimas baigėsi ciklu: pasirinktas variantas pats sukonfigūruotas derinimui. Rodo serverio konfigūracijos klaidą.

RFC 2295 ↗
507

Nepakanka vietos saugykloje

Serveris neturi disko vietos.

Iš pradžių būdingas WebDAV, bet kartais naudojamas ir bendrųjų paskirčių serveriuose. Reiškia, kad serveris negali išsaugoti užklausos dėl saugyklos apribojimų.

RFC 4918 ↗
508

Ciklas aptiktas

Serveris aptiko begalinę kilpą apdorojant užklausą.

WebDAV: apdorojant Depth: infinity užklausą, įvyko ciklas (pvz., apskritos susiejimų grandinės). Operacija nutraukta.

RFC 5842 ↗
510

Neišplėsta

Tolesnės užklausos plėtiniai yra reikalingi.

Iš pasenusios HTTP plėtinių sistemos: serveriui reikia daugiau informacijos, kad galėtų įvykdyti užklausą. Šiuolaikiniame žiniatinklyje iš esmės nenaudojama.

RFC 2774 ↗
511

Tinklo autentifikacija reikalinga

Klientas turi nustatyti tapatybę, norint gauti prieigą prie tinklo.

Naudojama prieigos portaluose (viešbučių/oro uostų WiFi), kad nurodytų, jog vartotojas turi prisijungti prie tinklo, prieš pasiekdamas išorines svetaines.

RFC 6585 ↗

Dažniausi naudojimo būdai

  • Nuoroda API projektavimuiProjektuojant REST API pasirinkite tinkamą būsenos kodą kiekvienas atsakymui.
  • Greitai ieškokite klaidų kodųKai programa grąžina painiojančią HTTP klaidą, ieškokite, ką tai iš tikrųjų reiškia.
  • Sužinokite HTTP būsenos kodaiVisamedžio nuoroda studentams ir kūrėjams, kurie mokosi HTTP ir REST.
  • Greita nuoroda gamybos incidento metuGamybos incidento metu greitai ieškokite, ką reiškia kiekvienas būsenos kodas.
  • Nuoroda į API dokumentacijąRašydami API dokumentaciją, nurodykite į autorizuotus grąžintų būsenos kodų aprašymus.

Kaip tai veikia

Šis įrankis yra kliento pusės žinynas, sukurtas aplink fiksuotą 63 HTTP būsenos kodų paieškos lentelę, apimančią visas penkias klases (1xx–5xx), kiekvienas su nuoroda į savo apibrėžiantį RFC numerį. Jokio kreipimosi į serverį, išorinio API ar tinklo užklausos — visas filtravimas ir rodymas vyksta naršyklėje, naudojant JavaScript įtaisytus masyvo ir eilutės metodus.

  1. 1
    Paieškos lentelė įkeliama
    Pilnas 63 IANA registruotų būsenos kodų rinkinys yra tiesiogiai integruotas į šį įrankį kaip JavaScript masyvas, kiekvienas įrašas turintis skaitinį kodą, kanoninį anglišką pavadinimą, kategorijos klasę ir konkretų RFC, kuris jį apibrėžia (pvz., RFC 9110 daugumai HTTP/1.1 kodų, RFC 6585 429 kodui, RFC 2324 418 kodui).
  2. 2
    Filtras veikia atmintyje
    Rašant arba pasirenkant kategorijos filtrą, JavaScript Array.filter veikia atminties sąraše, lygindamas jūsų užklausą su būsenos kodo numeriu, kanoniniu pavadinimu bei trumpu ir ilgu aprašymo tekstu, naudodamas String.includes — jokios delsos, jokio kreipimosi į serverį.
  3. 3
    Detalės išsiplečia su RFC nuoroda
    Kiekvienas rezultatas atvaizduojamas kaip HTML details/summary elementas. Išplėtus įrašą, atsiskleidžia išsamesnis paaiškinimas ir tiesioginė nuoroda į autoritetingą RFC dokumentą rfc-editor.org, todėl galite perskaityti tikslų specifikacijos tekstą bet kuriam kodui.
  4. 4
    Tiesioginės nuorodos ir kopijavimas į iškarpinę
    Atvėrus įrašą, URL fragmentas atnaujinamas į kodo numerį (pvz., #404), todėl puslapiu galima dalintis ir jį įsiminti. Kopijavimo mygtukas įrašo kanoninę eilutę (pvz., „404 Not Found“) į iškarpinę per naršyklės navigator.clipboard API.

Susiję įrankiai

Dažnai užduodami klausimai