Վեբ մշակման աշխարհում HTTP սխալի կոդերը կենսական դեր են խաղում օգտատերերի փորձի և կայքի հեղինակության վրա ազդելու գործում: Այս հոդվածում մենք կքննարկենք սերվերի սխալի կոդերի ամբողջական ցանկը, կվերլուծենք դրանց նշանակությունը և կսովորենք, թե ինչպես արդյունավետ կերպով մեկնաբանել սերվերի պատասխանի կոդերը՝ խնդիրները լուծելու և վեբ հավելվածների աշխատանքը օպտիմալացնելու համար:
Ինչ է HTTP արձագանքման կոդը
HTTP պատասխանի կոդը վեբ սերվերների լեզուն է, որը բրաուզերի հարցումները թարգմանում է հասկանալի հրահանգների: Դա նման է բանաստեղծի, ով պատասխանում է վիրտուալ հարցերին, դրանց տալիս իմաստ ու ուղղություն։ Պատասխանի կոդերը միշտ չէ, որ HTTP սխալի կոդեր են: Օրինակ, «200 OK» նշանակում է, որ ամեն ինչ կարգին է, բայց HTTP Error «404 Not Found» նշանակում է, երբ էջը կորչում է վիրտուալ տարածքում: Յուրաքանչյուր կոդ սերվերի վիճակի յուրահատուկ արտահայտություն է, որի վերծանումը թույլ է տալիս հասկանալ, թե ինչ է կատարվում վիրտուալ աշխարհի մյուս կողմում։
1xx կոդեր (Տեղեկություններ)
HTTP արձանագրության 1xx կարգավիճակի կոդերը մի տեսակ առաջին հղում են սերվերի և հաճախորդի միջև երկխոսության մեջ: Հարցմանը ամբողջական պատասխան տալու փոխարեն նրանք տեղեկատվություն են տրամադրում ընթացիկ կարգավիճակի մասին՝ ավելի արդյունավետ դարձնելով տվյալների փոխանակումը: Եկեք ավելի սերտ նայենք դրանց.
100 Շարունակել. HTTP պատասխանի կոդը, որում սերվերը կանաչ լույս է տալիս օգտատիրոջը՝ թույլ տալով նրան ապահով շարունակել մեծ հարցում ուղարկելը:
101 Փոխանցման արձանագրություններ. Սերվերը հաճախորդին ասում է, որ փոխում է խաղի կանոնները, օրինակ՝ HTTP-ից տեղափոխվում է ավելի ապահով HTTPS: Այս դեպքում արձանագրության փոփոխության համար օգտագործվում է «Upgrade» վերնագիրը:
102 Մշակում. Այս կոդը նման է հաղորդագրության, որ սերվերն ընդունել է հարցումը, բայց դեռ զբաղված է բարդ գործողությամբ:
103 Վաղ ակնարկներ. Այստեղ սերվերը մի քանի ինդիկատիվ վերնագրեր է ուղարկում հաճախորդին հիմնական պատասխանից առաջ՝ զգուշացնելով մի բանի մասին, որը կարող է համապատասխան լինել մոտ ապագայում։
2xx կոդը (հաջողված)
2xx խմբում HTTP սխալի կոդերը ցույց են տալիս սերվերից ստացված հարցումը: Նրանք, ըստ էության, հանդես են գալիս որպես «կանաչ լույս» վեբ հաղորդակցության շրջանակներում՝ հաստատելով, որ ամեն ինչ ընթանում է ըստ պլանի և հաջողությամբ ավարտված է։
200 OK. Այս կարգավիճակը օգտագործվում է, երբ սերվերը առանց խնդիրների մշակում է հարցումը GET մեթոդով և ի պատասխան վերադարձնում է պահանջված տվյալները: «Content-Type» վերնագիրը հաղորդում է պատասխանի բովանդակության տեսակը: Այն պարզապես տեղեկացնում է հաճախորդին, որ հարցումը հաջողվել է:
201 Ստեղծվել է. Այստեղ սերվերը հայտարարում է նոր ռեսուրսի ստեղծման մասին։
202 Ընդունված. Սերվերը թույլ է տալիս օգտվողին իմանալ, որ հարցումն ընդունվել է, բայց պատասխանելու համար ժամանակ կպահանջվի:
203 Ոչ հեղինակավոր տեղեկատվություն. Այս կոդը հաճախորդին տրամադրում է տվյալներ, որոնք կարող են պաշտոնական չլինել, բայց կարող են օգտագործվել համեմատության համար:
204 Բովանդակություն չկա. Սերվերը մշակել է հարցումը, սակայն լրացուցիչ բովանդակություն չի վերադարձնում:
205 Վերականգնել բովանդակությունը. Այստեղ հաճախորդին հանձնարարվում է վերականգնել ընթացիկ տեսքը կամ տվյալները ուղարկելուց հետո:
206 Մասնակի բովանդակություն. Այս դեպքը ցույց է տալիս, որ պատասխանը պարունակում է պահանջվող բովանդակության միայն մի մասը: «Content-Range» վերնագիրը ցույց է տալիս մասնակի բովանդակության տիրույթը:
207 Բազմակի կարգավիճակ: Սերվերը հաջողությամբ կատարել է հաճախորդի կողմից բազմաֆունկցիոնալ հարցումը, և պատասխանը պարունակում է տեղեկատվություն յուրաքանչյուր գործողության կարգավիճակի մասին:
226 IM Օգտագործված. Այս կոդը ցույց է տալիս, որ սերվերն օգտագործել է Incremental Metadata (IM) մեթոդը և պատասխանել է հաճախորդին փոխանցելով միայն փոփոխված ռեսուրսի մասերը:
3xx կոդեր (վերահղումներ)
HTTP արձանագրության 3xx կոդերը նման են ցուցիչների, որոնք ուղղորդում են օգտվողին դեպի նոր ռեսուրսի տեղակայում: Նրանք տեղեկացնում են հաճախորդին, որ անհրաժեշտ է հետագա քայլեր ձեռնարկել պահանջվող բովանդակությունը ստանալու կամ այլ ռեսուրս վերաուղղորդվելու համար: Եկեք խորացնենք դրանցից յուրաքանչյուրի մանրամասները.
300 բազմակի ընտրություն. Հաճախորդը ազդանշան է ստանում, որ ռեսուրսի համար կան մի քանի հնարավոր վայրեր և ի պատասխան նրան տրվում է ընտրություն: Ընթացիկ հանգամանքներում «Գտնվելու վայրը» վերնագիրը կարող է ցույց տալ ռեսուրսի այլընտրանքային տարբերակները:
301 Մշտապես տեղափոխվել է: Սերվերը հայտնում է օգտվողին, որ ռեսուրսը մշտապես տեղափոխվել է այլ վայր:
302 Գտնվել. Այս HTTP կոդը նման է ժամանակավոր վերահղման: Սերվերը սպառողին տեղեկացնում է, որ ռեսուրսը ժամանակավորապես հասանելի է այլ URL-ով: «Գտնվելու վայրը» վերնագիրը ցույց է տալիս ժամանակավոր վերահղման նոր URL-ը:
303 Տե՛ս Այլ. Հաճախորդին ասվում է, որ ռեսուրսը հասանելի է այլ URL-ով և պետք է GET հարցում կատարի այս նոր հասցեով:
304 Չփոփոխված. Այս կարգավիճակը հաճախորդին ասում է, որ ռեսուրսը մնացել է անփոփոխ վերջին հարցումից հետո և նորից ներբեռնման կարիք չունի: Հարցում կատարելիս «If-Modified-Since» վերնագիրն օգտագործվում է ստուգելու՝ արդյոք ռեսուրսը փոփոխված է:
305 Օգտագործեք վստահված անձ: Որպես պատասխան՝ սերվերը հայտնում է, որ այն պետք է օգտագործի նշված վստահված սերվերը՝ պահանջվող ռեսուրսին մուտք գործելու համար:
306 (վերապահված) — Կոդը վերապահված է, բայց իրականում չի օգտագործվում։
307 Ժամանակավոր վերահղում. Այս կոդը նման է 302 Found-ին, բայց պահանջում է, որ հաճախորդը մնա հարցման մեթոդի մեջ, որն օգտագործվել է սկզբնական հարցումում:
308 Մշտական վերահղում. Ցույց է տալիս, որ ռեսուրսը մշտական տեղաշարժ է կատարել դեպի նոր URI, և հաճախորդը պետք է օգտագործի նոր URI-ն ապագա բոլոր հարցումների համար:
4xx HTTP սխալ (հաճախորդի սխալներ)
HTTP 4xx սխալի կոդերը ցույց են տալիս հաճախորդի սխալները: Սա նշանակում է, որ խնդիրը օգտատիրոջ կողմից է, օրինակ՝ վեբ բրաուզերի կամ հավելվածի:
400 Վատ խնդրանք. Սերվերը չի կարող մշակել հարցումը շարահյուսական սխալների, անվավեր տվյալների կամ հաճախորդի կողմից այլ սխալների պատճառով:
401 Չլիազորված. Սերվերը չի կարող մշակել հարցումը շարահյուսական սխալների, անվավեր տվյալների կամ հաճախորդի կողմից այլ սխալների պատճառով:
402 Պահանջվում է վճարում. Կոդն այս պահին ակտիվ չէ և պահպանված է հետագա օգտագործման համար։ Այն կարող է ցույց տալ, որ պետք է վճարել նախքան ապագայում ռեսուրս մուտք գործելը:
HTTP սխալ 403 արգելված է: Հաճախորդը չունի պահանջվող ռեսուրս մուտք գործելու բավարար իրավունքներ:
404 Չգտնվեց: Պահանջվող ռեսուրսը գոյություն չունի սերվերում: Սա օգտվողների ամենատարածված սխալներից մեկն է:
405 մեթոդը չի թույլատրվում. Սերվերը չի աջակցում նշված հարցման մեթոդին այս ռեսուրսի ընթացքում: «Թույլատրել» վերնագիրը ցույց է տալիս ռեսուրսի թույլատրելի մեթոդները: Այս ծածկագրով,
406 Անընդունելի է. Սերվերը չի կարող տրամադրել տվյալներ այնպիսի ձևաչափով, որը կարող է ընդունվել հաճախորդի կողմից:
Պահանջվում է 407 վստահված անձի նույնականացում. Պահանջվող ռեսուրս մուտք գործելու համար պահանջվում է վավերացում պրոքսի սերվերում:
408 Հարցման ժամանակի ավարտ. Սերվերը սպասում էր հաճախորդից հարցում ստանալուն, սակայն ժամանակն ավարտվեց: «Retry-After» վերնագիրը կարող է ցույց տալ այն ժամանակը, որից հետո հարցումը կարող է կրկին փորձարկվել:
409 Հակամարտություն. Հարցումը չի կարող կատարվել ընթացիկ ռեսուրսի վիճակի հետ կոնֆլիկտի պատճառով:
410 Անցել է. Պահանջվող ռեսուրսը նախկինում գոյություն ուներ, սակայն այժմ ջնջվել է, և դրա վերականգնումը չի սպասվում:
411 Պահանջվում է երկարություն. Սերվերը պահանջում է հարցումի մեջ նշել բովանդակության երկարությունը. այս տեղեկատվության բացակայությունը համարվում է սխալ:
412 Նախապայման Չհաջողվեց. Հարցումի նախապայմանը չկատարված է, որը խանգարում է այն կատարել:
413 Բեռը չափազանց մեծ է. Հարցման տվյալների չափը գերազանցում է սերվերի սահմանները:
414 URI չափազանց երկար. URI-ի երկարությունը հարցումում գերազանցում է ընդունելի սահմանները:
415 Չաջակցվող լրատվամիջոցի տեսակ. Սերվերը չի կարող մշակել հարցման մեջ նշված տվյալների տեսակը:
416 միջակայքը բավարար չէ. HTTP սխալ, երբ պահանջվող միջակայքը չի համընկնում ընթացիկ սերվերի տվյալների հետ:
417 Սպասումը ձախողվեց. «Ակնկալում» վերնագրում սպասված պայմանը չի կատարվել.
418 Ես թեյնիկ եմ. Այս կոդը ներառված է որպես կատակ և չի ենթադրում որևէ իրական գործողություն օգտագործողի կամ սերվերի համար և լիարժեք սխալ չէ: Այն ցույց է տալիս, որ սերվերը թեյնիկ է և ի վիճակի չէ սուրճ պատրաստել:
421 Սխալ ուղղորդված հարցում. Սերվերը չի մշակում հարցումը հարցման կամ սերվերի կազմաձևման սխալի պատճառով:
422 Չմշակվող սուբյեկտ. Սերվերը հասկանում է հարցումը, բայց չի մշակում այն տվյալների սխալների պատճառով:
423 Փակված է. Ռեսուրսը արգելափակված է և չի կարող մշակվել:
424 Չհաջողված կախվածություն. Հարցումը կախված է մեկ այլ չկատարված հարցումից:
425 Շատ վաղ. Սերվերը պատրաստ չէ մշակել հարցումը վաղաժամ գալու պատճառով:
426 Պահանջվում է թարմացում. Հարցումը մշակելու համար սերվերը պահանջում է ավելի առաջադեմ արձանագրության օգտագործում:
428 Պահանջվում է նախապայման. Սերվերը պահանջում է որոշակի նախապայմաններ, որոնք պետք է նշվեն հարցումում:
429 Չափազանց շատ հարցումներ. Հաճախորդը կարճ ժամանակում չափազանց շատ հարցումներ է ուղարկել՝ գերազանցելով սերվերի սահմանաչափերը:
431 Հարցման վերնագրի դաշտերը չափազանց մեծ են. Հարցման վերնագրերը գերազանցում են առավելագույն թույլատրելի չափը:
449 Կրկին փորձեք: Ցույց է տալիս, որ հարցումը չի կարող գործարկվել ընթացիկ սերվերի կողմից, բայց կարող է հաջողությամբ մշակվել մեկ այլ սերվերի կողմից, և հաճախորդը պետք է նորից փորձի հարցումը նոր URI-ով:
451 Անհասանելի է իրավական պատճառներով. Ռեսուրսը անհասանելի է իրավական պատճառներով:
499 Հաճախորդի Փակ հարցում. Սերվերը ստացել է հարցումը, սակայն կապը փակվել է հաճախորդի կողմից մինչև մշակման ավարտը:
HTTP 5xx սխալ (Սերվերի սխալներ)
HTTP 5xx սխալի կոդերը ցույց են տալիս սերվերի խնդիրները: Այս կոդերը ցույց են տալիս խնդիրներ, որոնք առաջացել են սերվերի կողմից, ինչի պատճառով սերվերը չի կարողանում ճիշտ մշակել օգտատիրոջ հարցումը: Եկեք ավելի սերտ նայենք դրանց.
HTTP սխալ 500 Ներքին սերվերի սխալ. Սերվերը բախվում է անսպասելի հանգամանքների, որոնք խանգարում են նրան հարցումն ավարտելուն «Սերվեր» վերնագիրը կարող է ցույց տալ այն սերվերը, որի վրա տեղի է ունեցել սխալը:
501 չի իրականացվում. Սերվերը չի աջակցում հաճախորդի հարցումը մշակելու համար պահանջվող ֆունկցիոնալությունը: «Via» վերնագիրը կարող է ցույց տալ պրոքսի սերվերը, որի միջոցով տեղի է ունեցել սխալը:
502 Bad Gateway. Այս կոդը նշանակում է, որ սերվերը, որը հանդես է գալիս որպես վստահված անձ, սխալ պատասխան է ստացել մեկ այլ սերվերից:
HTTP սխալ 503 Service գնել. Սերվերը ժամանակավորապես չի կարողանում մշակել հարցումները:
504 դարպասի դադարեցում. Սերվերը, որը հանդես է գալիս որպես վստահված անձ, այլ սերվերից ժամանակին պատասխան չի ստացել:
505 HTTP տարբերակը չի ապահովվում. Սերվերը չի աջակցում հարցումում նշված HTTP արձանագրության տարբերակը: Որպես պահեստային տարբերակ, «Upgrade» վերնագիրը կարող է ցույց տալ աջակցվող արձանագրությունները:
506 Տարբերակ Նաև բանակցում է. Այս կարգավիճակը չի օգտագործվում HTTP/1.1-ում; սակայն, եթե սերվերը հայտնաբերում է ներքին կոնֆիգուրացիա, որը հանգեցնում է բովանդակության բանակցությունների երկիմաստության, նա կարող է օգտագործել այս պատասխանը:
507 Անբավարար պահեստավորում. Սերվերը չի կարող կատարել հարցումը սերվերի վրա ոչ բավարար պահեստային տարածքի պատճառով:
Հայտնաբերվել է 508 հանգույց. Հարցումը մշակելիս սերվերը հայտնաբերել է հանգույց և հրաժարվում է լրացնել հարցումը՝ անսահման հանգույցից խուսափելու համար:
509 թողունակության սահմանաչափը գերազանցվել է. Սխալը տեղի է ունենում, երբ սերվերի թողունակությունը գերազանցում է հարցումների մեծ ծավալի կամ տրաֆիկի պատճառով:
510 Չի երկարաձգվել. Հաճախորդը պետք է փոխանցի լրացուցիչ ընդլայնումներ՝ հարցումը շարունակելու համար:
Պահանջվում է 511 ցանցի նույնականացում. Ցանց մուտք գործելու համար հաճախորդը պետք է ինքնությունը հաստատի:
Ինչպես ստուգել էջի կարգավիճակի կոդը
Այս բաժնում մենք կքննարկենք էջի կարգավիճակի կոդը ստուգելու երեք հիմնական եղանակներ՝ հրամանի տողի միջոցով, վեբ բրաուզերի միջոցով և անկախ առցանց ծառայություններից: Այս մեթոդներից յուրաքանչյուրն ունի իր առավելությունները և կարող է օգտակար լինել տարբեր իրավիճակներում:
Սերվերի պատասխանի ստուգում հրամանի տողի միջոցով
Հրամանի տողը ապահովում է էջի կարգավիճակի կոդը ստուգելու հարմար միջոց՝ առանց վեբ բրաուզերի օգտագործման: Այս մեթոդի համար դուք պետք է բացեք հրամանի տողը և օգտագործեք հրամանը.
curl -I http://page-address
Այս հրամանը ուղարկում է HEAD հարցում (միայն վերնագրերի հարցում) նշված URL-ին և ցուցադրում է տեղեկատվություն, ներառյալ HTTP կարգավիճակի կոդը.
Վերոնշյալ օրինակը ցույց է տալիս հաջող պատասխանի կոդը: Սխալի կոդ պարունակող պատասխանի դեպքում, ինչպիսին է 404 Not Found HTTP սխալը, արդյունքը նման կլինի.
Սերվերի պատասխանի ստուգում դիտարկիչի վահանակի միջոցով
Վեբ բրաուզերի մշակողի վահանակը գործիքներ է տրամադրում տարբեր գործողություններ իրականացնելու համար, ներառյալ էջի կարգավիճակի կոդը ստուգելու համար: Որպեսզի սերվերի պատասխանում տեսնեք HTTP կոդը, դուք պետք է բացեք մշակողի վահանակը (Ctrl+Shift+K) կամ (Ctrl+shift+J)՝ կախված օգտագործվող բրաուզերից: Հաջորդը, ընտրեք «ցանց» բաժինը և բեռնեք ցանկալի էջը.
Սերվերի պատասխանի ստուգում անկախ գործիքների միջոցով
Կան մեծ թվով անկախ առցանց ծառայություններ, որոնք գործիքներ են տրամադրում կայքի էջի կարգավիճակի կոդը ստուգելու համար: Այս ծառայությունները սովորաբար թույլ են տալիս արագորեն ստանալ ձեր ռեսուրսի առկայության և կատարողականի ակնարկ: Նրանք բոլորը գործում են նույն սկզբունքով. Որպես օրինակ, մենք կդիտարկենք ամենատարածված ռեսուրսը. httpstatus.io
Նախևառաջ պետք է բացել ծառայությունն ինքնին, այնուհետև մուտքագրել այն էջի հասցեն, որի պատասխանը պետք է պարզել, և պահանջել ստուգում.
Արդյունքը կցուցադրվի էջի ներքևում.
Եզրափակում
Եզրափակելով, հարկ է ընդգծել, որ HTTP սխալի կոդերը հասկանալն ու կարդալը կարևոր հմտություն է վեբ մշակման և սերվերի սպասարկման մեջ ներգրավված յուրաքանչյուրի համար: Երբ մենք պարզում ենք յուրաքանչյուր սխալ և ուսումնասիրում դրանք հայտնաբերելու գործիքները, մենք տեսնում ենք պատճառներ, թե ինչու է այդքան կարևոր վեբ ծառայությունների այս ասպեկտները արդյունավետ կառավարելը: