HTTP სტატუსის კოდები

HTTP სტატუსის კოდი (HTTP response status code) — წარმოადგენს სერვერიდან მიღებული პასუხის პირველ სტრიქონს, როდესაც მოთხოვნა შესრულებულია HTTP პროტოკოლის მეშვეობით. სერვერიდან დაბრუნებული პასუხის პირველი სტრიქონის პირველი რიცხვი აღნიშნავს თუ რა მდგომარეობაში ბრუნდება პასუხი, რის საფუძველზეც ვებ ბრაუზერი, ან სხვა პროგრამა რისი საშუალებითაც მოხდა მოთხოვნის გაგზავნა, ასრულებს შესაბამის მოქმედებას. აღნიშნული კოდები წარმოადგენს საერთაშორისო სტანდარტს და აღწერილია შესაბამის დოკუმენტში RFC. რიცხვით მნიშვნელობასთან ერთად სერვერიდან ბრუნდება ასევე სიტყვიერი განმარტებაც, რომელიც ასევე სტანდარტს წარმოადგენს, თუმცა საბოლოო მომხმარებელთათვის მათი ჩვენება ხშირად სხვადასხვა ფორმით ხდება. აღნიშნავს რომ მოთხოვნა მიღებულია და მიმდინარეობს დამუშავება. ნიშნავს რომ სერვერმა მიიღო მოთხოვნის სათაური და კლიენტმა უნდა გააგრძელოს მოთხოვნის დანარჩენი ნაწილის მიწოდება (იმ შემთხვევაში თუ დამატებითი ნაწილის მიწეოდება საჭიროა, მაგალითად POST მოთხოვნის დროს). ამ კოდის არსებობა განპირობებულია იმით, რომ როდესაც დიდი მოცულობის ინფორმაციის გაგზავნაა საჭირო სერვერზე, ჯერ უმჯობესია შემოწმდეს ახერხებს თუ არა საერთოდ სერვერი ამ ინფორმაციის მიღებას. ამ შემთხვევაში კლიენტმა ჯერ უნდა გაგზავნოს Expect: 100-continue სათაური მოთხოვნასთან ერთად და დაელოდოს პასუხს, რომელიც შეიძლება იყოს 100 Continue თუ სერვერი ახერხებს დანარჩენი მოთხოვნის მიღებას ან 417 Expectation Failed საწინააღმდეგო შემთხვევაში, რა დროსაც კლიენტმა უნდა შეწყვიტოს მოთხოვნის გაგზავნა. იგზავნება მაშინ როდესაც კლიენტი ითხოვს სერვერისგან პროტოკოლის შეცვლას და სერვერი ინფორმირებულია ამის შესახებ. როდესაც იგზავნება დიდი მოცულობის მონაცემები, რის დამუშავებასაც დიდი დრო სჭირდება სერვერზე, ეს კოდი ბრუნდება სერვერიდან რომელიც აცნობებს კლიენტს რომ მიმდინარეობს მუშაობა და უნდა დაელოდოს შესაბამის პასუხს. ამ ტიპის კოდი ბრუნდება მაშინ, როდესაც სერვერმა მიიღო კლიენტის მოთხოვნა და წარმატებით დაამუშავა, პრობლემების გარეშე. სტანდარტული კოდი HTTP მოთხოვნის წარმატებით დასრულების შემთხვევაში. ბრუნდება მაშინ როდესაც წარმატებით შესრულებული მოთხოვნის შედეგად მოხდა ახალი რესურსის გამოყოფა. ბრუნდება მაშინ, როდესაც მოთხოვნა მიღებული იქნა სერვერის მიერ მაგრამ დამუშავება ჯერ არაა დასრულებული. საბოლოოდ მოთხოვნა შეიძლება დასრულდეს ან უარყოფილი იქნას სერვერის მიერ. სერვერმა წარმატებით მიიღო და დაამუშავა მოთხოვნა მაგრამ შედეგი შესაძლოა სხვა წყაროდან ბრუნდებოდეს. სერვერმა წარმატებით მიიღო და დაამუშავა მოთხოვნა, მაგრამ პასუხად არაფერს არ აბრუნებს. სერვერმა წარმატებით მიიღო და დაამუშავა მოთხოვნა, მაგრამ პასუხად არაფერს არ აბრუნებს. სერვერიდან ხდება მხოლოდ პასუხის გარკვეული ნაწილის მოწოდება. ეს სტატუსი გამოიყენება ისეთი, მაგალითად, მაშინ როდესაც სერვერიდან ხდება ფაილის გადმოწერა და გადმოწერის შეწყვეტის შემთხვევაში შესაძლებელი უნდა იყოს პროცესის გაგრძელება, ან საჭიროა ამ ფაილის დაყოფა და რამდენიმე ნაწილად გადმოწერა. შეტყობინების ძირითადი ნაწილი რომელიც მოწოდებული იქნება წარმოადგენს XML-ს. ასევე შესაძლოა დაბრუნდეს რამდენიმე ქვე სტატუსები იმის მიხედვით რამდენი მოთხოვნა იქნა გაგზავნილი სერვერზე. კლიენტმა უნდა შეასრულოს დამატებითი მოქმედებები, მოთხოვნის დასასრულებლად. ამ დამატებითი მოქმედების შესრულება შესაძლებელია მოხდეს ავტომატურად პროგრამის მიერ, მხოლოდ იმ შემთხვევაში თუ გამოყენებულია POST ან HEAD მეთოდები. პროგრამამ არ უნდა შეასრულოს მიჯრით ხუთზე მეტი გადამისამართება რადგან ხშირად ეს აღიქმება როგორც უსასრულოდ ბევრი გადამისამართების ციკლი. განსაზღვრავს რომ რესურსზე წვდომა რამდენიმა განსხვავებული პარამეტრით შეიძლება. მაგალითად განსხვავებული ფორმატის ვიდეო ფაილები, განსხვავებული გაფართოების დოკუმენტები და ა.შ. განსაზღვრავს რომ მოცემული მისამართი სამუდამოდ შეცვლილია მოწოდებული მისამართით. მოთხოვნილი დოკუმენტი დროებით სხვა მისამართზეა ხელმისაწვდომი, რომელიც მითითებულია Location ველში. მოთხოვნილი დოკუმენტის გამოძახება უნდა მოხდეს Location ველში მითითებული მისამართიდან, მხოლოდ აუცილებლად GET მეთოდით, მიუხედავად იმისა მანამდე რა მეთოდი იყო გამოყენებული. დოკუმენტი არ შეცვლილა ბოლო მოთხოვნის შემდეგ. როგორც წესი კლიენტი აგზავნის If-Modified-Since დროით პარამეტრს, რომელიც გამოიყენება ათვლის წერტილად იმის დასადგენად შეიცვალა თუ არა დოკუმენტი ამ დროის შემდეგ. გამოიყენება რათა დაიზოგოს ტრეფიკი და აღარ მოხდეს უცვლელი ფაილების ხელმეორედ ჩამოწერა სერვერიდან. მოთხოვნილ მისამართზე წვდომა შესაძლებელია მოხდეს მხოლოდ პროქსი სერვერის გამოყენებით. აღარ გამოიყენება. მიუთითებდა, რომ მხოლოდ კონკრეტული პროქსი სერვერების გამოყენება იყო შესაძლებელი. ამ შემთხვევაში მოთხოვნა უნდა განმეორდეს სხვა მისამართზე, რომელიც სერვერიდან იქნება მოწოდებული, თუმცა მომავალში ისე იგივე მისამართით უნდა ისარგებლოთ. აღნიშნული და ყველა მომავალი მოთხოვნები უნდა განხორციელდეს მოწოდებულ მისამართზე. სერვერი არ ან ვერ გააგრძელებს მოთხოვნის დამუშავებას შეცდომის გამო, რომელსაც სერვერი მიიჩნევს რომ დაშვებულია კლიენტის მხრიდან. (მაგ. არასწორი მოთხოვნის სინტაქსი) რესურსზე წვდომისათვის საჭიროა ავტორიზაციის გავლა, რომელიც არ განხორციელებულა ან განხორციელდა არასწორი მონაცემებით. დარეზერვებულია მომავალში გამოსაყენებლად. ამჟამად აქტიურად არ გამოიყენება. ჩანაფიქრი იყო რომ ამ სტატუსის გამოყენება მოხდებოდა იმ შემთხვევაში თუ რესურსზე წვდომისათვის აუცილებელია გარკვეული ფინანსური ტრანზაქციის შესრულება. მოთხოვნა სწორად არის განხორციელებული, მაგრამ სერვერი უარს ამბობს რესურსის მოწოდებაზე რადგან კლიენტს არ აქვს მისი ხილვის უფლება. განსხვავებით 401 კოდისგან ამ შემთხვევაში ავტორიზაციის გავლა არაფერს შეცვლის. ეს კოდი მიანიშნებს რომ ამ მომხმარებლისთვის რესურსზე წვდომა უბრალოდ აკრძალულია. მოთხოვნილი რესურსი ვერ მოიძებნა სერვერის მიერ. ეს რესურსი მომავალში შეიძლება ხელმისაწვდომი გახდეს ამიტომ განმეორებითი მოთხოვნები ნებადართულია. რესურსე წვდომა განხორციელდა იმ მეთოდით, რომელიც არაა ნებადართული აღნიშნული რესურსისთვის. მაგალითად GET მეთოდის გამოყენება ფორმაში, რომელიც სავალდებულოა რომ POST მეთოდით დამუშავდეს, PUT მეთოდის გამოყენება რესურზე, რომლის მხოლოდ წაკითხვაა შესაძლებელი და ა.შ. HTTP სტატუსის კოდები ოფიციალური საიტი