Кіріспе
Әртүрлі веб-сайттарды шолу кезінде пайдаланушылар әртүрлі қателерге тап болуы мүмкін. Ең жиі кездесетін қателердің бірі - 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 тақырыбы дұрыс орнатылғанына көз жеткізіңіз.
JSON қабылдау үшін Accept тақырыбының үлгісі:
Accept: application/json
JSON және XML қабылдау үшін Accept тақырыбының үлгісі:
Accept: application/json, application/xml
cPanel панелінде 406 қатесін жою үшін мәселені келесі жолмен шешуге болады:
mod_security-ді өшіру
Егер mod_security қатенің себебі деп күдіктенсеңіз, оны белгілі бір домен үшін уақытша өшіріп көріңіз. Мұны cPanel-де келесі қадамдар арқылы жасауға болады:
cPanel-ге кіру: Сайтты басқару панеліне өту үшін тіркелгі деректеріңізді енгізіңіз.
Қауіпсіздік бөлімін табыңыз: "ModSecurity" модулін ашыңыз.
Домен үшін mod_security-ді өшіріңіз: Тізімдегі қажетті доменді табыңыз және белгі қоюды алып тастау немесе тиісті опцияны таңдау арқылы модульді өшіріңіз.
Сайтты тексеріңіз: mod_security-ді өшіргеннен кейін сайтқа қайта кіріп, қатенің жоғалып кеткенін тексеріңіз.
Маңызды: mod_security-ді өшіру сайттың қауіпсіздік деңгейін төмендетеді. Оны қайта қоспас бұрын дұрыс орнатылғанына көз жеткізіңіз.
cPanel-де .htaccess конфигурациясы
.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 қатесі күрделі болып көрінуі мүмкін, бірақ дұрыс көзқарас пен диагностикамен оны тиімді шешуге болады. Бұл қателіктің пайда болу себептерін түсіну және оны түзету әдістерін қолдану веб-сайтыңыздың үздіксіз жұмысын қамтамасыз етуге және пайдаланушы тәжірибесін жақсартуға көмектеседі.