Վեբ մշակման աշխարհում HTTP սխալի կոդերը կենսական դեր են խաղում օգտատերերի փորձի և կայքի հեղինակության վրա ազդելու գործում: Այս հոդվածում մենք կքննարկենք սերվերի սխալի կոդերի ամբողջական ցանկը, կվերլուծենք դրանց նշանակությունը և կսովորենք, թե ինչպես արդյունավետ կերպով մեկնաբանել սերվերի պատասխանի կոդերը՝ խնդիրները լուծելու և վեբ հավելվածների աշխատանքը օպտիմալացնելու համար:
Ինչ է HTTP արձագանքման կոդը
HTTP պատասխանի կոդը վեբ սերվերների լեզուն է, որը բրաուզերի հարցումները թարգմանում է հասկանալի հրահանգների: Դա նման է բանաստեղծի, ով պատասխանում է վիրտուալ հարցերին, դրանց տալիս իմաստ ու ուղղություն։ Պատասխանի կոդերը միշտ չէ, որ HTTP սխալի կոդեր են: Օրինակ, «200 OK» նշանակում է, որ ամեն ինչ կարգին է, բայց HTTP Error «404 Not Found» նշանակում է, երբ էջը կորչում է վիրտուալ տարածքում: Յուրաքանչյուր կոդ սերվերի վիճակի յուրահատուկ արտահայտություն է, որի վերծանումը թույլ է տալիս հասկանալ, թե ինչ է կատարվում վիրտուալ աշխարհի մյուս կողմում։
1xx կոդեր (Տեղեկություններ)
HTTP արձանագրության 1xx կարգավիճակի կոդերը մի տեսակ առաջին հղում են սերվերի և հաճախորդի միջև երկխոսության մեջ: Հարցմանը ամբողջական պատասխան տալու փոխարեն նրանք տեղեկատվություն են տրամադրում ընթացիկ կարգավիճակի մասին՝ ավելի արդյունավետ դարձնելով տվյալների փոխանակումը: Եկեք ավելի սերտ նայենք դրանց.
100 Շարունակել ։ HTTP պատասխանի կոդ, որով սերվերը կանաչ լույս է տալիս օգտատիրոջը՝ թույլ տալով նրան անվտանգ կերպով շարունակել մեծ հարցում ուղարկելը։
101 Արձանագրությունների փոխում ։ Սերվերը հաճախորդին տեղեկացնում է, որ փոխում է խաղի կանոնները, օրինակ՝ HTTP-ից անցնում է ավելի անվտանգ HTTPS-ի։ Այս դեպքում «Թարմացում» վերնագիրը օգտագործվում է արձանագրության փոփոխության համար։
102 Մշակում ։ Այս կոդը նման է հաղորդագրության, որ սերվերը ընդունել է հարցումը, բայց դեռևս զբաղված է բարդ գործողությամբ։
103 Վաղ ակնարկներ ։ Այստեղ սերվերը հիմնական պատասխանից առաջ հաճախորդին ուղարկում է մի քանի ցուցիչ վերնագրեր՝ զգուշացնելով մոտ ապագայում կարևոր մի բանի մասին։
2xx կոդը (հաջողված)
2xx խմբում HTTP սխալի կոդերը ցույց են տալիս սերվերից ստացված հարցումը: Նրանք, ըստ էության, հանդես են գալիս որպես «կանաչ լույս» վեբ հաղորդակցության շրջանակներում՝ հաստատելով, որ ամեն ինչ ընթանում է ըստ պլանի և հաջողությամբ ավարտված է։
200 Լավ ։ Այս կարգավիճակն օգտագործվում է, երբ սերվերը GET մեթոդով հարցումը մշակում է առանց խնդիրների և պատասխանում է հարցված տվյալները։ «Content-Type» վերնագիրը հաղորդում է պատասխանի բովանդակության տեսակը։ Այն պարզապես տեղեկացնում է հաճախորդին, որ հարցումը հաջողությամբ է կատարվել։
201 Ստեղծված է ։ Այստեղ սերվերը հայտարարում է նոր ռեսուրսի ստեղծման մասին։
202 Ընդունված է ։ Սերվերը տեղեկացնում է օգտատիրոջը, որ հարցումն ընդունվել է, բայց պատասխանելու համար ժամանակ կպահանջվի։
203 Ոչ հեղինակավոր տեղեկատվություն ։ Այս կոդը հաճախորդին տրամադրում է տվյալներ, որոնք կարող են պաշտոնական չլինել, բայց կարող են օգտագործվել համեմատության համար։
204 Բովանդակություն չկա ։ Սերվերը մշակել է հարցումը, բայց չի վերադարձնում որևէ լրացուցիչ բովանդակություն։
205 Վերագործարկել բովանդակությունը ։ Այստեղ հաճախորդին հրահանգ է տրվում վերագործարկել ընթացիկ տեսքը կամ տվյալները ուղարկելուց հետո։
206 Մասնակի բովանդակություն ։ Այս դեպքը ցույց է տալիս, որ պատասխանը պարունակում է հարցված բովանդակության միայն մի մասը։ «Բովանդակության միջակայք» վերնագիրը ցույց է տալիս բովանդակության մասնակի միջակայքը։
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 Հարցման ժամանակի սպառում ։ Սերվերը սպասում էր հաճախորդից հարցում ստանալուն, բայց ժամանակը սպառվեց։ «Կրկին փորձել հետո» վերնագիրը կարող է ցույց տալ այն ժամանակը, որից հետո հարցումը կարող է կրկին փորձվել։
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 Սխալ դարպաս ։ Այս կոդը նշանակում է, որ որպես պրոքսի գործող սերվերը սխալ պատասխան է ստացել մեկ այլ սերվերից։
HTTP սխալ 503 Ծառայությունը հասանելի չէ ։ Սերվերը ժամանակավորապես չի կարողանում մշակել հարցումները։
504 Gateway Timeout ( Գարծաթե դարպասի ժամանակի ավարտ ): Պրոքսի սերվերը չի ստացել ժամանակին պատասխան մեկ այլ սերվերից:
505 HTTP տարբերակը չի աջակցվում : Սերվերը չի աջակցում հարցման մեջ նշված HTTP արձանագրության տարբերակը: Որպես պահուստային տարբերակ, «Թարմացում» վերնագիրը կարող է ցույց տալ աջակցվող արձանագրությունները:
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 սխալի կոդերը հասկանալն ու կարդալը կարևոր հմտություն է վեբ մշակման և սերվերի սպասարկման մեջ ներգրավված յուրաքանչյուրի համար: Երբ մենք պարզում ենք յուրաքանչյուր սխալ և ուսումնասիրում դրանք հայտնաբերելու գործիքները, մենք տեսնում ենք պատճառներ, թե ինչու է այդքան կարևոր վեբ ծառայությունների այս ասպեկտները արդյունավետ կառավարելը: