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
ვერსიაში კლიენტი მზათ უნდა იყოს მიიღოს ამ კლასის შეტყობინება როგორც ჩვეულებრივი
შეტყობინება, მაგრამ სერვერზე რაიმეს გაგზავნა საჭირო არ არის. სერვერიდან წამოსული
შეტყობინება მხოლოდ პასუხის საწყის მწკრის შეიცავს, და თუ საჭიროა, სათაურის ზოლის
პასუხისთვის დამახასიათებელ რამდენიმე ველს. პროქსი სერვერი ვალდებულია ეს შეტყობინება
გაატაროს სერვერიდან კლიენტისკენ
|
|
აღნიშნავს
„ჩვეულებრივ სამუშაო გრაფიკს“. ეს შეტყობინება ნიშნავს რომ მომხმარებელმა გააკეთა
კარგი შეკითხვა, და სერვერი შეუდგა მის დამუშავებას. ეს პასუხის დროებითი კოდია,
და ის გენერირდება მაშინ, როცა მომხმარებელი სერვერიდან ფინალურ პასუხს ელოდება.
ხოლო ფინალური პასუხი მხოლოდ მონაცემთა ბოლო პაკეტის გაგზავნის შემდეგ დაგენერირდება.
ასეთ შემთხვევაში უმჯობესია შემოწმდეს, ახერხებს თუ არა საერთოდ სერვერი ამ ინფორმაციის
მიღებას. კლიენტმა ჯერ უნდა გააგზავნოს 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) ითხოვს
ყველაზე ხშირად ის გამოიყენება მაშინ როცა მომხმარებელი ფორმას ავსებს, ხოლო სერვერი ბრაუზერს სთხოვს ფორმის გასუფთავებას.
|
სერვერი აბრუნებს კლიენტის მიერ გაგზავნილი დოკუმენტის სათაურის შესაბამისი კონტენტის მხოლოდ ნაწილს. ის ყველაზე ხშირად ქეშირების გაფართოებული ინსტრუმენტების მიერ გამოიყენება მაშინ როცა მომხმარებელი ითხოვს მთელი კონტენტის მხოლოდ ნაწილის გამოტანას გვერდზე და სერვერიც თავის პასუხში ამ ნაწილის გამოტანას ახდენს გვერდზე.
ეს კოდი გამოიყენება if-range შეკითხვის გამოყენების შედეგად. ეს შეკითხვა კი ქეშის მძლავრ ვალიდატორებში გამოიყენება. შეკითხვა ასევე უნდა შეიცავდეს ნაწილის სათაურებს, რომელიც გამოიყენება დაბრუნებული ინფორმაციის დიაპაზონის პარამეტრებად
|
|
207 Multi-Status
(WebDAV)
(RFC 4918)
|
სერვერი გადასცემს ერთდროულად შესრულებული ურთიერთდამოუკიდებელი ოპერაციების შედეგებს. ეს შედეგები მოთავსებულია შეტყობინებაში XML დოკუმენტის სახით
|
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)
|
|
4xx Client Error
|
|
HTTP status codes in the 4xx
range indicate that a problem occurred with the request.
|
|
401 Unauthorized
|
|
402 Payment Required
|
|
403 Forbidden
|
|
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
|
|
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
|
|
506 Variant Also Negotiates
(RFC 2295)
|
|
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
Post a Comment