.ro

Coduri de stare HTTP explicate

Ce înseamnă 301, 403, 429 sau 502: fiecare cod din registrul oficial, explicat pe scurt, cu standardul care îl definește.

Rulează în browser Gratuit, fără cont

1xxInformative

100 Continue

Serverul a primit începutul cererii și nu l-a refuzat; răspunsul final vine după ce cererea e trimisă întreagă și procesată. Apare când clientul a trimis antetul Expect: 100-continue.

RFC 9110 §15.2.1

101 Switching Protocols

Serverul acceptă cererea clientului, făcută prin antetul Upgrade, de a schimba protocolul folosit pe această conexiune; răspunsul spune în același antet ce protocol urmează.

RFC 9110 §15.2.2

102 Processing

Răspuns intermediar din WebDAV: serverul a primit toată cererea, dar încă lucrează la ea. Răspunsul final vine când termină.

RFC 2518

103 Early Hints

Răspuns intermediar: serverul trimite dinainte antete pe care probabil le va avea și răspunsul final, de exemplu legături de preîncărcat, ca clientul să înceapă mai devreme.

RFC 8297

2xxSucces

200 OK

Cererea a reușit. Ce conține răspunsul depinde de metodă: pentru GET, resursa cerută; pentru POST, rezultatul acțiunii.

RFC 9110 §15.3.1

201 Created

Cererea a reușit și a creat una sau mai multe resurse noi; cea principală e arătată de antetul Location sau, în lipsa lui, e chiar adresa cerută.

RFC 9110 §15.3.2

202 Accepted

Cererea a fost primită pentru procesare, dar procesarea nu s-a terminat și s-ar putea să nu reușească. HTTP nu are un mijloc de a anunța mai târziu rezultatul.

RFC 9110 §15.3.3

203 Non-Authoritative Information

Cererea a reușit, dar conținutul a fost modificat de un proxy față de răspunsul 200 al serverului de origine.

RFC 9110 §15.3.4

204 No Content

Cererea a reușit și nu e niciun conținut de trimis în răspuns; antetele se referă la resursă după aplicarea acțiunii.

RFC 9110 §15.3.5

205 Reset Content

Cererea a reușit, iar serverul cere clientului să readucă la starea inițială documentul din care a pornit cererea, de exemplu un formular de completat din nou.

RFC 9110 §15.3.6

206 Partial Content

Serverul trimite doar partea cerută dintr-o resursă, ca răspuns la o cerere cu antetul Range.

RFC 9110 §15.3.7

207 Multi-Status

Din WebDAV: starea mai multor operații independente, într-un singur răspuns.

RFC 4918

208 Already Reported

Din WebDAV, în interiorul unui răspuns 207: membrii unei colecții legate de mai multe ori nu mai sunt enumerați din nou.

RFC 5842

226 IM Used

Răspuns la un GET cu rezultatul uneia sau mai multor transformări ale resursei (de exemplu o diferență față de o versiune anterioară), nu cu resursa întreagă.

RFC 3229

3xxRedirecționare

300 Multiple Choices

Resursa are mai multe reprezentări, fiecare cu adresa ei, iar serverul dă lista ca utilizatorul sau clientul să aleagă una.

RFC 9110 §15.4.1

301 Moved Permanently

Resursa s-a mutat definitiv la adresa din Location; trimiterile vechi ar trebui înlocuite. Din motive istorice, un client poate transforma un POST în GET la redirecționare; dacă nu vrei asta, folosește 308.

RFC 9110 §15.4.2

302 Found

Resursa e temporar la altă adresă, din Location; pe viitor clientul folosește tot adresa originală. Ca la 301, un POST poate deveni GET; pentru a evita asta există 307.

RFC 9110 §15.4.3

303 See Other

Trimite clientul la altă resursă, cu un GET, ca răspuns indirect la cererea lui. Folosit mai ales după un POST, ca rezultatul să aibă o adresă proprie, care poate fi salvată și păstrată în cache.

RFC 9110 §15.4.4

304 Not Modified

Răspuns la un GET sau HEAD condiționat: resursa nu s-a schimbat față de copia pe care o are clientul, deci serverul nu o mai trimite.

RFC 9110 §15.4.5

305 Use Proxy

Definit într-o versiune anterioară a specificației HTTP și acum depreciat.

RFC 9110 §15.4.6

306 (Unused)

Definit într-o versiune anterioară a specificației; nu mai e folosit, iar codul e rezervat.

RFC 9110 §15.4.7

307 Temporary Redirect

Resursa e temporar la altă adresă, iar clientul nu are voie să schimbe metoda la redirecționare (un POST rămâne POST). Pe viitor se folosește tot adresa originală.

RFC 9110 §15.4.8

