nazad | soderzhanie | vpered

10 Opisaniya kodov sostoyaniya (Status Code Definitions).

Kazhdyj kod sostoyaniya, opisannyj nizhe, vklyuchaet opisanie metoda (ili metodov), za kotorym on mozhet sledovat' i metainformacii, trebuemoj v otvete.

10.1 1xx - Informacionnye kody.

|tot klass kodov sostoyaniya ukazyvaet predvaritel'nyj (vremennyj) otvet, sostoyashchij tol'ko iz stroki sostoyaniya (Status-Line) i opcional'nyh zagolovkov, i zavershayushchijsya pustoj strokoj. Tak kak HTTP/1.0 ne opredelyal nikakih 1xx kodov sostoyaniya, servery NE DOLZHNY posylat' 1xx otvety HTTP/1.0 klientam, za isklyucheniem eksperimental'nyh uslovij.

10.1.1 100 Prodolzhat', Continue.

Klient mozhet prodolzhat' zapros. |tot promezhutochnyj otvet ispol'zuetsya, dlya togo, chtoby soobshchit' klientu, chto nachal'naya chast' zaprosa byla poluchena i eshche ne otvergnuta serverom. Klientu SLEDUET prodolzhit' posylku ostavshihsya dannyh zaprosa ili, esli zapros uzhe byl vypolnen, ignorirovat' etot otvet. Server DOLZHEN poslat' zaklyuchitel'nyj otvet posle togo, kak zapros budet vypolnen.

10.1.2 101 Pereklyuchenie protokolov, Switching Protocols.

Server ponimaet i zhelaet vypolnit' zapros klienta, esli protokol prikladnoj programmy v etom soedinenii budet izmenen na tot, kotoryj ukazan v pole zagolovka soobshcheniya Upgrade (razdel 14.41). Server pereklyuchit protokol na tot, kotoryj opredelen v pole zagolovka otveta Upgrade neposredstvenno posle pustoj stroki, kotoraya zavershaet otvet s kodom sostoyaniya 101.

Protokol dolzhen byt' pereklyuchen tol'ko togda, kogda eto prineset vygodu. Naprimer, pereklyuchenie na bolee novuyu versiyu HTTP vygodno po sravneniya s ispol'zovaniem bolee staryh versij, a pereklyuchenie na sinhronnyj protokol real'nogo vremeni mozhet byt' vygodno pri predostavlenii resursov, kotorye ispol'zuyut takie vozmozhnosti.

10.2 2xx - Uspeshnye kody.

|tot klass kodov sostoyaniya ukazyvaet, chto zapros klienta byl uspeshno poluchen, ponyat, i prinyat.

10.2.1 200 OK.

Zapros byl udachno vypolnen. Informaciya, vozvrashchaemaya s otvetom zavisit ot metoda, ispol'zuemogo v zaprose. Naprimer:

GET
v otvete predstavlen ob容kt, sootvetstvuyushchij zaproshennomu resursu;
HEAD
v otvete predstavleny polya zagolovka ob容kta (entity-header), sootvetstvuyushchie zaproshennomu resursu. Telo soobshcheniya (message-body) otsutstvuet;
POST
v otvete predstavleno opisanie ob容kta ili soderzhitsya rezul'tat dejstviya;
TRACE
v otvete predstavlen ob容kt, soderzhashchij soobshchenie zaprosa, poluchenogo konechnym serverom.

10.2.2 201 Sozdan, Created.

Zapros byl vypolnen i v rezul'tate byl sozdan novyj resurs. Novyj sozdannyj resurs mozhet byt' vyzvan po URI (odnomu ili neskol'kim), vozvrashchennym v ob容kte otveta; naibolee specificheskij URL dlya resursa otdaetsya v pole zagolovka Location. Pervonachal'nyj server DOLZHEN sozdat' resurs pered vozvratom koda sostoyaniya 201. Esli dejstvie ne mozhet byt' vypolneno nemedlenno, server dolzhen vozvratit' otvet s kodom sostoyaniya 202 (Prinyato, Accepted) vmesto 201.

10.2.3 202 Prinyato, Accepted.

Zapros byl prinyat dlya obrabotki, no obrabotka ne byla zavershena. V konechnom schete zapros MOZHET byt', a MOZHET i ne byt' vypolnen, poskol'ku on MOZHET byt' otvergnut pri fakticheskoj obrabotke. Ne imeetsya nikakoj vozmozhnosti vtorichnoj posylki koda sostoyaniya ot asinhronnoj operacii tipa etoj.

Otvet s kodom sostoyaniya 202 prednamerenno uklonchiv. Cel' ego sostoit v tom, chtoby pozvolit' serveru prinyat' zapros dlya nekotorogo drugogo processa (vozmozhno paketno-orientirovannogo processa, kotoryj vypolnyaetsya tol'ko odin raz v den') i ne trebovat' pri etom, chtoby soedinenie agenta pol'zovatelya s serverom sohranyalos' do zaversheniya processa. Ob容ktu, vozvrashchennomu s etim otvetom SLEDUET soderzhat' indikator tekushchego sostoyaniya zaprosa i libo ssylku na monitor sostoyaniya, libo nekotoruyu ocenku vremeni, kogda pol'zovatel' mozhet ozhidat' zaversheniya vypolneniya zaprosa.

10.2.4 203 Ne avtorskaya informaciya, Non-Authoritative Information.

Vozvrashchennaya v zagolovke ob容kta (entity-header) metainformaciya - eto ne original, dostupnyj na pervonachal'nom servere, a dokument, sobrannyj iz lokal'nyh kopij ili kopij tret'ej storony. Predstavlennyj dokument MOZHET byt' kak podmnozhestvom original'noj versii, tak i soderzhat' svedeniya, kotorye v nej ne byli predstavleny. Naprimer, vklyuchenie lokal'noj annotiruyushchej informaciyu o resurse MOZHET rasshirit' metainformaciyu, izvestnuyu pervonachal'nomu serveru. Ispol'zovanie etogo koda sostoyaniya v otvete ne yavlyaetsya neobhodimym, no mozhet primenyat'sya togda, kogda kod sostoyaniya otveta otlichen ot 200 (OK).

10.2.5 204 Net soderzhimogo, No Content.

Server vypolnil zapros, no net nikakoj novoj informacii, kotoruyu mozhno poslat' obratno. Esli klient - agent pol'zovatelya, emu NE SLEDUET izmenyat' vid dokumenta, kotoryj posluzhil prichinoj zaprosa. |tot otvet prednaznachen prezhde vsego dlya togo, chtoby pozvolit' vvodit' dannye dlya dejstvij, ne izmenyaya vid aktivnogo dokumenta agenta pol'zovatelya. Otvet MOZHET vklyuchat' novuyu metainformaciyu v forme zagolovkov ob容kta (entity-headers), kotorye SLEDUET dobavit' k dokumentu, pokazyvaemomu v nastoyashchee vremya agentom pol'zovatelya.

Otvet s kodom sostoyaniya 204 NE DOLZHEN soderzhat' tela soobshcheniya, i, takim obrazom, vsegda zavershaetsya pervoj pustoj strokoj posle polej zagolovka.

10.2.6 205 Sbrosit' soderzhimoe, Reset Content.

Server vypolnil zapros, i agentu pol'zovatelya SLEDUET otmenit' prosmotr dokumenta, kotoryj iniciiroval zapros. |tot otvet prednaznachen prezhde vsego dlya togo, chtoby pozvolit' vvod dannyh, osushchestvlyaemyj pol'zovatelem, s posleduyushchej ochistkoj formy, v kotoroj sdelan vvod, tak, chtoby pol'zovatel' mog legko iniciirovat' sleduyushchee dejstvie vvoda. Otvet NE DOLZHEN soderzhat' ob容kt.

10.2.7 206 CHastichnoe soderzhimoe, Partial Content.

Server vypolnil chastichnyj GET zapros resursa. Zapros dolzhen soderzhat' pole zagolovka Range (razdel 14.36), ukazyvayushchee zhelaemyj diapazon. Otvet DOLZHEN soderzhat' libo pole zagolovka Content-Range (razdel 14.17), ukazyvayushchee diapazon, vklyuchennyj v otvet, libo tip soderzhimogo (Content-Type) dolzhen byt' ravnym "multipart/byteranges", a polya Content-Range dolzhny soderzhat'sya v kazhdoj chasti. Esli "multipart/byteranges" ne ispol'zuetsya, pole zagolovka Content-Length v otvete DOLZHNO sootvetstvovat' fakticheskomu chislu oktetov (OCTETs), peredannyh v tele soobshcheniya (message-body).

Kesh, kotoryj ne podderzhivaet zagolovki Range i Content-Range NE DOLZHEN keshirovat' otvety s kodom sostoyaniya 206.

10.3 3xx - Perenapravlenie.

|tot klass kodov sostoyaniya ukazyvaet, chto dlya vypolneniya zaprosa agentu pol'zovatelya neobhodimo pridprinyat' dopolnitel'noe dejstvie. Trebuemoe dejstvie MOZHET byt' vypolneno agentom pol'zovatelya bez vzaimodejstviya s pol'zovatelem, togda i tol'ko togda, kogda vo vtorom zaprose ispol'zuetsya metod GET ili HEAD. Agentu pol'zovatelya NE SLEDUET avtomaticheski perenapravlyat' zapros bolee 5 raz, tak kak takie pereadresacii obychno ukazyvayut beskonechnyj cikl.

10.3.1 300 Mnozhestvennyj vybor, Multiple Choices.

Zaproshennyj resurs imeet neskol'ko predstavlenij, i mozhno ispol'zovat' lyuboe iz perechislennyh. Kazhdoe predstavlenie imeet svoe raspolozhenie i informaciyu dlya agenta po upravleniyu dialogom (razdel 12), predstavlennuyu takim obrazom, chto pol'zovatel' (ili agent pol'zovatelya) mozhet vybrat' naibolee podhodyashchee predstavlenie i perenapravit' zapros k nemu.

