Хабардың URL мекенжайы http hsm. HTTP ішінде қайта бағыттайды

  • Бағдарламалау
  • Әр семестрдің басында Академиялық университеттің (Санкт-Петербор) МИИТ кафедрасының магистратурасының студенттері мен серіктес компаниялардың өкілдері жиналады. Өкілдер жұмыс істейтін жобалар туралы айтады, ал студенттер оларды таңдайды.

    Parallels Labs зертханасында орындалған жобалардың бірінде біздің студент виртуалды аппараттық қауіпсіздік модулін (HSM) енгізу мүмкіндігін зерттеді. Нәтижесінде ол ашық бастапқы OpenVZ жобасына өзінің VHSM енгізуін қосты. Кесу астында оның шешімі туралы толығырақ оқыңыз.

    HSM дегеніміз не

    Жеке кілт арқылы серверге жіберілген деректерге қол қоятын қолданбаны елестетіп көрейік. Бұл кілттің жоғалуы оның иесі үшін қолайсыз болсын. Жүйені қашықтан бұзу нәтижесінде мұндай құнды кілтті ағып кетуден қалай қорғауға болады? HSM тәсілі жүйенің осал бөлігіне кілттің мазмұнына мүлде рұқсат бермеу керектігін ұсынады. HSM - бұл сандық кілттерді немесе басқа құпия деректерді сақтайтын, оларды басқаратын, генерациялайтын, сондай-ақ олардың көмегімен криптографиялық операцияларды орындайтын физикалық құрылғы. Деректер бойынша барлық операциялар HSM ішінде орындалады және пайдаланушы тек осы әрекеттердің нәтижелеріне қол жеткізе алады. Құрылғының ішкі жады физикалық қол жеткізуден және бұзудан қорғалған. Енуге әрекет жасағанда, барлық құпия деректер жойылады.

    HSM пайдалануды бастау үшін пайдаланушы өзін аутентификациялауы керек. Аутентификация жүйенің осал бөлігінде жұмыс істейтін HSM клиенттік қолданбасы арқылы орындалса, шабуылдаушы HSM құпия сөзін ұстап алуы мүмкін. Ұсталған құпия сөз шабуылдаушыға HSM жүйесінде сақталған құпия деректерді алмай-ақ пайдалануға мүмкіндік береді. Осылайша, аутентификацияны жүйенің осал бөлігін айналып өту арқылы, мысалы, PIN кодын физикалық түрде енгізу арқылы орындаған жөн.

    HSM пайдаланудағы негізгі кедергі олардың жоғары құны болып табылады. Құрылғының сыныбына байланысты баға $10 (USB токендері, смарт карталар) $30 000+ дейін өзгеруі мүмкін (аппараттық криптографиялық жеделдету, бұзудан қорғау, жоғары қолжетімділік функциялары бар құрылғылар). Бұлтты шешімдерді жеткізушілер HSM нарығын елеусіз қалдырған жоқ. Мысалы, Amazon бұлтты HSM-ті айына орташа есеппен $1,373 бағамен сатады.

    HSM негізгі ерекшеліктерінің бірі криптографиялық қызметтерді пайдаланатын жүйенің осал бөлігін осы қызметтерді орындайтын HSM жүйесінен оқшаулау болып табылады. Бұлттағы жеке даналар (виртуалды машиналар, контейнерлер және т.б.) бір-бірінен оқшауланғанын ескеріңіз, сондықтан осал дананың сыртында HSM функцияларын сыртқы әлемнен оқшауланған басқа данаға жылжытатын болсақ, біз бұлттың функционалдығын өте дәл қайта шығарамыз. физикалық HSM. Біз бұл тәсілді Virtual HSM (VHSM) деп атаймыз. Оны біздің студент OpenVZ жобасы үшін қалай жүзеге асырғанын қарастырайық.

    OpenVZ дегеніміз не

    OpenVZ - бір Linux ядросында бірнеше оқшауланған Linux операциялық жүйелерін іске қосу технологияларының бірі. Бұл ретте олар әрбір Linux ОЖ бөлек контейнерде жұмыс істейтінін айтады. Жеңілдету үшін, Linux ядросында әртүрлі контейнерлерге тағайындалған қолданбаларды бір-бірінің бар екенін білмейтіндей етіп оқшаулауға мүмкіндік беретін кірістірілген функционалдылық бар. Қолданбалар контейнерін өзгерте алмайды. Оқшаулау және қауіпсіздікті жақсарту үшін IPC көмегімен әртүрлі контейнерлердегі қолданбалар арасындағы байланысқа тыйым салынады. Бұл әдетте желілік қосылымдар арқылы жасалады. Нәтижесінде біз контейнерлердің «тұрақты» виртуалды машиналармен ұқсастығын көреміз. OpenVZ және оған негізделген технологиялар VPS құру үшін хостинг провайдерлері арасында танымал. Академиялық университет қазірдің өзінде контейнерлерді виртуалдандыруға қатысты жобаларды жүзеге асырды. Мысалы . Parallels OpenVZ негізгі әзірлеушісі болып табылады. VHSM-ді OpenVZ үшін арнайы енгізу өте табиғи болды.

    Виртуалды HSM архитектурасы

    • Client VE – шифрлау, қол қою және т.б. сияқты криптографиялық қызметтерді қажет ететін пайдаланушы қолданбалары орындалатын OpenVZ контейнері. Контейнер цифрлық кілттерді ұрлау үшін қашықтан жасалған шабуылдар үшін қол жетімді.
    • VHSM виртуалды ортасы (VHSM VE) — VHSM сервері жұмыс істеп тұрған OpenVZ контейнері, Client VE бағдарламасындағы қолданбалардан пәрмендерді қабылдайтын және оларды орындайтын демон. VHSM VE жүйесінде жұмыс істейтін басқа қолданбалар жоқ. VHSM VE OpenVZ көмегімен қарапайым пайдаланушы контейнерлерінен оқшауланған. Контейнерде желі интерфейстері жоқ және желі арқылы қол жетімді емес.
    • Transport - бұл хабарларды VE клиентінен VHSM VE-ге және кері тасымалдауға арналған Linux ядросының модулі.
    • VHSM API – HSM үшін стандартты PKCS №11 интерфейсінің бір бөлігін жүзеге асыратын кітапхана, ClientVE қолданбасынан қолданба пәрмендерін тасымалдау арқылы VHSM серверіне жібереді және пәрмен нәтижесін ClientVE бағдарламасындағы қолданбаға қайтарады.
    Әрбір компонентті толығырақ қарастырыңыз.

    VHSM виртуалды ортасы

    VHSM сервері пайдаланушылардың аутентификациясына, құпия деректер қоймасымен әрекеттесуге және криптографиялық операцияларды орындауға жауап береді. VHSM серверіне қоса, VHSM VE құрамында маңызды ақпаратты шифрланған түрде сақтайтын Secure Storage дерекқоры бар. Әрбір VHSM пайдаланушысының деректері шифрланатын өзінің басты кілті болады. Негізгі кілт PBKDF2 функциясын пайдаланып пайдаланушының құпия сөзінен жасалады. Кіріс ретінде оған жіберілген тұз дерекқорда шифрланбай сақталады. Осылайша, VHSM пайдаланушының басты кілтін дерекқорда сақтамайды, ал PBKDF2 пайдалану дерекқор ұрланған кезде пайдаланушының бастапқы құпия сөзін дөрекі түрде мәжбүрлеу жылдамдығын айтарлықтай төмендетеді.

    Пайдаланушыны VHSM жүйесінде рөлі адам немесе бағдарлама болуы мүмкін әкімші тіркейді. Пайдаланушы тіркелген кезде, VHSM 256-бит аутентификация кілтін жасайды және оны AES-GCM көмегімен басты кілтпен шифрлайды. Әрі қарай, VHSM қолданбас бұрын, пайдаланушы логин-пароль жұбымен өзін аутентификациялайды. Аутентификация кезінде пайдаланушының аутентификация кілтінің шифрын ашу үшін пароль мен тұздан құралған басты кілт пайдаланылады. GCM пайдалану шифрды шешу кезінде басты кілттің дұрыстығын тексеруге мүмкіндік береді. Негізгі кілт пайдаланушының құпия сөзінен алынады, сондықтан оның дұрыстығын тексеру аутентификация кезінде жіберілген пайдаланушының құпия сөзін өзі тексеруге мүмкіндік береді. Сәтті аутентификациядан кейін VHSM-де сақталған пайдаланушының сандық кілттерін пайдаланатын криптографиялық қызметтер пайдаланушыға қолжетімді болады.

    VHSM белгілі бір пайдаланушы VHSM жұмыс істей алатын контейнерлердің нақты таңдауын талап етеді. Пайдаланушы пәрмені алынатын контейнер туралы ақпаратты OpenVZ қамтамасыз етеді.

    VHSM API

    Бұл пайдаланушы контейнерлерінде орналасқан C кітапханасы және HSM үшін стандартты PKCS#11 интерфейсінің бір бөлігін жүзеге асырады, ол кілттерді, деректерді, сеанстарды, цифрлық қолтаңбаларды, шифрлауды және т.б. басқаруға мүмкіндік береді. VHSM API пайдаланудың нақты мысалын қарастырайық:
    1. Теңшелетін контейнердегі қолданба ол жіберетін хабарға қол қоюы керек.
    2. VHSM API пайдалана отырып, қолданба жалпы-жеке кілт жұбын жасайды, жеке кілт идентификаторын және ашық кілтті алады.
    3. Қолданба қажетті идентификаторы бар жеке кілтпен қол қою үшін хабарламаны VHSM API интерфейсіне жібереді. VHSM API қол қойылған хабарды қайтарады.
    4. Қол қойылған хабарлама мен ашық кілт хабарламаны алушыға жіберіледі. Бұл жағдайда жеке кілт клиент контейнеріне қол жетімді емес.
    Жобаның клиенттік бөлігі сонымен қатар OpenSSL және PAM қолданатын қолданбаларда VHSM-мен жұмыс істеуге мүмкіндік беретін OpenSSL қозғалтқышы мен PAM модулін енгізді. Дегенмен, жобаның бұл бөлігі нашар әзірленген және тұжырымдаманың дәлелі болып табылады.

    VHSM тасымалдау

    Жоғарыда айтылғандай, әртүрлі контейнерлерде жұмыс істейтін қолданбалар Linux IPC механизмдерін пайдаланып бір-бірімен байланыса алмайды. Сондықтан, хабарламаларды клиенттерден серверге және кері тасымалдау үшін жүктелетін Linux ядросының модулі іске асырылды. Модуль ядродағы Netlink серверін іске қосады және оған VHSM клиенттері мен VHSM сервері қосылады. Netlink сервері хабарларды көзден (VHSM клиенті) тағайындалған жерге (VHSM сервері) және кері жіберуге жауапты. Хабарламалармен бірге хабарлама көзі контейнерінің идентификаторы қосылады, осылайша, мысалы, сервер белгілі бір пайдаланушыға VHSM пайдалануына тыйым салынған контейнерлерден сұрауларды қабылдамайды.

    Қорытынды

    VHSM құрудың негізгі мақсаты пайдаланушы контейнерінде жұмыс істейтін пайдаланушы қолданбаларының жадынан құпия кілттерді ұрлау мүмкіндігін жою болды. Бұл мақсатқа қол жеткізілді, өйткені құпия деректерге тек оқшауланған контейнерде (VHSM VE) қол жеткізуге болады. Оқшаулау OpenVZ арқылы жүзеге асырылады.

    VHSM VE дерекқорының ағуы құпия деректердің бірден жоғалуына әкелмейді, себебі олар шифрланған түрде сақталады. Шифрлау кілті дерекқорда сақталмайды, бірақ аутентификация кезінде жіберілген пайдаланушының құпия сөзінен жасалады.
    Кез келген ақпараттық қауіпсіздік технологиясы сияқты, ұсынылған шешім шабуылдаушыға тағы бір кедергі болып табылады және ақпаратты толық қорғауды қамтамасыз етпейді.

    Ағылшын тілінде бұл Uniform Resource Locator дегенді білдіреді, орыс тіліне аударғанда «бірыңғай ресурс локаторы» дегенді білдіреді. Орыс тілінде бұл аббревиатура әдетте «у-эр-эль», «ю-ар-эль» немесе жай «url» деп айтылады. URL мекенжайының не екенін толығырақ түсінуге тырысайық. Интернеттегі әрбір құжаттың (веб-беттің) нақты белгіленетін орны бар. URL мекенжайын пайдалану арқылы нақты веб-бетке нақты жол көрсетіледі. Компьютердегі кез келген файлға жолды көрсеткендей, URL мекенжайы әдетте келесідей көрінетін белгілі бір үлгіге сәйкес құрастырылады:

    http://name.ru/papka/document.html

    Мұндағы http - деректер тасымалданатын хаттаманың түрін көрсетеді, name.ru - сайттың домендік атауын білдіреді, papka - қалта, ал document.html - осы URL мекенжайына апаратын нақты бет.

    Біздің http://name.ru/papka/document.html URL мекенжайы жалған болғандықтан, тек мысал ретінде берілген және сәйкесінше, ешқандай веб-параққа апармайтындықтан, оны басуға тырыссақ, біз қате туралы ақпаратты қамтитын бетке жіберілді. Бұл басқаша көрінуі мүмкін, бірақ біз міндетті түрде «404 табылмады» деген жазуды көреміз. Аудармада «табылған жоқ» сөзі «табылмады» дегенді білдіреді, ал 404 бетінің пайда болуы веб-беттің URL мекенжайының толық емес, қате енгізілгенін (қате немесе теру қатесі бар) немесе сұралған беттің енді мына жерде орналаспағанын білдіреді. бұл мекенжай жойылған немесе атауы өзгертілген

    404 қатесі жиі басқа бетте табылған сілтемені басқанда және сілтеме ескірген кезде пайда болады. Сайт авторы бізге қажет құжатты жылжытып, атын өзгертуі немесе жоюы мүмкін еді. Өту кезінде 404 бет пайда болса не істеу керек? Алдымен URL мекенжайының дұрыс екеніне көз жеткізіңіз, егер біз оны білсек. Кез келген қателерді немесе қателерді түзетіп, әрекетті қайталаңыз. Егер бейтаныс ресурсқа сілтеме жасағанда 404 қатесі орын алса, сіз басты бетке өтіп, сайтты іздеуді пайдаланып көріңіз - қажет ақпарат әлі де табылуы мүмкін.

    Айтпақшы, көптеген веб-сайт әзірлеушілері өз сайтындағы 404 беті қорқынышты түрде үмітсіз болып көрінбейтініне көз жеткізеді. Мұнда жоғалған пайдаланушының көңіл-күйін көтеру үшін күлкілі суреті бар әзіл мәтіні, сонымен қатар негізгі сайтқа, іздеу жолағына немесе сайт картасына сілтемелер орналастырылған. Егер 404 беті жағымсыз болып көрінсе және оған жазылатын сілтемелер болмаса, URL мекенжайын қолмен қысқартуға болады, тек сайт атауын қалдырады - біздің мысалда ол http://name.ru/ болады және осылайша алуға тырысыңыз. сайттың негізгі бетіне, ол жерден сіз іздеген бетке өте аласыз.

    URL(URL, ағылшынның Uniform Resource Locator тілінен алынған) - Интернетте сайтты орналастыру индексі. URL мекенжайында домен атауы мен бетке жол, соның ішінде сол беттің файл атауы бар.

    Тим Бернерс-Ли (Женевадағы Еуропалық ядролық соғыс кеңесінің мүшесі) 1990 жылы URL мекенжайын ойлап тапты, ол сол кезде жүйеде файлдарды сақтауға арналған жай ғана мекен-жай болды.

    Үлкен артықшылықтармен (Интернет-навигацияның қолжетімділігі) қатар URL-мекенжайының да кемшілігі бар - ол тек латын әріптерімен, сандармен және кейбір белгілермен жұмыс істейді. Егер сізге, мысалы, кириллицаны пайдалану қажет болса, онда URL мекенжайы ерекше жолмен қайта кодталуы керек..ru/wiki/%D1%87%D1%82%D0%BE-%D1%82%D0%B0%D0 %BA%D0%BE %D0%B5-url/. Мұндай кодтау екі қадаммен жүзеге асады: біріншіден, әрбір таңба екі байттан тұратын тізбекке түрлендіріледі, содан кейін әрбір байт он алтылық жүйеде қайта жазылады.

    SEO-де веб-сайттың URL мекенжайы қаншалықты маңызды?

    Іздеу жүйелері URL мекенжайларындағы негізгі сөз тіркестерінің пайда болуын ескереді. Ең үлкен әсерді доменнің мекенжайындағы және ішкі домендердің бетке апаратын жолдағы оқиғалар және беттің файл атауы азырақ, бірақ бәрібір маңызды рөл атқарады; Осыған байланысты Интернетте киберскваттинг деп аталатын табыс түрі белсенді түрде дамып келеді. Оның мәні кейін көтерілген бағамен қайта сату мақсатында домендік атауларды нарықтық құны бойынша тіркеу болып табылады.

    HTTP – гипермәтінді таратылған жүйелер арасында тасымалдауға арналған протокол. Шындығында, http қазіргі Web-тің негізгі элементі болып табылады. Өзін-өзі құрметтейтін веб-әзірлеушілер ретінде біз бұл туралы мүмкіндігінше білуіміз керек.

    Бұл хаттаманы өз мамандығымыздың объектісі арқылы қарастырайық. Бірінші бөлімде біз негіздерді қарастырамыз және сұрауларды/жауаптарды қарастырамыз. Келесі мақалада біз кэштеу, қосылымды өңдеу және аутентификация сияқты толығырақ мүмкіндіктерді қарастырамыз.

    Сондай-ақ осы мақалада мен негізінен RFC 2616 стандартына сілтеме жасаймын: Гипермәтінді тасымалдау протоколы -- HTTP/1.1.

    HTTP негіздері

    HTTP бірнеше хосттар мен клиенттер арасындағы байланысты қамтамасыз етеді және желі параметрлерінің ауқымын қолдайды.

    Негізінде TCP/IP байланыс үшін пайдаланылады, бірақ бұл мүмкін болатын жалғыз нұсқа емес. Әдепкі бойынша, TCP/IP 80 портты пайдаланады, бірақ басқаларын пайдалануға болады.

    Хост пен клиент арасындағы байланыс екі кезеңде жүреді: сұрау және жауап. Клиент HTTP сұрауын жасайды, оған жауап ретінде сервер жауап (хабарлама) береді. Біраз уақыттан кейін біз бұл жұмыс схемасын толығырақ қарастырамыз.

    HTTP протоколының ағымдағы нұсқасы 1.1 болып табылады, онда кейбір жаңа мүмкіндіктер енгізілген. Менің ойымша, олардың ең маңыздылары: үнемі ашық қосылымды қолдау, деректерді берудің жаңа механизмі, бөлшектік тасымалдау кодтауы, кэштеу үшін жаңа тақырыптар. Мұның кейбірін осы мақаланың екінші бөлігінде қарастырамыз.

    URL

    Веб-коммуникацияның өзегі біртұтас ресурс локаторы (URL) арқылы жіберілетін сұраныс болып табылады. URL мекенжайының не екенін білетініңізге сенімдімін, бірақ толық болу үшін мен бірнеше сөз айтуды жөн көрдім. URL құрылымы өте қарапайым және келесі компоненттерден тұрады:

    Протокол тұрақты қосылымдар үшін http немесе қауіпсіз деректер алмасу үшін https болуы мүмкін. Әдепкі порт 80 болып табылады. Одан кейін сервердегі ресурсқа жол және параметрлер тізбегі келеді.

    Әдістері

    URL мекенжайын пайдалана отырып, біз байланысқымыз келетін хосттың нақты атын анықтаймыз, бірақ қандай әрекетті орындауымыз керек екенін тек HTTP әдісі арқылы хабарлауға болады. Әрине, біз жасай алатын әрекеттердің бірнеше түрі бар. HTTP көптеген қосымшалардың қажеттіліктеріне сәйкес келетін ең қажеттілерін жүзеге асырады.

    Қолданыстағы әдістер:

    АЛУ: Бар ресурсқа қол жеткізіңіз. URL сервер сұралған ресурсты тауып, жауап ретінде қайтаруы үшін барлық қажетті ақпаратты тізімдейді.

    POST: Жаңа ресурс жасау үшін пайдаланылады. POST сұрауы әдетте жаңа ресурс жасау үшін барлық қажетті ақпаратты қамтиды.

    ҚОЙ: Ағымдағы ресурсты жаңартыңыз. PUT сұрауы жаңартылатын деректерді қамтиды.

    ЖОЮ: Бар ресурсты жою үшін пайдаланылады.

    Бұл әдістер ең танымал және көбінесе әртүрлі құралдар мен құрылымдарда қолданылады. Кейбір жағдайларда PUT және DELETE сұраулары POST жіберу арқылы жіберіледі, оның мазмұны ресурста орындау қажет әрекетті көрсетеді: жасау, жаңарту немесе жою.

    HTTP басқа әдістерді де қолдайды:

    БАС: GET сияқты. Айырмашылығы мынада, бұл сұрау түрімен хабарлама жіберілмейді. Сервер тек тақырыптарды қабылдайды. Мысалы, ресурстың өзгертілгенін анықтау үшін пайдаланылады.

    із: жіберу кезінде сұрау көптеген кіру нүктелері мен прокси-серверлер арқылы өтеді, олардың әрқайсысы өз ақпаратын енгізеді: IP, DNS. Бұл әдісті қолдану арқылы сіз барлық аралық ақпаратты көре аласыз.

    ОПЦИЯЛАР: Белгілі бір ресурс үшін сервер мүмкіндіктерін, параметрлерін және конфигурациясын анықтау үшін пайдаланылады.

    Күй кодтары

    Клиенттің сұрауына жауап ретінде сервер жауапты жібереді, оның құрамында күй коды да бар. Бұл кодтың ерекше мағынасы бар, сондықтан клиент жауапты қалай түсінуге болатынын анық түсінеді:

    1xx: Ақпараттық хабарламалар

    Бұл кодтардың жиынтығы HTTP/1.1 жүйесінде енгізілген. Сервер пішіннің сұрауын жібере алады: Күту: 100-жалғастыру, бұл клиент сұраныстың қалған бөлігін әлі жіберіп жатқанын білдіреді. HTTP/1.0 іске қосылған клиенттер бұл тақырыптарды елемейді.

    2xx: Сәттілік хабарлары

    Егер клиент 2xx сериясынан код алса, сұрау сәтті жіберілді. Ең көп таралған опция - 200 OK. GET сұрауымен сервер хабарламаның негізгі бөлігінде жауап жібереді. Басқа да ықтимал жауаптар бар:

    • 202 Қабылданды: Сұрау қабылданды, бірақ жауапта ресурс болмауы мүмкін. Бұл сервер жағындағы асинхронды сұраулар үшін пайдалы. Сервер ресурсты жіберу немесе жібермеу керектігін анықтайды.
    • 204 Мазмұн жоқ: Жауап мәтінінде хабар жоқ.
    • 205 Мазмұнды қалпына келтіру: Серверге құжаттың көрсетілімін қалпына келтіруге нұсқау береді.
    • 206 Ішінара мазмұн: Жауап мазмұнның бір бөлігін ғана қамтиды. Қосымша тақырыптар мазмұнның және басқа ақпараттың жалпы ұзындығын анықтайды.

    3xx: қайта бағыттау

    Клиентке тағы бір әрекет жасау қажеттілігі туралы хабарлама түрі. Ең жиі қолданылатын жағдай клиентті басқа мекенжайға қайта бағыттау болып табылады.

    • 301 Тұрақты жылжытылды: Ресурсты енді басқа URL мекенжайынан табуға болады.
    • 303 Басқа бөлімін қараңыз: Ресурсты басқа URL мекенжайынан уақытша табуға болады. Орын тақырыбы уақытша URL мекенжайын қамтиды.
    • 304 Өзгертілмеген: Сервер ресурс өзгертілмегенін анықтайды және клиент жауаптың кэштелген нұсқасын пайдалану қажет. Ақпараттың сәйкестігін тексеру үшін ETag (Entity Tag хэш) қолданылады;

    4xx: Клиент қателері

    Бұл хабар класын сервер сұрау қате жіберілді деп шешсе, пайдаланады. Ең көп таралған код - 404 табылмады. Бұл ресурс серверде табылмады дегенді білдіреді. Басқа ықтимал кодтар:

    • 400 қате сұрау: Сұрақ қате құрастырылған.
    • 401 Рұқсатсыз: Сұрау жасау үшін аутентификация қажет. Ақпарат авторизация тақырыбы арқылы беріледі.
    • 403 Тыйым салынған: Сервер ресурсқа кіруге рұқсат бермеді.
    • 405 Әдіске рұқсат етілмейді: Ресурсқа кіру үшін жарамсыз HTTP әдісі пайдаланылды.
    • 409 Қақтығыс: сервер сұрауды толық өңдей алмайды, себебі ресурстың жаңарақ нұсқасын өзгертуге тырысады. Бұл PUT сұрауларымен жиі болады.

    5xx: сервер қателері

    Сұрауды өңдеу кезінде сервер қатесін анықтау үшін пайдаланылатын кодтар сериясы. Ең жиі кездесетіні: 500 ішкі сервер қатесі. Басқа опциялар:

    • 501 Орындалмаған: Сервер сұралған функцияны қолдамайды.
    • 503 Қызмет қолжетімсіз: Бұл серверде қате болған немесе шамадан тыс жүктелген жағдайда орын алуы мүмкін. Әдетте бұл жағдайда сервер жауап бермейді және жауап беруге берілген уақыт аяқталады.

    Сұраныс/жауап хабарлама пішімдері

    Келесі суретте клиенттің сұрауды жіберуінің, сервердің жауапты өңдеуінің және жіберуінің схемалық процесін көруге болады.

    HTTP арқылы жіберілетін хабарламаның құрылымын қарастырайық:

    Хабар = *() CRLF [ ] = Сұраныс-жол | Күй-сызық = Өріс-аты ":" Өріс-мән

    Хабардың тақырыбы мен негізгі бөлігі арасында бос жол болуы керек. Бірнеше айдар болуы мүмкін:

    Сәйкес мүмкіндік қосылған болса, жауап мәтіні ақпараттың барлығын немесе бір бөлігін қамтуы мүмкін (Трансфер-кодтау: кесінді). HTTP/1.1 сонымен қатар Transfer-Encoding тақырыбын қолдайды.

    Жалпы айдарлар

    Мұнда сұрауларда да, жауаптарда да қолданылатын тақырыптардың бірнеше түрі берілген:

    Жалпы тақырып = Cache-Control | Байланыс | Күні | Прагма | Трейлер | Тасымалдау-кодтау | Жаңарту | | арқылы Ескерту

    Біз осы мақалада кейбір нәрселерді қарастырдық, кейбірін екінші бөлімде толығырақ қарастырамыз.

    Арқылы тақырыбы TRACE сұрауында пайдаланылады және барлық прокси серверлер арқылы жаңартылады.

    Прагма тақырыбы пайдаланушы тақырыптарын тізімдеу үшін пайдаланылады. Мысалы, Pragma: no-cache Cache-Control: no-cache сияқты. Бұл туралы екінші бөлімде толығырақ айтатын боламыз.

    Күн тақырыбы сұраудың/жауаптың күні мен уақытын сақтау үшін пайдаланылады.

    Жаңарту тақырыбы протоколды өзгерту үшін пайдаланылады.

    Тасымалдау-кодтау Трансфер-кодтау: кесінді арқылы жауапты бірнеше бөліктерге бөлуге арналған. Бұл HTTP/1.1 жүйесіндегі жаңа мүмкіндік.

    Нысан тақырыптары

    Нысан тақырыптары мазмұн туралы мета ақпаратты береді:

    Entity-header = Рұқсат ету | Мазмұнды кодтау | Content-Language | Content-Length | Content-Location | Content-MD5 | Мазмұн ауқымы | Мазмұн түрі | Мерзімі бітеді | Соңғы өзгертілген

    Content префиксі бар барлық тақырыптар хабарламаның құрылымы, кодтауы және өлшемі туралы ақпаратты береді.

    Мерзімі аяқталады тақырыбы нысанның жарамдылық мерзімі мен күнін қамтиды. «Ешқашан аяқталмайды» мәні ағымдағы сәттен бастап уақыт + 1 кодын білдіреді. Соңғы рет өзгертілген нысанның соңғы өзгертілген уақыты мен күнін қамтиды.

    Осы тақырыптарды пайдалана отырып, тапсырмаларыңызға қажетті ақпаратты көрсете аласыз.

    Сұраныс пішімі

    Сұраныс келесідей көрінеді:

    Сұраныс-жол = әдіс SP URI SP HTTP-нұсқасы CRLF әдісі = "ПАРАМЕТРЛАР" | «БАСТЫ» | "АЛУ" | "POST" | "PUT" | "ЖОЮ" | «ІЗ»

    SP - токендер арасындағы бөлгіш. HTTP нұсқасы HTTP-нұсқасында көрсетілген. Нақты сұрау келесідей көрінеді:

    GET /articles/http-basics HTTP/1.1 Хост: www.articles.com Қосылым: сақтау-alive Кэш-Басқару: кэш жоқ Прагма: кэш жоқ Қабылдау: text/html,application/xhtml+xml,application/xml; q=0,9,*/*;q=0,8

    Ықтимал сұрау тақырыптарының тізімі:

    Сұраныс тақырыбы = Қабылдау | Accept-Charset | Қабылдау-кодтау | Қабылдау тілі | Авторизация | Күту | | Хост | Егер-Сәйкестік | Егер-өзгертілген-бері | Сәйкестік жоқ болса | If-Range | If-Unmodified-Since | Макс-форвардтар | Прокси-авторизация | Ауқым | Сілтеме беруші | TE | Пайдаланушы-агент

    Accept тақырыбы қолдау көрсетілетін MIME түрлерін, тілін және таңба кодтауын көрсетеді. From, Host, Referer және User-Agent тақырыптары клиент туралы ақпаратты қамтиды. If- префикстері жағдай жасауға арналған. Шарт өтпесе, 304 Өзгертілмеген қате пайда болады.

    Жауап пішімі

    Жауап пішімі тек күйде және тақырыптар санымен ерекшеленеді. Күй келесідей көрінеді:

    Күй-жолы = HTTP-нұсқасы SP күй-коды SP себебі-фраза CRLF

    • HTTP нұсқасы
    • Күй коды
    • Адам оқи алатын күй хабары

    Қалыпты күй келесідей көрінеді:

    HTTP/1.1 200 Жарайды

    Жауап тақырыптары келесідей болуы мүмкін:

    Жауап тақырыбы = Қабылдау-ауқымдары | Жасы | ETag | Орналасқан жері | Прокси-аутентификация | Қайталау-Кейін | Сервер | Әртүрлі | WWW-аутентификация

    • Жас - серверде хабарлама жасалған секундтармен берілген уақыт.
    • Жауапқа өзгертулер мен өзгертулерді тексеру үшін ETag MD5 нысандары.
    • Орын қайта бағыттау үшін пайдаланылады және жаңа URL мекенжайын қамтиды.
    • Сервер жауап жасалған серверді көрсетеді.

    Менің ойымша, бұл бүгінгі күн үшін жеткілікті теория. Енді HTTP хабарламаларын бақылау үшін қолдануға болатын құралдарды қарастырайық.

    HTTP трафигін анықтау құралдары

    HTTP трафигін бақылауға арналған көптеген құралдар бар. Міне, олардың бірнешеуі:

    Ең жиі қолданылатын Chrome әзірлеушілер құралдары:

    Түзеткіш туралы айтатын болсақ, Fiddler қолданбасын пайдалана аласыз:

    HTTP трафигін бақылау үшін сізге curl, tcpdump және tshark қажет.

    HTTP-мен жұмыс істеуге арналған кітапханалар - jQuery AJAX

    JQuery соншалықты танымал болғандықтан, оның AJAX сұраулары үшін HTTP жауаптарын өңдеуге арналған құралдары да бар. jQuery.ajax(параметрлер) туралы ақпаратты ресми веб-сайттан табуға болады.

    Параметрлер нысанын беру және beforeSend кері шақыру функциясын пайдалану арқылы setRequestHeader() әдісі арқылы сұрау тақырыптарын орнатуға болады.

    $.ajax(( url: "http://www.articles.com/latest", түрі: "GET", beforeSend: функциясы (jqXHR) ( jqXHR.setRequestHeader("Accepts-Language", "en-US,en" ");)))

    Сұрау күйін өңдегіңіз келсе, мұны келесідей орындауға болады:

    $.ajax(( statusCode: ( 404: function() ( alert("бет табылмады"); ) ) ));

    Төменгі сызық

    Міне, HTTP протоколының негіздеріне саяхат. Екінші бөлімде одан да қызықты деректер мен мысалдар болады.

    Интернетте жұмыс істейтін әрбір дерлік пайдаланушы сілтемелерді кездестіреді URL, URL мекенжайлары, сілтемеге өту және сілтемені пайдалану үшін шақырулар. Бұл ұғымдармен таныс емес немесе жаңа адамдар үшін мен сізге URL деген не екенін, URL мекенжайын қалай пайдалану керектігін, URL мекенжайы қандай бөліктерге бөлінетінін айтып беретін материал жазуды шештім, сонымен қатар мен оны қалай табуға болатынын түсіндіремін. Интернеттегі дұрыс сілтеме.

    URL- бұл әртүрлі типтегі файлдар (құжаттар, суреттер, бейнелер, аудио және т.б.) орналасқан интернет-ресурсқа жолды көрсететін мекенжай. URL аббревиатурасы «Uniform Resource Locator» дегенді білдіреді, орыс тілінде әдетте «url», «yu-ar-el», «u-er-el» деп айтылады, көбінесе жай «сілтеме» сөзі қолданылады.

    Мен ағама тұжырымдаманың барлық қыр-сырын сауатты айтып беру үшін URL мекенжайының не екенін іздегенім есімде. Ал мен өзім осы термин пайда болған кезде қызығушылық таныттым.

    URL концепциясының авторы британдық Тим Бернс-Ли болып табылады, ал өнертабыстың өзі (1990 ж.) Интернет-технологияларды дамытуда сапалы секіріс жасады. Енді URL мекенжайы желідегі барлық дерлік ресурстардың мекенжайларының идентификаторы болып табылады, ал URL терминінің өзі бірте-бірте кеңірек URI (Uniform Resource Identifier) ​​терминімен ауыстырылады.

    Әлеуметтік желідегі жарияланымның URL мекенжайлары


    URL мекенжайы қандай бөліктерге бөлінеді?

    URL мекенжайының классикалық мысалы келесідей көрінеді:

    http://site_address/folder/page.html

    Көріп отырғаныңыздай, URL бірнеше бөліктерге бөлінген:

    Бірінші бөлім (http://)қолданылатын протоколды анықтайды. Қарапайым тілмен айтқанда, ол қажетті ресурсқа қол жеткізу үшін қолданылатын әдіс туралы айтады.

    Осы URL мекенжайында қолданылатын «HTTP» протоколы «Hypertext Transfer Protocol» дегенді білдіреді және ол көп жағдайда қолданылады. Бірақ URL мекенжайларын басқа протоколдар арқылы табуға болады, мысалы, FTP (Файл тасымалдау протоколы), HTTPS (Hypertext Transfer Protocol Secure - HTTP-тің қауіпсіз, шифрланған нұсқасы), mailto (электрондық пошта мекенжайы) және т.б.

    Барлығы URL хаттамаларының бірнеше ондаған түрі бар: ftp, http, rtmp, rtsp, https, gopher, mailto, news, nntp, smb, prospero, telnet, wais, xmpp, файл, деректер және т.б., бірақ әдетте бірнеше. негізгілері пайдаланылады, мен сәл жоғары тізімдедім.

    Екінші бөлім(Веб-сайт мекенжайы) домендік атау болып табылады. Техникалық тұрғыдан алғанда, бұл адамдарға сүйікті бетінің мекенжайын оңай есте сақтауға мүмкіндік беретін таңбалар, әріптер немесе сөздердің тіркесімі ғана. Әйтпесе, ресурстарға сілтемелер http://192.168.384..

    Үшінші бөлік (folder/page.html)әдетте пайдаланушы қол жеткізгісі келетін кейбір ресурс бетіне нұсқайды. Ол жай ғана атау түрінде немесе қалталар жинағы арқылы белгілі бір файлға жол түрінде болуы мүмкін, соңғысы әдетте қиғаш сызықпен (/) бөлінеді. Интернет беттерінің кеңейтімі әртүрлі болуы мүмкін - php, htm, html, shtml, asp және басқалары.

    Бұл түсініктемелерді бейнеде көрнекі түрде көруге болады:

    Домендік атау алдында қолданылатын аббревиатуралар www(World Wide Web) міндетті емес, онсыз сайттың адресін пайдалануға болады, сайт міндетті түрде ашылады.

    URL мекенжайын пайдалану ерекшеліктері

    Егер пайдаланушы көрсеткен URL мекенжайы дұрыс болмаса, жүйе бізге «Бет табылмады!» жазбасы бар 404 қатесін көрсетеді. Бұл пайдаланушы қате немесе ескірген бет мекенжайын тергенін білдіреді, сондықтан мекенжайды теру кезінде дәлдік, дәлдік және назар аудару қажет. URL мекенжайын теру кезінде «көшіру/қою» функцияларын пайдаланып бет мекенжайын көшіруді пайдалануды ұсынамын. Сондай-ақ, қысқартылған URL мекенжайын тек сайттың негізгі атауы түрінде (қалталар мен беттерсіз) теріп көруге болады және сайттың негізгі бетінде бізге қажет бетке сілтеме іздеңіз.

    URL мекенжайларының кемшіліктері

    Бұл URL сілтемесі екенін сипаттағаннан кейін URL мекенжайының барлық кемшіліктерін қарастырайық. Интернетте шарлауды жеңілдетудің артықшылықтарымен қатар, URL мекенжайларының өзіндік кемшіліктері бар. Бұл тек сандармен, латын әріптерімен және кейбір белгілермен жұмыс істейді, кириллица әдетте екі кезеңде қайта кодталуы керек (URL кодтауы), оның біріншісінде әрбір кириллица таңбасы екі байтқа түрлендіріледі, содан кейін әрбір байт қайта жазылады. он алтылық жүйе.

    Сонымен қатар, мекенжайда негізінен шағын әріптерді пайдалану ұсынылады (кейбір Unix жүйелері олардың бас әріптерін әртүрлі таңбалар ретінде қабылдайды, бұл бетті ашудағы қатеге әкелуі мүмкін), сонымен қатар URL мекенжайларында бос орындарды пайдалануға тыйым салынады.

    URL мекенжайын қалай табуға болады. Бетбелгілер.

    Қажетті URL мекенжайын табу үшін іздеудің кілт сөздерін енгізу қажет іздеу жүйелерін пайдалануға болады. Мысалы, егер сізге фильм қажет болса, оның атын немесе актерлердің атын, егер музыка болса - орындаушылардың аттары мен шығарманың атын енгізіңіз. «Іздеу» түймесін басу арқылы сіз URL мекенжайлары бар көптеген сайттарды аласыз, оны басу арқылы сіз қалаған нәтижені таба аласыз.

    Ағымдағы беттің URL мекенжайы браузеріңіздің жоғарғы жағында орналасқан мекенжай жолағында орналасқан.

    Қажетті беттің URL мекенжайын есте сақтау үшін браузеріңіздің бетбелгілер жолағын пайдаланыңыз. Мысалы, танымал Mozilla Firefox шолғышында жұлдызша түріндегі бетбелгілер белгішесі мекенжай жолағы деңгейінде жоғарғы оң жақта орналасқан. Оны басу арқылы сіз бетбелгіңіздің атын, сондай-ақ бетбелгілерді қоюға болатын қалтаны енгізе аласыз (мен әдетте олардың кез келгеніне бір рет басу арқылы қол жеткізуге мүмкіндік беретін арнайы бетбелгілер тақтасын пайдаланамын).

    Қорытынды

    URL мекенжайларын пайдалану көптеген пайдаланушыларға қажетті сайттарға оңай және жылдам қол жеткізуге мүмкіндік беретін Интернетті шолуды айтарлықтай жеңілдетті. «URL мекенжайы дегеніміз не?» Мақаланы оқығаннан кейін әлі де сұрақтарыңыз болса, оларды мақалаға түсініктемелерде жазыңыз.

    Бүгінгі күні қажет нәрсе - сайттың атын және оның кеңейтімін мекенжай жолағына енгізу, содан кейін пайдаланушы ресурсқа дерлік қол жеткізе алады. Мұның бәрі үш таңбалы сандардың өте күрделі сериясын есте сақтаудың қажеті жоқ, бәрі оңай, жылдам, тиімді орындалады - жалпы алғанда, не қажет, солай емес пе.

    Байланыста



    Бөлісу