308 Permanent Redirect

Mutare definitivă, ca 301; RFC 9110 îl dă drept varianta de folosit când un POST nu trebuie transformat în GET. E mai nou (iunie 2014) decât celelalte coduri de redirecționare, deci s-ar putea să nu fie recunoscut peste tot.

RFC 9110 §15.4.9

4xxGreșeala clientului

400 Bad Request

Serverul nu poate sau nu vrea să proceseze cererea din cauza a ceea ce pare o greșeală a clientului: sintaxă greșită, un mesaj alcătuit greșit.

RFC 9110 §15.5.1

401 Unauthorized

Cererea nu are date de autentificare valide pentru resursă. Serverul trebuie să trimită antetul WWW-Authenticate, cu felul în care se poate autentifica clientul.

RFC 9110 §15.5.2

402 Payment Required

Rezervat pentru folosire viitoare.

RFC 9110 §15.5.3

403 Forbidden

Serverul a înțeles cererea, dar refuză să o îndeplinească. Dacă cererea avea date de autentificare, serverul le consideră insuficiente.

RFC 9110 §15.5.4

404 Not Found

Serverul nu a găsit resursa sau nu vrea să spună că există. Nu spune dacă lipsa e temporară sau definitivă; pentru o lipsă definitivă e preferat 410.

RFC 9110 §15.5.5

405 Method Not Allowed

Metoda (GET, POST…) e cunoscută de server, dar nu e acceptată pentru această resursă. Răspunsul trebuie să conțină antetul Allow, cu metodele acceptate.

RFC 9110 §15.5.6

406 Not Acceptable

Resursa nu are o reprezentare potrivită cu antetele de negociere ale cererii (Accept și celelalte), iar serverul nu vrea să trimită una implicită.

RFC 9110 §15.5.7

407 Proxy Authentication Required

Ca 401, dar autentificarea e cerută de un proxy, care trimite antetul Proxy-Authenticate.

RFC 9110 §15.5.8

408 Request Timeout

Serverul nu a primit cererea completă în timpul cât era dispus să aștepte.

RFC 9110 §15.5.9

409 Conflict

Cererea nu a putut fi îndeplinită din cauza unui conflict cu starea curentă a resursei; utilizatorul ar putea rezolva conflictul și retrimite cererea.

RFC 9110 §15.5.10

410 Gone

Resursa nu mai e disponibilă și, probabil, definitiv. Dacă serverul nu știe dacă e definitiv, se folosește 404.

RFC 9110 §15.5.11

411 Length Required

Serverul refuză cererea fără antetul Content-Length.

RFC 9110 §15.5.12

412 Precondition Failed

Una sau mai multe condiții din antetele cererii s-au dovedit false pe server, deci metoda nu a fost aplicată.

RFC 9110 §15.5.13

413 Content Too Large

Conținutul cererii e mai mare decât poate sau vrea să proceseze serverul.

RFC 9110 §15.5.14

414 URI Too Long

Adresa cerută e mai lungă decât vrea serverul să interpreteze. E rar; apare, de exemplu, când un POST a fost transformat greșit într-un GET cu parametri lungi.

RFC 9110 §15.5.15

415 Unsupported Media Type

Conținutul e într-un format pe care metoda nu îl acceptă pentru această resursă, după Content-Type, Content-Encoding sau după conținutul însuși.

RFC 9110 §15.5.16

416 Range Not Satisfiable

Intervalele din antetul Range au fost refuzate: niciunul nu poate fi satisfăcut sau sunt prea multe intervale mici ori suprapuse.

RFC 9110 §15.5.17

417 Expectation Failed

Așteptarea din antetul Expect nu a putut fi îndeplinită de cel puțin unul dintre serverele de pe drum.

RFC 9110 §15.5.18

418 (Unused)

Rezervat. Un RFC de 1 aprilie (RFC 2324) l-a definit în glumă, iar gluma a fost folosită destul de des încât codul să nu mai poată primi alt rost.

RFC 9110 §15.5.19

421 Misdirected Request

Cererea a ajuns la un server care nu poate sau nu vrea să dea un răspuns autorizat pentru adresa respectivă, de exemplu una pentru care nu e configurat.

RFC 9110 §15.5.20

422 Unprocessable Content

Serverul înțelege formatul conținutului, iar sintaxa e corectă, dar nu poate executa instrucțiunile din el; de exemplu un XML bine format, dar cu date greșite.

RFC 9110 §15.5.21

423 Locked

Din WebDAV: resursa sursă sau destinație a metodei e blocată.

RFC 4918

424 Failed Dependency

Din WebDAV: metoda nu a putut fi aplicată pentru că depindea de o altă acțiune, care a eșuat.