Esli zapros byl otlichen ot HEAD, to otvetu SLEDUET soderzhat' ob容kt, vklyuchayushchij spisok harakteristik i adresov, iz kotorogo pol'zovatel' ili agent pol'zovatelya mozhet vybrat' odin naibolee podhodyashchij. Format ob容kta opredelyaetsya media tipom, ukazannym v pole zagolovka Content-Type. V zavisimosti ot formata i vozmozhnostej agenta pol'zovatelya, vybor naibolee podhodyashchego predstavleniya mozhet vypolnyat'sya avtomaticheski. Odnako, eta specifikaciya ne opredelyaet kakogo-libo standarta dlya avtomaticheskogo vybora.

Esli server imeet predstavlenie po umolchaniyu (naibolee predpochtitel'noe), to emu SLEDUET vklyuchit' URL etogo predstavleniya v pole Location; agenty pol'zovatelya MOGUT ispol'zovat' znachenie polya Location dlya avtomaticheskoj pereadresacii. |tot otvet yavlyaetsya keshiruemym, esli ne oboznacheno inogo.

10.3.2 301 Postoyanno perenesen, Moved Permanently.

Zaproshennomu resursu byl naznachen novyj postoyannyj URI, i lyubye budushchie ssylki na etot resurs SLEDUET vypolnyat', ispol'zuya odin iz vozvrashchennyh URI. Klientam s vozmozhnostyami redaktirovaniya svyazej SLEDUET avtomaticheski pereopredelit' ssylki na zaprashivaemyj URI (Request-URI), ispol'zuya odnu ili neskol'ko novyh ssylok, vozvrashchennyh serverom v teh mestah, gde eto vozmozhno. |tot otvet yavlyaetsya keshiruemym, esli ne oboznacheno inogo.

Esli novyj URI - eto raspolozhenie, to otvetu SLEDUET soderzhat' URL v pole Location. Esli metod zaprosa byl ne HEAD, to ob容ktu otveta SLEDUET soderzhat' korotkoe gipertekstovoe primechanie s giperssylkoj na novyj (ili novye) URI.

Esli kod sostoyaniya 301 byl poluchen v otvet na zapros, otlichnyj ot GET ili HEAD, agent pol'zovatelya NE DOLZHEN avtomaticheski perenaznachat' zapros, poka net podtverzhdeniya pol'zovatelya, tak kak inache usloviya zaprosa izmenyatsya.

Obratite vnimanie: Pri avtomaticheskom perenaznachenii zaprosa POST posle polucheniya koda sostoyaniya 301, nekotorye sushchestvuyushchie HTTP/1.0 agenty pol'zovatelya oshibochno izmenyat metod zaprosa na GET.

10.3.3 302 Vremenno peremeshchen, Moved Temporarily.

Zaproshennyj resurs vremenno nahoditsya pod drugim URI. Tak kak pereadresaciya mozhet byt' izmenena v lyuboj moment, klientu SLEDUET prodolzhat' ispol'zovat' zaprashivaemyj URI (Request-URI) v budushchih zaprosah. Keshiruemost' etogo otveta zavisit tol'ko ot soderzhimogo polej zagolovka Cache-Control ili Expires (esli etih polej net, to otvet ne keshiruetsya).

Esli novyj URI - eto raspolozhenie, to otvetu SLEDUET soderzhat' URL v pole Location. Esli metod zaprosa byl ne HEAD, to ob容ktu otveta SLEDUET soderzhat' korotkoe gipertekstovoe primechanie s giperssylkoj na novyj (ili novye) URI.

Esli kod sostoyaniya 302 byl poluchen v otvet na zapros, otlichnyj ot GET ili HEAD, agent pol'zovatelya NE DOLZHEN avtomaticheski perenaznachat' zapros, poka net podtverzhdeniya pol'zovatelya, tak kak inache usloviya zaprosa izmenyatsya.

Obratite vnimanie: Pri avtomaticheskom perenaznachenii zaprosa POST posle polucheniya koda sostoyaniya 302, nekotorye sushchestvuyushchie HTTP/1.0 agenty pol'zovatelya oshibochno izmenyat metod zaprosa na GET.

10.3.4 303 Smotret' drugoj, See Other.

Otvet na zapros mozhet byt' najden pod drugim URI i ego SLEDUET zaprashivat', ispol'zuya metod GET dlya etogo resursa. |tot metod sushchestvuet prezhde vsego dlya togo, chtoby proizvodit' vyvod dannyh aktivizirovannogo metodom POST scenariya, ispol'zuya perenapravlenie agenta pol'zovatelya na ukazannyj resurs. Novyj URI - eto ne ssylka, zamenyayushchaya pervonachal'no zaproshennyj resurs. Otvet s kodom sostoyaniya 303 ne keshiruem, no otvet na vtoroj (perenaznachennyj) zapros MOZHET byt' keshirovan.

Esli novyj URI - eto raspolozhenie, to otvetu SLEDUET soderzhat' URL v pole Location. Esli metod zaprosa byl ne HEAD, to ob容ktu otveta SLEDUET soderzhat' korotkoe gipertekstovoe primechanie s giperssylkoj na novyj (ili novye) URI.

10.3.5 304 Ne modificirovan, Not Modified.

Esli klient vypolnil uslovnyj GET zapros, i dostup razreshen, no dokument ne izmenilsya, to serveru SLEDUET otvetit', ispol'zuya etot kod sostoyaniya. Otvet NE DOLZHEN soderzhat' tela soobshcheniya.

Otvet DOLZHEN soderzhat' sleduyushchie polya zagolovka:

Esli uslovnyj GET ispol'zuet strogoe sravnenie kesha (strong cache validator) (smotret' razdel 13.3.3), otvetu NE SLEDUET soderzhat' drugih zagolovkov ob容kta (entity-headers). Inache (to est', esli uslovnyj GET ispol'zuet slaboe sravnenie (weak validator)), otvet NE DOLZHEN soderzhat' drugih zagolovkov ob容kta; eto predotvrashchaet nesoglasovannosti mezhdu keshirovannymi telami ob容ktov (entity-bodies) i modificirovannymi zagolovkami.

