ვებ განვითარების სამყაროში, HTTP შეცდომის კოდები მნიშვნელოვან როლს თამაშობს მომხმარებლის გამოცდილებაზე და ვებსაიტის რეპუტაციაზე. ამ სტატიაში განვიხილავთ სერვერის შეცდომის კოდების სრულ ჩამონათვალს, გავაანალიზებთ მათ მნიშვნელობებს და ვისწავლით თუ როგორ უნდა მოხდეს სერვერის პასუხების კოდების ეფექტური ინტერპრეტაცია პრობლემების გადასაჭრელად და ვებ აპლიკაციების მუშაობის ოპტიმიზაციის მიზნით.
რა არის HTTP საპასუხო კოდი
HTTP პასუხის კოდი არის ვებ სერვერების ენა, რომელიც თარგმნის ბრაუზერის მოთხოვნებს გასაგებ ინსტრუქციებად. ეს ჰგავს პოეტს, რომელიც პასუხობს ვირტუალურ კითხვებს, აძლევს მათ მნიშვნელობას და მიმართულებას. საპასუხო კოდები ყოველთვის არ არის HTTP შეცდომის კოდები. მაგალითად, „200 OK“ ნიშნავს, რომ ყველაფერი წესრიგშია, მაგრამ HTTP შეცდომა „404 Not Found“ ნიშნავს, როდესაც გვერდი იკარგება ვირტუალურ სივრცეში. თითოეული კოდი არის სერვერის მდგომარეობის უნიკალური გამოხატულება, რომლის გაშიფვრა საშუალებას გვაძლევს გავიგოთ რა ხდება ვირტუალური სამყაროს მეორე მხარეს.
1xx კოდები (ინფორმაცია)
1xx სტატუსის კოდები HTTP პროტოკოლში არის ერთგვარი პირველი ბმული სერვერსა და კლიენტს შორის დიალოგში. მოთხოვნაზე სრული პასუხის გაცემის ნაცვლად, ისინი აწვდიან ინფორმაციას მიმდინარე სტატუსის შესახებ, რაც მონაცემთა გაცვლას უფრო ეფექტურს ხდის. მოდით უფრო ახლოს მივხედოთ მათ:
100 გაგრძელება . HTTP პასუხის კოდი, რომელშიც სერვერი მომხმარებელს მწვანე შუქს აუნთებს, რაც მას საშუალებას აძლევს უსაფრთხოდ გააგრძელოს დიდი მოთხოვნის გაგზავნა.
101 პროტოკოლების გადართვა . სერვერი კლიენტს ეუბნება, რომ ის ცვლის თამაშის წესებს, მაგალითად, HTTP-დან უფრო უსაფრთხო HTTPS-ზე გადადის. ამ შემთხვევაში, პროტოკოლის შესაცვლელად გამოიყენება „განახლების“ სათაური.
102 დამუშავება . ეს კოდი ჰგავს შეტყობინებას, რომ სერვერმა მიიღო მოთხოვნა, მაგრამ ჯერ კიდევ დაკავებულია რთული ოპერაციით.
103 ადრეული მინიშნებები . აქ სერვერი მთავარ პასუხამდე კლიენტს უგზავნის რამდენიმე საინდიაციურ სათაურს, აფრთხილებს რა რაიმეს შესახებ, რაც შეიძლება აქტუალური იყოს უახლოეს მომავალში.
2xx კოდი (წარმატებული)
HTTP შეცდომის კოდები 2xx ჯგუფში მიუთითებს სერვერის წარმატებულ მოთხოვნაზე. ისინი არსებითად მოქმედებენ როგორც "მწვანე შუქი" ვებ კომუნიკაციების ფარგლებში, რაც ადასტურებს, რომ ყველაფერი გეგმის მიხედვით მიდის და წარმატებით დასრულდა.
200 OK . ეს სტატუსი გამოიყენება მაშინ, როდესაც სერვერი პრობლემების გარეშე ამუშავებს მოთხოვნას GET მეთოდით და პასუხად აბრუნებს მოთხოვნილ მონაცემებს. "Content-Type" სათაური პასუხში შინაარსის ტიპს იუწყება. ის უბრალოდ აცნობებს კლიენტს, რომ მოთხოვნა წარმატებით დასრულდა.
201 შექმნილია . აქ სერვერი აცხადებს ახალი რესურსის შექმნის შესახებ.
202 მიღებულია . სერვერი მომხმარებელს აცნობებს, რომ მოთხოვნა მიღებულია, თუმცა პასუხის გაცემას დრო დასჭირდება.
203 არაავტორიტეტული ინფორმაცია . ეს კოდი კლიენტს აწვდის მონაცემებს, რომლებიც შეიძლება არ იყოს ოფიციალური, მაგრამ შეიძლება გამოყენებულ იქნას შედარებისთვის.
204 კონტენტი არ არის . სერვერმა დაამუშავა მოთხოვნა, მაგრამ დამატებით კონტენტს არ აბრუნებს.
205 კონტენტის გადატვირთვა . აქ კლიენტს ეძლევა ინსტრუქცია გაგზავნის შემდეგ მიმდინარე ხედის ან მონაცემების გადატვირთვა.
206 ნაწილობრივი შინაარსი . ეს შემთხვევა მიუთითებს, რომ პასუხი შეიცავს მოთხოვნილი შინაარსის მხოლოდ ნაწილს. სათაური „კონტენტი-დიაპაზონი“ მიუთითებს ნაწილობრივი შინაარსის დიაპაზონზე.
207 მრავალსტატუსი. სერვერმა წარმატებით დაასრულა კლიენტისგან მიღებული მრავალოპერაციული მოთხოვნა და პასუხი შეიცავს ინფორმაციას თითოეული ოპერაციის სტატუსის შესახებ.
226 გამოყენებულია IM . ეს კოდი მიუთითებს, რომ სერვერმა გამოიყენა ინკრემენტული მეტამონაცემების (IM) მეთოდი და უპასუხა კლიენტისთვის მხოლოდ შეცვლილი რესურსის ნაწილების გადაცემით.
3xx კოდები (გადამისამართებები)
3xx კოდები HTTP პროტოკოლში არის მაჩვენებლების მსგავსი, რომლებიც ხელმძღვანელობენ მომხმარებელს ახალი რესურსის მდებარეობამდე. ისინი აცნობებენ კლიენტს, რომ შემდგომი ნაბიჯები უნდა გადაიდგას მოთხოვნილი შინაარსის მისაღებად ან სხვა რესურსზე გადამისამართებისთვის. მოდით ჩავუღრმავდეთ თითოეული მათგანის დეტალებს:
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 შეცდომის კოდების გაგება და წაკითხვა არის საკვანძო უნარი ყველასთვის, ვინც ჩართულია ვებ განვითარებისა და სერვერის შენარჩუნებაში. როდესაც ჩვენ ვხვდებით თითოეულ შეცდომას და ვიკვლევთ ინსტრუმენტებს მათი აღმოსაჩენად, ჩვენ ვხედავთ მიზეზებს, თუ რატომ არის ასე მნიშვნელოვანი ამ ვებ სერვისების ასპექტების ეფექტურად მართვა.