RFC 4918

425 Too Early

Serverul nu vrea să riște procesarea unei cereri care ar putea fi reluată (trimisă în „early data”, la începutul unei conexiuni TLS). Clientul o poate trimite din nou, normal.

RFC 8470

426 Upgrade Required

Serverul refuză cererea pe protocolul curent, dar ar putea-o accepta după ce clientul trece la protocolul indicat în antetul Upgrade.

RFC 9110 §15.5.22

428 Precondition Required

Serverul cere ca cererea să fie condiționată, ca să evite pierderea unei modificări făcute între timp de altcineva.

RFC 6585

429 Too Many Requests

Clientul a trimis prea multe cereri într-un interval de timp (limitare de rată). Răspunsul poate conține antetul Retry-After, cu cât să aștepte.

RFC 6585

431 Request Header Fields Too Large

Antetele cererii sunt prea mari, toate la un loc sau unul singur; cererea poate fi retrimisă cu antete mai mici.

RFC 6585

451 Unavailable For Legal Reasons

Accesul la resursă e refuzat ca urmare a unei cereri legale; răspunsul ar trebui să explice despre ce cerere e vorba.

RFC 7725

5xxGreșeala serverului

500 Internal Server Error

Serverul a întâlnit o situație neașteptată, care l-a împiedicat să îndeplinească cererea.

RFC 9110 §15.6.1

501 Not Implemented

Serverul nu are funcționalitatea cerută, de exemplu nu recunoaște metoda cererii pentru nicio resursă.

RFC 9110 §15.6.2

502 Bad Gateway

Serverul, lucrând ca gateway sau proxy, a primit un răspuns invalid de la serverul din spatele lui.

RFC 9110 §15.6.3

503 Service Unavailable

Serverul nu poate răspunde acum din cauza unei supraîncărcări temporare sau a unei întrețineri programate. Poate trimite antetul Retry-After.

RFC 9110 §15.6.4

504 Gateway Timeout

Serverul, lucrând ca gateway sau proxy, nu a primit la timp răspunsul serverului din spatele lui.

RFC 9110 §15.6.5

505 HTTP Version Not Supported

Serverul nu acceptă versiunea majoră de HTTP folosită în cerere.

RFC 9110 §15.6.6

506 Variant Also Negotiates

Eroare de configurare a serverului: varianta aleasă la negocierea transparentă a conținutului e configurată să negocieze și ea.

RFC 2295

507 Insufficient Storage

Din WebDAV: serverul nu poate stoca ce îi trebuie ca să termine cererea; starea e considerată temporară.

RFC 4918

508 Loop Detected

Din WebDAV: serverul a oprit operația pentru că a dat de o buclă infinită la o cerere cu Depth: infinity.

RFC 5842

510 Not Extended

Cererea nu îndeplinește politica de acces la resursă, adică extensiile HTTP cerute. Registrul IANA îl marchează ca învechit.

RFC 2774

511 Network Authentication Required

Clientul trebuie să se autentifice ca să primească acces la rețea, de exemplu într-o pagină de conectare a unei rețele publice.

RFC 6585

De unde sunt codurile

Lista e registrul oficial al codurilor de stare HTTP, ținut de IANA, fără intervalele nealocate și fără înregistrările temporare. Fiecare explicație urmează textul standardului care definește codul: RFC 9110 pentru cele mai multe, iar pentru celelalte RFC-ul trecut sub explicație (de exemplu RFC 6585 pentru 429 sau RFC 4918 pentru codurile WebDAV).

Numele în engleză (Not Found, Bad Gateway) sunt cele din registrul IANA.

Clasele

Prima cifră spune clasa: 1xx informează (cererea continuă), 2xx spune că cererea a reușit, 3xx trimite clientul în altă parte, 4xx arată o greșeală a clientului (cerere greșită, fără drept de acces, resursă inexistentă), iar 5xx o problemă a serverului. Un client care nu cunoaște un cod îl tratează ca pe codul x00 al clasei lui.

Nimic nu pleacă din browser

Căutarea filtrează lista din pagină, în browserul tău.

Întrebări frecvente

301 sau 308 pentru o mutare definitivă?

Amândouă spun că adresa s-a mutat definitiv. La 301 un client poate transforma un POST în GET, din motive istorice; 308 e cel de folosit când metoda trebuie păstrată (RFC 9110).

Care e diferența dintre 401 și 403?

401 înseamnă că lipsesc date de autentificare valide, iar serverul spune cum te poți autentifica. 403 înseamnă că serverul a înțeles cererea, dar refuză să o îndeplinească; dacă ai trimis date de autentificare, le consideră insuficiente.

↑ ↓ alegi · Enter deschizi · Esc închizi