Esli otvet s kodom sostoyaniya 304 ukazyvaet ob容kt, v nastoyashchee vremya ne keshirovannyj, to kesh DOLZHEN ignorirovat' otvet i povtorit' zapros bez uslovnogo vyrazheniya.

Esli kesh ispol'zuet poluchennyj otvet s kodom sostoyaniya 304 dlya modificikacii vhozhdeniya kesha, kesh DOLZHEN modificirovat' vhozhdenie tak, chtoby otrazit' lyubye novye znacheniya polej, dannye v otvete.

Otvet s kodom sostoyaniya 304 NE DOLZHEN vklyuchat' tela soobshcheniya (message-body), i, takim obrazom, vsegda zavershaetsya pervoj pustoj strokoj posle polej zagolovka.

10.3.6 305 Ispol'zujte proksi-server, Use Proxy.

Obrashchenie k zaproshennomu resursu DOLZHNO proizvodit'sya cherez proksi-server, ukazannyj v pole Location. V pole Location ukazan URL proksi-servera. Ozhidaetsya, chto poluchatel' povtorit zapros cherez proksi-server.

10.4 4xx - Kody oshibok klienta.

Klass kodov sostoyaniya 4xx prednaznachen dlya sluchaev, kogda klient, vozmozhno, dopustil oshibku. Za isklyucheniem otveta na zapros HEAD, serveru SLEDUET vklyuchit' ob容kt, soderzhashchij ob座asnenie oshibochnoj situacii, i ob座asnenie, yavlyaetsya li ona vremennoj ili postoyannoj. |ti kody sostoyaniya primenimy k lyubomu metodu zaprosa. Agentam pol'zovatelya SLEDUET pokazyvat' pol'zovatelyu lyuboj vklyuchennyj ob容kt.

Obratite vnimanie: Esli klient posylaet dannye, to realizacii servera, ispol'zuyushchej TCP, sleduet garantirovat', chto klient podtverdil poluchenie paketa(ov), soderzhashchego otvet, prezhde chem server zakroet soedinenie. Esli klient prodolzhaet posylat' dannye serveru posle zakrytiya soedineniya, TCP stek servera poshlet paket sbrosa (RST) klientu, a TCP stek klienta, v svoyu ochered', mozhet steret' klientskie nepodtverzhdennye vhodnye bufera prezhde, chem oni budut prochitany i interpretirovany prilozheniem HTTP.

10.4.1 400 Isporchennyj Zapros, Bad Request.

Zapros ne mozhet byt' ponyat serverom iz-za malformed sintaksisa. Klientu NE SLEDUET povtoryat' zapros bez modifikacij.

10.4.2 401 Nesankcionirovanno, Unauthorized.

Zapros trebuet ustanovleniya podlinnosti pol'zovatelya. Otvet DOLZHEN vklyuchat' pole zagolovka WWW-Authenticate (razdel 14.46), soderzhashchee vyzov (challenge), primenimyj k zaproshennomu resursu. Klient MOZHET povtorit' zapros s podhodyashchim polem zagolovka Authorization (razdel 14.8). Esli zapros uzhe vklyuchaet rekomendacii ustanovleniya podlinnosti (Authorization credentials) v pole Authorization, to otvet s kodom sostoyaniya 401 ukazyvaet, chto v ustanovlenii podlinnosti etim rekomendaciyam otkazano. Esli otvet s kodom sostoyaniya 401 soderzhit tot zhe samyj vyzov, chto i predshestvuyushchij otvet, a agent pol'zovatelya uzhe delal popytku ustanovleniya podlinnosti po krajnej mere odin raz, to SLEDUET pokazat' pol'zovatelyu ob容kt, kotoryj byl dan v otvete, tak kak etot ob容kt MOZHET vklyuchat' relevant diagnosticheskuyu informaciyu. Ustanovlenie podlinnosti dostupa v protokole HTTP opisyvaetsya v razdele 11.

10.4.3 402 Trebuetsya oplata, Payment Required.

|tot kod zarezervirovan dlya budushchego ispol'zovaniya.

10.4.4 403 Zapreshcheno, Forbidden.

Server ponyal zapros, no otkazyvaetsya vypolnyat' ego. Ustanovlenie podlinnosti (Authorization) ne pomozhet, i zapros NE DOLZHEN byt' povtoren. Esli metod zaprosa ne HEAD i server zhelaet ukazat', pochemu zapros ne byl vypolnen, emu SLEDUET opisat' prichinu otkaza v ob容kte. |tot kod sostoyaniya obychno ispol'zuetsya, kogda server ne zhelaet ukazyvat' tochnuyu prichinu otkaza, ili kogda nikakoj drugoj otvet ne podhodit.

10.4.5 404 Ne najden, Not Found.

Server ne nashel nichego, sootvetstvuyushchego dannomu zaprashivaemomu URI (Request-URI). Nikak ne soobshchaetsya yavlyaetsya li takoe polozhenie vremennym ili postoyannym.

Esli server ne zhelaet delat' dannuyu informaciyu dostupnoj klientu, to vmesto etogo koda sostoyaniya mozhet ispol'zovat'sya kod sostoyaniya 403 (Zapreshcheno, Forbidden). Kod sostoyaniya 410 (Udalen, Gone) SLEDUET ispol'zovat', esli server znaet cherez nekotoryj vnutrenne konfiguriruemyj mehanizm, chto staryj resurs bolee nedostupen, no ne znaet novogo adresa dlya peresylki.

10.4.6 405 Metod ne dozvolen, Method Not Allowed.

Metod, opredelennyj v stroke zaprosa (Request-Line) ne dozvoleno primenyat' dlya resursa, identificirovannogo zaprashivaemym URI (Request-URI). Otvet DOLZHEN vklyuchat' zagolovok Allow, soderzhashchij spisok dopustimyh metodov dlya zaproshennogo resursa.

10.4.7 406 Ne priemlem, Not Acceptable.

Resurs, identificiruemyj zaprosom, imeet vozmozhnosti generacii tol'ko takih ob容ktov otveta, kotorye imeyut harakteristiki soderzhimogo (content characteristics), ne soglasuyushchiesya s zagolovkami priema (accept headers), predstavlennymi v zaprose.

Esli eto byl ne zapros HEAD, to v otvet SLEDUET vklyuchit' ob容kt, soderzhashchij spisok dostupnyh harakteristik ob容kta i adresa (locations), iz kotoryh pol'zovatel' ili agent pol'zovatelya mozhet vybrat' naibolee podhodyashchij. Format ob容kta opredeleyatsya media tipom, predstavlennym v pole zagolovka Content-Type. V zavisimosti ot formata i vozmozhnostej agenta pol'zovatelya, vybor naibolee podhodyashchego varianta mozhet vypolnyat'sya avtomaticheski. Odnako, eta specifikaciya ne opredelyaet nikakogo standarta dlya avtomaticheskogo vybora.

Obratite vnimanie: HTTP/1.1 servery pozvolyayut vozvrashchat' otvety, kotorye ne priemlemy soglasno zagolovkam priema (accept headers), predstavlennym v zaprose. V nekotoryh sluchayah, eto mozhet byt' dazhe predpochtitel'no po sravneniyu s posylkoj otveta s kodom sostoyaniya 406. Agentam pol'zovatelya neploho by rassmatrivat' zagolovki postupivshego otveta, chtoby opredelit', yavlyaetsya li on priemlemym. Esli otvet nedopustim, agentu pol'zovatelya SLEDUET vremenno ostanovit'sya, chtoby poluchit' bol'she dannyh i sprosit' pol'zovatelya o dal'nejshih dejstviyah.

10.4.8 407 Trebuetsya ustanovlenie podlinnosti cherez proksi-server, Proxy Authentication Required.

|tot kod podoben kodu 401 (Nesankcionirovanno, Unauthorized), no ukazyvaet, chto klient DOLZHEN snachala ustanovit' svoyu podlinnost' (authenticate) proksi-serveru. Proksi-server DOLZHEN vozvratit' pole zagolovka Proxy-Authenticate (razdel 14.33), soderzhashchee vyzov (challenge), primenyaemyj proksi-serverom dlya zaproshennogo resursa. Klient MOZHET povtorit' zapros s podhodyashchim polem zagolovka Proxy-Authorization (razdel 14.34). Ustanovlenie podlinnosti dostupa v protokole HTTP opisyvaetsya v razdele 11.

10.4.9 408 Isteklo vremya ozhidaniya zaprosa, Request Timeout.

Klient ne proizvel zapros v techenie vremeni, kotoroe server gotov zhdat'. Klient MOZHET povtorit' zapros bez modifikacij pozzhe.

10.4.10 409 Konflikt, Conflict.

Zapros ne byl vypolnen iz-za konflikta s tekushchim sostoyaniem resursa. |tot kod pozvolyaetsya tol'ko v situaciyah, kogda ozhidaetsya, chto pol'zovatel' mozhet reshit' konflikt i povtorno peredat' zapros. Telu otveta SLEDUET soderzhat' dostatochnoe kolichestvo informacii dlya pol'zovatelya, chtoby on mog raspoznat' istochnik konflikta. V ideale, ob容kt otveta dolzhen vklyuchat' dostatochno informacii dlya pol'zovatelya ili agenta pol'zovatelya dlya resheniya problemy; odnako eto mozhet ne byt' vozmozhno, da i ne trebuetsya.

Konflikty, naibolee veroyatno, budut voznikat' v otvet na zapros PUT. Esli ispol'zuetsya versifikaciya, i ob容kt, kotoryj dolzhen byt' pomeshchen, vklyuchaet izmeneniya resursa, kotorye nahodyatsya v protivorechii so sdelannymi ran'she kakim-libo zaprosom (tret'ej storony), server MOZHET ispol'zovat' otvet s kodom sostoyaniya 409, chtoby pokazat', chto on ne mozhet vypolnit' zapros. V etom sluchae, ob容ktu otveta SLEDUET soderzhat' spisok otlichij dvuh versij v formate, opredelennom polem zagolovka otveta Content-Type.

10.4.11 410 Udalen, Gone.

Zaproshennyj resurs bol'she ne dostupen na servere, i net nikakogo adresa dlya perenapravleniya zaprosa. Takoe sostoyanie SLEDUET rassmatrivat' kak postoyannoe. Klientam s vozmozhnostyami redaktirovaniya gipersvyazej SLEDUET udalit' ssylki na zaprashivaemyj URI (Request-URI) posle odobreniya pol'zovatelem. Esli server ne znaet, ili ne mozhet opredelit', yavlyaetsya li takoe polozhenie postoyannym ili net, to emu SLEDUET vmesto etogo koda ispol'zovat' kod sostoyaniya 404 (Ne najden, Not Found). |tot otvet yavlyaetsya keshiruemym, esli ne oboznacheno inogo.

Otvet s kodom sostoyaniya 410 prednaznachen prezhde vsego dlya togo, chtoby pomoch' v soprovozhdenii WWW, uvedomlyaya poluchatelya, chto resurs prednamerenno nedostupen i chto vladel'cy servera zhelayut, chtoby udalennye svyazi, ukazyvayushchie na etot resurs byli udaleny. Takoe sluchaetsya v osnovnom dlya ogranichennyh po vremeni, reklamnyh servisov i dlya resursov, prinadlezhashchih lichnostyam, bol'she ne zanimayushchimsya sajtom. Ne obyazatel'no otmechat' vse postoyanno nedostupnye resursy kak "udalennye" ("gone") ili hranit' zapis' v techenie lyubogo otrezka vremeni - eto predostavlyaetsya na usmotrenie vladel'ca servera.

10.4.12 411 Trebuetsya dlina, Length Required.

Server otkazyvaetsya prinimat' zapros s neopredelennym Content-Length. Klient MOZHET povtorit' zapros, esli dobavit dopustimoe pole zagolovka Content-Length, soderzhashchee dlinu tela soobshcheniya (message-body) v soobshchenii zaprosa.

10.4.13 412 Preduslovie neverno, Precondition Failed.

Preduslovie, predstavlennoe odnim ili neskol'kimi polyami zagolovka zaprosa (request-header), okazalos' lozhnym pri proverke serverom. |tot kod otveta pozvolyaet klientu pomestit' predusloviya na tekushchuyu metainformaciyu resursa (dannye polej zagolovka) i, takim obrazom, predotvratit' primenenie zaproshennogo metoda k resursu, otlichnomu ot togo, dlya kotorogo prednaznachen metod.

10.4.14 413 Ob容kt zaprosa slishkom bol'shoj, Request Entity Too Large.

Server otkazyvaetsya obrabatyvat' zapros, potomu chto ob容kt zaprosa bol'she, chem server zhelaet ili sposoben obrabotat'. Server mozhet zakryt' soedinenie, chtoby ne dat' klientu vozmozhnost' prodolzhit' zapros.

Esli eto vremennoe sostoyanie, to serveru SLEDUET vklyuchit' pole zagolovka Retry-After dlya ukazaniya vremeni, cherez kotoroe klient mozhet snova povtorit' zapros.

10.4.15 414 URI zaprosa slishkom dlinnyj, Request-URI Too Long.

Server otkazyvaetsya obsluzhivat' zapros, potomu chto zaprashivaemyj URI (Request-URI) dlinnee, chem server zhelaet interpretirovat'. |to redkoe sostoyanie, kotoroe, po vsej veroyatnosti, proishodit tol'ko togda, kogda klient nepravil'no preobrazoval zapros POST k zaprosu GET s dlinnoj informaciej zaprosa, libo kogda klient popal v "chernuyu dyru" URL perenapravleniya (naprimer, perenapravlennyj URL prefiks ukazyvaet na svoj suffiks), ili kogda na server proizvoditsya napadenie klientom, pytayushchimsya ekspluatirovat' lazejki v sekretnosti, imeyushchiesya v nekotoryh serverah, ispol'zuyushchih bufera fiksirovannoj dliny dlya chteniya ili manipulirovaniya s zaprashivaemym URI (Request-URI).

10.4.16 415 Nepodderzhivaemyj media tip, Unsupported Media Type.

Server otkazyvaetsya obsluzhivat' zapros, potomu chto ob容kt zaprosa nahoditsya v formate, ne podderzhivaemom zaproshennym resursom dlya zaproshennogo metoda.

10.5 5xx - Kody oshibok servera.

Kody sostoyaniya, nachinayushchiesya s cifry "5" ukazyvayut sluchai, v kotoryh server znaet, chto dopustil oshibku ili nesposoben vypolnit' zapros. Otvechaya na zapros, za isklyucheniem zaprosa HEAD, serveru SLEDUET vklyuchit' ob容kt, soderzhashchij ob座asnenie oshibochnoj situacii i informaciyu, yavlyaetsya li eto polozhenie vremennym ili postoyannym. Agentam pol'zovatelya SLEDUET pokazyvat' pol'zovatelyu lyuboj vklyuchennyj ob容kt. |ti kody sostoyaniya primenimy k lyubomu metodu zaprosa.

10.5.1 500 Vnutrennyaya oshibka servera, Internal Server Error.

Server stolknulsya s nepredvidennym usloviem, kotoroe ne pozvolyaet emu vypolnit' zapros.

10.5.2 501 Ne realizovano, Not Implemented.

Server ne podderzhivaet funkcional'nye vozmozhnosti, trebuemye dlya vypolneniya zaprosa. |tot otvet sootvetstvuet sostoyaniyu, kogda server ne raspoznaet metod zaprosa i ne sposoben obespechiti' ego dlya lyubogo resursa.

10.5.3 502 Oshibka shlyuza, Bad Gateway.

Server, dejstvuya v kachestve shlyuza ili proksi-servera, poluchil nedopustimyj otvet ot sleduyushchego servera v cepochke zaprosov, k kotoromu obratilsya pri popytke vypolnit' zapros.

10.5.4 503 Servis nedostupen, Service Unavailable.

Server v nastoyashchee vremya ne sposoben obrabotat' zapros iz-za vremennoj peregruzki ili obsluzhivaniya servera. |to vremennoe uslovie, kotoroe budet oblegcheno posle nekotoroj zaderzhki. Esli izvestna prodolzhitel'nost' zaderzhki, ona mozhet byt' ukazana v zagolovke Retry-After. Esli Retry-After ne prisutstvuet v otvete, klientu SLEDUET obrabatyvat' etot otvet kak otvet s kodom 500.

Obratite vnimanie: sushchestvovanie koda sostoyaniya 503 ne podrazumevaet, chto server dolzhen ispol'zovat' ego, kogda peregruzhen. Nekotorye servera mogut prosto zakryvat' soedinenie.

10.5.5 504 Isteklo vremya ozhidaniya ot shlyuza, Gateway Timeout.

Server, dejstvuya v kachestve shlyuza ili proksi-servera, ne poluchil svoevremennogo otveta ot sleduyushchego servera v cepochke zaprosov, k kotoromu obratilsya pri popytke vypolnit' zapros.

10.5.6 505 Ne podderzhivaemaya versiya HTTP, HTTP Version Not Supported.

Server ne podderzhivaet, ili otkazyvaetsya podderzhivat', versiyu HTTP protokola, kotoraya ispol'zuetsya v soobshchenii zaprosa. Server ukazyvaet, chto ne sposoben ili ne zhelaet vypolnyat' zapros, ispol'zuya tu zhe samuyu major versiyu, chto i klient, kak opisano v razdele 3.1, v drugih soobshcheniyah. Otvetu SLEDUET soderzhat' ob容kt, opisyvayushchij, pochemu eta versiya ne podderzhivaetsya, i kakie drugie protokoly podderzhivayutsya etim serverom.


Copyright  ©  1998 Alex Simonoff (http://www.omsk.com/Leshik/), All Rights Reserved.


nazad | soderzhanie | vpered