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



სიმართლე გითხრათ, დღეს უკვე ის დროა, რომ ეკანზე გამოტანილი წარწერა Error 404 ინტერნეტის რიგითი მომხმარებლისთვისაც კი არ არის საშიში და ვერც ვერავის შეაშინებს. ასე რომ....













სტატუსის კოდი შედგება სამციფრიანი არაბული ციფრებისგან. აქედან პირველი ციფრი განსაზღვრავს ხუთი კლასიდან ერთერთის კუთვნილებას. ციფრების შემდეგ წარმოდგენილია ადამიანისთვის გასაგები ფრაზა ინგლისურ ენაზე.  ეს ფრაზა ადამიანს უხსნის მიზეზს, რატომ მოხდა მაინცდამიანც ასე.  მაგალითად,

510 Not Exstended გაფართოება მიუწვდომელია 
(ეს შეტყობინება ნიშნავს რომ სერვერზე არ არის გაფართოება, რომელსაც ითხოვს კლიენტი)  





პასუხის კოდით კლიენტი გებულობს მისი შეკითხვის შედეგს და განსაზღვრავს რა მოქმედებები უნდა შეასრულოს შემდგომში. კლიენტმა შეიძლება ყველა კოდი არ იცოდეს, მაგრამ მის რეაქცია კოდის კლასის შესაბამისი უნდა იყოს აუცილებლად.

ინტერნეტის სამისამართო სივრცის ადმინისტრაცია  (IANA) უზრუნველყოფს და მართავს ამ კოდების მნიშვნელობას და სტანდარტს. როგორც ხშირად ხდება ხოლმე, მაიკროსოფტის  ვებ სერვერები (IIS) ამ სტანდარტისგან ოდნავ განსხვავებული სტატუსის კოდებით სარგებლობენ, მაგრამ ეს კრიტიკულად მნიშვნელოვანი არ არის ხოლმე...

მაშ ასე: სულ არის 5 კლასის სტატუს კოდები:

1xx: Informational — (ქართ. საინფორმაციო) — შეკითხვა მიღებულია და გასაგები, დამუშავება გრძელდება...
2xx: Success — (ქართ. წარმატებით) — შეკითხვა მიღებულია, გაგებულია და დამუშავებულია წარმატებით..
3xx: Redirection — (ქართ. გადამისამართება) — შეკითხვის შესასრულებლად დამატებითი მოქმედებებია შესასრულებელი.
4xx: Client Error — (ქართ. კლიენტის შეცდომა) — შეკითხვას ცუდი სინტაქსი აქვს ან შეუძლებელია შესრულება
5xx: Server Error — (ქართ. სერვერის შეცდომა) — სერვერს არ შეუძლია დაამუშაოს შეკითხვა

წყარო http://www.ascii-code.com/http-status-codes.php
https://en.wikipedia.org/wiki/List_of_HTTP_status_codes
https://www.w3.org/Protocols/rfc2616/rfc2616-sec10



შემდეგ ცხრილში მოცემულია IANA სტატუს კოდები და ფრაზები

1xx Informational Responses  ინფორმაციული პასუხი
HTTP status codes in the 1xx are typically informational. 1xx კოდები არის ჩვეულებრივი ინფორმაციული პასუხები.  

როგორც წესი, 1xx კოდები ინფორმაციის გადაცემის პროცესის აღწერას ახდენს. HTTP/1.0 ვერსიაში ასეთი შეტყობინებების იგნორირება ხდება. HTTP/1.1 ვერსიაში კლიენტი მზათ უნდა იყოს მიიღოს ამ კლასის შეტყობინება როგორც ჩვეულებრივი შეტყობინება, მაგრამ სერვერზე რაიმეს გაგზავნა საჭირო არ არის. სერვერიდან წამოსული შეტყობინება მხოლოდ პასუხის საწყის მწკრის შეიცავს, და თუ საჭიროა, სათაურის ზოლის პასუხისთვის დამახასიათებელ რამდენიმე ველს. პროქსი სერვერი ვალდებულია ეს შეტყობინება გაატაროს სერვერიდან კლიენტისკენ
       

100 Continue



