შესავალი
ვებგვერდების დათვალიერებისას მომხმარებლებს სხვადასხვა შეცდომები ხვდებათ. ერთ-ერთი ყველაზე გავრცელებული შეცდომაა 406 Not Acceptable შეცდომა. HTTP 406 შეცდომა, ასევე ცნობილი, როგორც "Not Acceptable", ნიშნავს, რომ სერვერს არ შეუძლია მომხმარებლის მოთხოვნაში მითითებული მონაცემების მიწოდება. ეს შეცდომა, როგორც წესი, მაშინ ხდება, როდესაც სერვერი ვერ აძლევს პასუხს, რომელიც შეესაბამება Accept სათაურში მითითებულ მოთხოვნებს.
ამ სტატიაში ჩვენ განვიხილავთ, რა არის HTTP 406 შეცდომა, მისი გამომწვევი ფაქტორები და როგორ გამოვასწოროთ იგი, თუ ეს შეცდომა თქვენს ვებგვერდზე აღმოჩნდება.
რა არის HTTP 406 შეცდომა?
როდესაც ბრაუზერები სერვერს ინფორმაციას სთხოვენ, ისინი აგზავნიან Accept სათაურს, რომელიც სერვერს აცნობებს, თუ რა ფორმატებში შეუძლია ბრაუზერს მონაცემების მიღება. თუ სერვერი ვერ აგზავნის მონაცემებს Accept სათაურში მითითებულ ფორმატში, ის უბრუნებს 406 Not Acceptable შეცდომას.
ეს შეცდომა ასევე შეიძლება გამოწვეული იყოს mod_security მოდულის მიერ. mod_security არის ვებ-ფაირვოლის პროგრამული უზრუნველყოფის ტიპი, რომელიც მუშაობს Apache ვებ სერვერზე და ასკანერებს დაწესებული წესების დარღვევებს. თუ რომელიმე ქმედება არღვევს ამ წესებს, სერვერი აგზავნის 406 შეცდომას.
საიტზე 406 შეცდომის გამომწვევი მიზეზები
406 შეცდომის მიზეზი თქვენს ჰოსტინგ ანგარიშზე, როგორც წესი, არის სერვერზე არსებული mod_security წესები. mod_security არის უსაფრთხოების მოდული, რომელიც ნაგულისხმევად ჩართულია ყველა ჰოსტინგ ანგარიშში Apache ვებ სერვერზე. თუ საიტი, გვერდი ან ფუნქცია არღვევს რომელიმე წესს, სერვერი შეიძლება აგზავნიდეს 406 შეცდომას.
როგორ გამოვასწოროთ 406 Not Acceptable შეცდომა?
1. გადახედეთ შეცდომის შეტყობინებას
როდესაც HTTP 406 შეცდომას წააწყდებით, სერვერი, როგორც წესი, შეიცავს შეტყობინებას, რომელიც შეიცავს დამატებით ინფორმაციას შეცდომის შესახებ. დაიწყეთ ამ შეტყობინების წაკითხვით, რათა გაიგოთ ზუსტი პრობლემა.
2. შეამოწმეთ მოთხოვნის სათაურები
HTTP 406 შეცდომა დაკავშირებულია Accept სათაურთან მომხმარებლის მოთხოვნაში. ეს სათაური განსაზღვრავს, თუ რა მედია ტიპების მიღება შეუძლია მომხმარებელს პასუხად. სერვერი ამოწმებს ამ სათაურს, რომ გაარკვიოს შეუძლია თუ არა მომხმარებლის მოთხოვნების შესაბამისი მონაცემების მიწოდება. დარწმუნდით, რომ Accept სათაური სწორად არის კონფიგურირებული.
Accept სათაურის მაგალითი JSON მონაცემების მისაღებად:
Accept: application/json
Accept სათაურის მაგალითი JSON და XML მონაცემების მისაღებად:
Accept: application/json, application/xml
როგორ გავასწოროთ 406 შეცდომა cPanel პანელში mod_security-ის გამორთვით:
mod_security-ის გამორთვა
თუ mod_security-ს შეცდომა გეპარებათ ეჭვი, სცადეთ მისი დროებითი გამორთვა კონკრეტული დომენისთვის. ეს შეგიძლიათ გააკეთოთ cPanel-ში შემდეგი ნაბიჯებით:
შესვლა cPanel-ში: გამოიყენეთ თქვენი მონაცემები თქვენი საიტის მართვის პანელში შესასვლელად.
უსაფრთხოების განყოფილება: მოძებნეთ ModSecurity მოდული.
გამორთეთ mod_security კონკრეტული დომენისთვის: მოძებნეთ სასურველი დომენი სიაში და გამორთეთ მოდული შესაბამისი პარამეტრების გამოყენებით.
ტესტირება: mod_security-ის გამორთვის შემდეგ, გადადით თქვენს საიტზე და შეამოწმეთ შეცდომის გაქრობა.
მნიშვნელოვანი: mod_security-ის გამორთვა ამცირებს საიტის უსაფრთხოების დონეს. დარწმუნდით, რომ სწორად გაააქტიურებთ მას მას შემდეგ, რაც შეცდომა გაქრება.
.htaccess კონფიგურაცია cPanel-ში
.htaccess რედაქტორი: გადადით cPanel-ის ფაილ მენეჯერის განყოფილებაში და გახსენით .htaccess ფაილი, რომელიც მდებარეობს თქვენი საიტის ძირეულ დირექტორიაში.
კონფიგურაციების დამატება: ფაილში დაამატეთ ინსტრუქციები, რომლებიც საშუალებას მისცემს სერვერს უკეთესად დაამუშავოს მოთხოვნები:
<IfModule mod_negotiation.c>
Options -Multiviews
</IfModule>
შეინახეთ ცვლილებები და გამოსცადეთ თქვენი საიტი.
3. შეამოწმეთ შინაარსის შეთანხმება
შინაარსის შეთანხმება არის პროცესი, რომლის დროსაც სერვერი არჩევს პასუხის ფორმატს მომხმარებლის მოთხოვნების მიხედვით. თუ 406 შეცდომას მიიღებთ, შესაძლოა სერვერი ვერ აწვდის შინაარსს მოთხოვნილი ფორმატით. დარწმუნდით, რომ Accept სათაურში მითითებული მედია ტიპები მხარს უჭერს სერვერი.
4. გამოიყენეთ ველური სიმბოლოები ან ზოგადი ტიპები
თუ სერვერი მხარს უჭერს რამდენიმე მედია ტიპს, მაგრამ მაინც 406 შეცდომას იღებთ, შეგიძლიათ Accept სათაურში ველური სიმბოლოები ან ზოგადი ტიპები გამოიყენოთ. მაგალითად, შეგიძლიათ მიუთითოთ */*, რათა აჩვენოთ, რომ ნებისმიერი მედია ტიპი მისაღებია:
Accept: */*
5. შეამოწმეთ სერვერის კონფიგურაცია
დარწმუნდით, რომ სერვერი სწორად არის კონფიგურირებული შინაარსის შეთანხმების მიხედვით და შეუძლია პასუხის გენერაცია მოთხოვნილი ფორმატებით. ზოგჯერ სერვერის არასწორი კონფიგურაცია შეიძლება 406 შეცდომას გამოიწვიოს.
6. სცადეთ Accept სათაურის სხვადასხვა მნიშვნელობები
სცადეთ Accept სათაურის სხვადასხვა მნიშვნელობები თქვენს მოთხოვნაში, რათა დარწმუნდეთ, რომ სერვერს შეუძლია რომელიმე მითითებულ ფორმატში შინაარსის მიწოდება. ეს დაგეხმარებათ კონკრეტული მედია ტიპის იდენტიფიკაციაში, რომელიც პრობლემას იწვევს.
7. დაუკავშირდით სერვერის ადმინისტრატორს ან API-ის პროვაიდერს
თუ ყველა შესაძლო დადგენა სცადეთ და მაინც HTTP 406 შეცდომას აწყდებით, შესაძლოა ეს პრობლემა სერვერის მხარეს იყოს. დაუკავშირდით სერვერის ადმინისტრატორს ან API პროვაიდერს და მიაწოდეთ თქვენი მოთხოვნის დეტალები და მიღებული შეცდომა. მათ შეუძლიათ დაგეხმაროთ პრობლემის გადაჭრაში.
8. განიხილეთ 406 შეცდომების დამუშავება
თუ თქვენ ქმნით კლიენტ აპლიკაციას, მნიშვნელოვანია სწორად მოამზადოთ 406 შეცდომების დამუშავება. შეგიძლიათ შექმნათ პროცედურები, რომლითაც მომხმარებელს მიაწვდით ინფორმაციას შეცდომის შესახებ ან ჩაინიშნავთ შეცდომის დეტალებს მომავალი შესწავლისთვის.
დასკვნა
406 Not Acceptable შეცდომა შეიძლება რთულად გამოიყურებოდეს, მაგრამ სწორი მიდგომითა და დიაგნოსტიკით შესაძლებელია მისი ეფექტურად მოგვარება. ამ შეცდომის გამომწვევი მიზეზების გააზრება და მის გამოსწორების მეთოდების გამოყენება დაგეხმარებათ თქვენი ვებგვერდის გამართული ფუნქციონირებისა და მომხმარებლის გამოცდილების გაუმჯობესებაში.