აღნიშნავს „ჩვეულებრივ სამუშაო გრაფიკს“. ეს შეტყობინება ნიშნავს რომ მომხმარებელმა გააკეთა კარგი შეკითხვა, და სერვერი შეუდგა მის დამუშავებას. ეს პასუხის დროებითი კოდია, და ის გენერირდება მაშინ, როცა მომხმარებელი სერვერიდან ფინალურ პასუხს ელოდება. ხოლო ფინალური პასუხი მხოლოდ მონაცემთა ბოლო პაკეტის გაგზავნის შემდეგ დაგენერირდება. ასეთ შემთხვევაში უმჯობესია შემოწმდეს, ახერხებს თუ არა საერთოდ სერვერი ამ ინფორმაციის მიღებას. კლიენტმა ჯერ უნდა გააგზავნოს Expect: 100 – Continue სათაური მოთხოვნასთან ერთად და დაელოდოს პასუხს, რომელიც შეიძლება იყოს 100 Continue, მაშინ, როცა სერვერი ახერხებს დანარჩენი მოთხოვნის მიღებას ან 417 Expection Faild წინააღმდეგ შემთხვევაში. ამ დროს კლიენტმა უნდა შეწყვიტოს მოთხოვნის გაგზავნა.
ეს დაახლოებით ისეთი რაღაცაა, რომ სერვერს გაეგზავნოს შეტყობინება, კავშირი წარმატებით დამყარდა, და კარები ღიაა. გამოაგზავნე მონაცემები, მაგრამ არ დაგავიწყდეს, გაიხურო კარები, როცა საქმეს მორჩები.     

101 Switching Protocols
ეს ალბათ სერვერის ყველაზე მარტივი კოდია და ის აღნიშნავს, რომ მომხმარებელმა გააკეთა განაცხადი ვებ-სერვერზე გამოყენებული პროტოკოლის ტიპის შეცვლაზე და სერვერი დაეთანხმა ამ განაცხადს.

ამ კოდის გამოყენება HTTP პროტოკოლის ძველი ვერსიიდან ახალ ვერსიაზე გადამისამართების შემთხვევაში შეიძლება.

102 Processing
იმდენად რამდენადაც WebDAV შეკითხვა (გადაცემის პროტოკოლო) შეიძლება შეიცავდეს არაერთ შეკითხვას ფაილებზე ოპერაციის ჩათვლით,  მის დასრულებას ხშირად ცვეულებრივზე მეტი დრო შეიძლება დასჭირდეს.

ამ კოდის გენერაცია იმისთვის ხდება, რომ მომხმარებელს ვაცნობოთ, აუცილებელია თაიმერის განულება და შემდგომი ბრძანების დალოდება ჩვეულებრივ რეჟიმში, იმდენად რამდენაც, დამუშავების პროცესმა შეიძლება დიდი დრო დაიკავოს.    
103 Checkpoint

122 Request-URI too long


2xx Successful Responses წარმატებული პასუხი
Status codes in the 2xx range indicate that the transaction was received, understood, accepted and processed successfully. ამ კლასის პასუხები გვამცნობენ რომ კლიენტის შეკითხვა მიღებული, გასაგები, ნებადართული და დამუშავებულია წარმატებით

სტატუსიდან გამომდინარე სერვერმა ასევე შეიძლება გადასცეს შეტყობინების სათაური და შემადგენლობა.


200 OK
ეს ყველაზე სასურველი და პოპულარული კოდია, ამასთან ყველაზე შეუმჩნეველი თავის ხასიათიდან გამომდინარე. ის აღნიშნავს სიტუაციას, როცა კლიენტსა და სერვერს შორის გაცვლა დამთავრებულია, და ყველაფერმა ისე ჩაიარა, როგორც გათვალისწინებული იყო.

როდის შეიძლება ამ კოდის გამოყენება? იდეალურ მდგომარეობაში ყოველთვის

201 Created
 ეს კოდი აღნიშნავს სიტუაციას, როცა შეკითხვის შედეგად წარმატებით შეიქმნა ახალი რესურსი. მაგალითად, მომხმარებლის შეკითხვამ გამოიწვია ისეთი ახალი რესურსის შექმნა, როგორიცაა ახალი ვებ გვერდი. სერვერ-წყარომ პირველ რიგში უნდა შექმნას რესურსი 201 კოდის გაგზავნამდე. თუ მოცემულ მომენტში შეუძლებელია რესურსის შექმნა, სერვერმა 201 კოდის მაგივრად უნდა დააგენერიროს 202  (accepted)    

202 Accepted
შეკითხვა მიღებულია დასამუშავებლად, მაგრამ რაღაც მიზეზების გამო ის არაა დასრულებული. შეკითხვა საერთოდაც შეიძლება არ დასრულდეს წარმატებით, რადგანაც დამუშავების პროცესში შეიძლება მოხდეს მისი უარყოფა.

ამ კოდის გამოყენება შეიძლება მაშინ, როცა სერვერს არ შეუძლაი შეასრულოს შეკითხვა შეკითხვის შექმნის მომენტშივე. შეკითხვა თავიდანვე გათვლილი არ არის შესრულებაზე, და კლიენტს არ მოეთხოვება დაელოდოს შეტყობინების საბოლოო გადაცემას, იმდენად რამდენადაც, შესაძლებელია დაიწყოს ხანგრძლივი პროცესი. 
     
203 Non-Authoritative Information (since HTTP/1.1)
სერვერმა წარმატებით გადაამუშავა შეკითხვა, მაგრამ გადაცემული ინფორმაცია პირველადი წყაროდან არ ყოფილა აღებული (სარეზერვო ასლი, სხვა სერვერი და ა.შ.) და ამიტომაც შეიძლება აქტუალური არ იყოს. თავის არსით ეს კოდი ძალიან გავს 200, მაგრამ უთითებს რომ რომ ინფორმაცია პირველწყაროდან არ არის აღებული.

როდის შეიძლება ამ კოდის გამოყენება? მისი გამოყენება შესაძლებელია კოდი 200 მაგივრად, როცა გამომგზავნს აქვს მიზეზი ივარაუდოს, რომ უცხო წაროებიდან წამოსული პასუხების სათაურები შეიძლება განსხვავებული იყოს იმისგან, რასაც საწყისი სერვერი დააგენერირებდა. 

204 No Content
ეს კოდი სერვერის მიერ იგზავნება იმ შემთხვევაში, როცა შეკითხვა მიღებულია და გასაგები, მაგრამ არ არსებობს მონაცემები, რომელებიც შეიძლება გეგზავნოს კლიენტს. ის ხშირად გამოიყენება იმ შემთხვევებისთვის, როცა დოკუმენტის ცვლილების გარეშე სკრიპტების გაშვების ნებართვაა საჭირო. მოცემული კოდი არ უნდა შეიცავდეს მონაცემებს (body). ის განთავსდება პირველივე ცარიელ გრაფაში სათაურის შემდეგ (title)

ეს კოდი ძირითადად იმისთვის გამოიყენება, რომ შესაძლებელი იყოს მონაცემების შეყვანა ან რაიმე მოქმედებების განხორციელება დოკუმენტის (გვერდის) ცვლილების გარეშე.  

205 Reset Content
სერვერმა წარმატებით გადაამუშავა შეკითხვა, მაგრამ, ამასტან არ აბრუნებს რაიმე კონტენტს. 204-ისგან განსხვავებით ეს პასუხი გამომგზავნისგან დოკუმენტის(გვერდის) განახლებას (refresh) ითხოვს

ყველაზე ხშირად ის გამოიყენება მაშინ როცა მომხმარებელი ფორმას ავსებს, ხოლო სერვერი ბრაუზერს სთხოვს ფორმის გასუფთავებას. 

206 Partial Content



სერვერი აბრუნებს კლიენტის მიერ გაგზავნილი დოკუმენტის სათაურის შესაბამისი კონტენტის მხოლოდ ნაწილს. ის ყველაზე ხშირად ქეშირების გაფართოებული ინსტრუმენტების მიერ გამოიყენება მაშინ როცა მომხმარებელი ითხოვს მთელი კონტენტის მხოლოდ ნაწილის გამოტანას გვერდზე და სერვერიც თავის პასუხში ამ ნაწილის გამოტანას ახდენს გვერდზე.

ეს კოდი გამოიყენება if-range შეკითხვის გამოყენების შედეგად. ეს შეკითხვა კი ქეშის მძლავრ ვალიდატორებში გამოიყენება. შეკითხვა ასევე უნდა შეიცავდეს ნაწილის სათაურებს, რომელიც გამოიყენება დაბრუნებული ინფორმაციის დიაპაზონის პარამეტრებად

207 Multi-Status
(WebDAV) (RFC 4918)
სერვერი გადასცემს ერთდროულად შესრულებული ურთიერთდამოუკიდებელი ოპერაციების შედეგებს. ეს შედეგები მოთავსებულია შეტყობინებაში XML დოკუმენტის სახით
    
226 IM Used (RFC 3229)






3xx Redirection Responses გადამისამართების პასუხები
HTTP status codes in the 3xx range pertain to redirection. The client must take additional action to complete the request. ამ კლასი კოდები  მიუთითებენ იმ მოქმედებების შესახებ, რომლებიც უნდა განახორციელოს მომხმარებლის აგენტმა, რათა დასრულდეს შეკითხვა. მოქმედებები შეიძლება მომხმარებელმა განახორციელოს, ან შეიძლება შეიცავდეს სერვერისთვის რაიმე მიმართვებს

300 Multiple Choices
მულტი არჩევანი

ძირითადად ეს კოდი მომხმარებელს ეუბნება, რომ რესურსი გადადგილდა, და სერვერი პასუხობს ალტერნატიული ვარიანტების სიით, საიდანაც მომხმარებელს შეუძლია აირჩიოს მისთვის უფრო შესაფერისი ვარიანტი. 

ამ კოდის ნახვა შესაძლებელია, როცა სერვერი თვლის, რომ მომხმარებლის (ბრაუზერის) მიერ შეთავაზებულ URL-ს არ აქვს საკმარისად ზუსტი მიმთითებელი და გვთავაზობს შემდეგ არჩევანს. ხშირად ეს ხდება მაშინ, როცა მომხმარებელი იყენებს ბოლო დონის დირექტორიის URL-ს, ხოლო სერვერი მას სთავაზობს ფაილებისა და შემდეგი საქაღალდეების არჩევანს 

301 Moved Permanently
გადატანილია მუდმივად

ეს საკმაოდ ხშირად გენერირებადი კოდია. ის აღნიშნავს რომ მოცემულ რესურზე მოთხოვნები (და ყველა შემდგომი მოთხოვნები) გადამისამართებული უნდა იყოს მოცემულ URL-ზე.

ეს კოდი გამოიყენება მაშინ, როცა გვერდი მეტად არ არასებობს, ან ბმული, რომელიც მიუთითებს გარე წყაროზე, უკვე არ მუშაობს. 301 კოდი მომხამრებელს აცნობებს რომ მოთხოვნილი რესურსი გადადგილებულია. (ჩვეულებრივ ეს .htaccess ფაილის დახმარებით ხდება აპაჩის სერვერებზე) 
    
302 Found
ნაპოვნი

ეს კოდი მომხამრებელს აცნობებს, რომ მოთხოვნილი რესურსის განლაგება დროებით შეცვლილია. 302 პასუხის კოდი უნდა შეიცავდეს ინფორმაციას ახალი ადგილმდებარეობის შესახებ, (Location ველში) რათა მომხმარებელმა შეძლოს მისი ხელახალი სახით შეკითხვა

ამ კოდს რამდენიმე გამოყენება აქვს. ბევრი მათგანი გაცილებით სხვა მიზნებისთვის გამოიყენება, ვიდრე კოდის შექმნის მომენტში იყო გათვლილი. თავიდან ეს კოდი დროებით გადამიასამარტებისთვის შეიქმნა. მიუხედავად ამისა, დღეისთვის არსებობს მისი გამოყენების სხვა ზოგი ეთიკური და ზოგიც არაეთიკური პრეცედენტი (მაგ.ვირუსები)
  
303 See Other 
(since HTTP/1.1)
ნახე სხვა

ეს კოდი მომხმარებელს ამცნობს, რომ მოთხოვნილი დოკუმენტის პოვნა შესაძლებელია URL-ით რომელიც განსხვავებულია მოცემული შეკითხვისგან. ეს უცილობლად იმას როდი ნიშნავს, რომ დოკუმენტი გადატანილია უცილობლად გადატანილია, არამედ მხოლოდ იმას აღნიშნავს, რომ შემოთავაზებულია მისამართი, სადაც შესაძლებელია მსგავსი პასუხის პოვნა.

მოთხოვნილი დოკუმენტის გამოძახება უნდა მოხდეს Location ველში მითითებული მისამართიდან, მხოლოდ აუცილებლად GET მეთოდით, მიუხედავად იმისა მანამდე რა მეთოდი იყო გამოყენებული.

ეს მეთოდი ძირითადად იმისთვის არსებობს, რომ შესაძლებელი იყოს POST-აქტიურმა სკრიპტებმა შეძლოან მომხმარებლის აგენტის გადამისამართება არჩეულ რესურსზე. 

304 Not Modified
არ შეცვლილა

ეს კოდი აღნიშნავს, რომ დოკუმენტი არ შეცვლილა ბოლო მოთხოვნის შემდეგ. როგორც წესი კლიენტი აგზავნის If-Modified-Since დროით პარამეტრს (ან If-Match), რომელიც გამოიყენება ათვლის წერტილად იმის დასადგენად შეიცვალა თუ არა დოკუმენტი ამ დროის შემდეგ. გამოიყენება რათა დაიზოგოს ტრაფიკი და აღარ მოხდეს უცვლელი ფაილების ხელმეორედ ჩამოწერა სერვერიდან. 

305 Use Proxy 
(since HTTP/1.1)


გამოიყენე პროქსი

ამ კოდით მომხამრებელს ეცნობება, რომ მოთხოვნილ მისამართზე წვდომა შესაძლებელია მოხდეს მხოლოდ პასუხში მითითებული პროქსი სერვერის გამოყენებით.

ეს კოდი ხშირად გამოიყენება უსაფრთხოების პირობებიდან გამომდინარე

306 Switch Proxy

307 Temporary Redirect 
(since HTTP/1.1)

308 Resume Incomplete





4xx Client Error
HTTP status codes in the 4xx range indicate that a problem occurred with the request.

400 Bad Request




401 Unauthorized

402 Payment Required

403 Forbidden




404 Not Found




405 Method Not Allowed





406 Not Acceptable

407 Proxy Authentication Required

408 Request Timeout

409 Conflict

410 Gone

411 Length Required

412 Precondition Failed

413 Request Entity Too Large

414 Request-URI Too Long

415 Unsupported Media Type

416 Requested Range Not Satisfiable

417 Expectation Failed

418 I'm a teapot (RFC 2324)

422 Unprocessable Entity (WebDAV) (RFC 4918)

423 Locked (WebDAV) (RFC 4918)

424 Failed Dependency (WebDAV) (RFC 4918)

425 Unordered Collection (RFC 3648)

426 Upgrade Required (RFC 2817)

428 Precondition Required

429 Too Many Requests





431 Request Header Fields Too Large

444 No Response

449 Retry With

450 Blocked by Windows Parental Controls

499 Client Closed Request


5xx Server Error
Error codes in the 5xx range indicate that server is aware that it has encountered an error or is otherwise incapable of performing the request.

500 Internal Server Error

501 Not Implemented

502 Bad Gateway

503 Service Unavailable

504 Gateway Timeout

505 HTTP Version Not Supported





506 Variant Also Negotiates (RFC 2295)

507 Insufficient Storage (WebDAV) (RFC 4918)





509 Bandwidth Limit Exceeded (Apache bw/limited extension)

510 Not Extended (RFC 2774)

511 Network Authentication Required

598 (Informal convention) network read timeout error

599 (Informal convention) network connect timeout error





იუმ2 .

აუცილებლად ნახეთ ორუვე ბმული






კიდომ







Comments

Popular posts from this blog

თხა და გიგო (ზღაპარი)

ტექნოლოგიების სახელმძღვანელოები პედაგოგებისთვის 2024

შემოდგომის რეგისტრაცია ინტელის ტრენინგებზე