Veb-serverlarni qanday ishlatish kerak. Web-server: u nima uchun kerak, u qanday ishlaydi va qanday ishlaydi.Veb-server kompyuterda qanday ishlaydi

Qoida tariqasida, oddiy biznes egasi uchun veb-server yoki hosting kabi tushunchalar mutlaqo asossiz narsa bilan bog'liq. Ba'zida uning dietasida hech qanday ajoyib narsa yo'q. Keling, veb-server nima ekanligini, unga nima kerakligini va qanday ishlashini tushuntirishga harakat qilaylik, ayniqsa texnik tafsilotlarga kirmasdan, aksincha, barmoqlaringizda. Biz uy kompyuteringiz terminali yoki noutbukda bunday serverni qanday yaratish va sozlash haqida gaplashamiz.

Veb-server nima?

Bu boradagi eng muhimi, ushbu turdagi server tegishli dasturiy ta'minot o'rnatilgan Internetdagi kompyuterdan boshqa narsa emasligini tushunishdir.

Ammo bu uy ongida kuchli konfiguratsiyani yaratish mumkin emas degani emas. Bizda eng keng Windows operatsion tizimlari mavjud bo'lgani uchun Ubuntu (Linux) da veb-serverni qanday yaratish haqida ma'lumot muhokama qilinmaydi.

Veb-serverlarga qanday ehtiyoj bor?

Internetdagi serverlarda juda ko'p ma'lumotlar saqlanadi. Quvvat ma'lumotlar bazalarini yangilash uchun antiviruslarning o'zlari ular ustida ishlamoqda. Muxbir shuningdek, bunday serverlar bilan to'g'ridan-to'g'ri aloqaga ega bo'lib, brauzerdan so'rovlarni shakllantiradi (ma'lumot qidirish, har bir tomonga uzatish va h.k.).

Asosiysi, Internetda mavjud bo'lgan barcha sahifalar veb-serverlarda saqlanadi, ularning bir tomonida yuklab olingan yoki yuklab olingan dasturning yuklab olinishi ko'rsatiladi, boshqa tomondan esa natija serverning o'zi tomonidan ko'rinadi. kirishga harakat qiling.

Hammasi qanday amalga oshadi?

Barcha muxbirlarning ta'kidlashicha, Internetdagi (veb-sayt) bir xil turdagi ma'lumotlarni taqdim etadigan istalgan resursga kirish uchun manzil qatoriga www (yoki http) prefiksini kiriting va keyin ismni kiriting. Lekin hech kim veb-server nima qilishi va natijasini ko'rishi bilan qiziqmaydi.

Aslida, bu erda server va mijoz tushunchalarini ajratish kerak. Bizning versiyamizda Internetda joylashtirilgan sahifa uzoq serverda saqlanadi. Mijozning kompyuteri mijoz rolini o'ynaydi, bu erda zo'ravonlik sodir bo'ladi.

Internetga kirish uchun veb-brauzerlar deb ataladigan dasturlardan foydalanish kerak. Siz koristuvach so'rovini veb-server tomonidan tan olinishi mumkin bo'lgan raqamli kodga tarjima qilishingiz kerak. Server uni qayta ishlaydi va mos keladigan kodni ko'rsatadi va brauzer endi millionlab nollarni va bittani matn, grafik, ovoz va video ma'lumotlarning oddiy ko'rinishiga o'zgartiradi, bu i sahifasida joylashtirilgan.

Eng mashhur veb-serverlar

Bizga ma'lumki, eng keng tarqalgan server dasturlari Apache va Microsoft IIS hisoblanadi. Birinchisi mashhurroq va UNIX-ga o'xshash tizimlarda keng qo'llaniladi, lekin uni Windows muhitida o'rnatish mumkin. Bundan tashqari, Apache serveri dasturiy ta'minotdan butunlay ozod va barcha turdagi operatsion tizimlar bilan yaxshi ishlaydi. Biroq, ta'kidlanganidek, ushbu xavfsizlik dasturi professional dasturlar va chakana sotuvchilar uchun muhimdir.

Microsoft kompaniyasining dasturiy mahsuloti oddiy mijoz tomonidan homiylik qilinadi, u malakali buxgalterning qo'shimcha yordamisiz Windows uchun bunday veb-serverni o'rnatishi va sozlashi mumkin.

Proteus, rasmiy statistik ma'lumotlarga ko'ra, Apache xavfsizlik dasturi barcha mavjud serverlarning qariyb 60 foizini quvvatlaydi, shuning uchun elektr ta'minoti va dastlabki konfiguratsiyani sozlash uning misolida ko'rib chiqiladi.

Uy kompyuteringizdagi veb-server: o'rnatilgan

O'rnatish uchun siz uchta asosiy komponentni o'z ichiga olgan WAMP deb nomlangan maxsus server paketini yuklab olishingiz kerak:

  • Apache - o'z-o'zidan ishlashi mumkin bo'lgan server qobig'i dasturi, joylashtirilgan sahifalarda dinamik tarkib mavjud bo'lgan holatlar bundan mustasno.
  • PHP - bu WordPress, Joomla, Drupal kabi dinamik serverlar uchun superbuds tomonidan qo'llab-quvvatlanadigan til dasturi.
  • MySQL - bu dinamik tarkibga ega saytlarni yaratishda foydalaniladigan yagona ma'lumotlar bazasini boshqarish tizimi.

O'rnatish WampServer to'plamidan amalga oshirilishi mumkin. Buni amalga oshirish uchun "Maistra" indekslarini to'ldirish kifoya, bu bosqichlardan birida hisob-kitoblar uchun foydalaniladigan Internet-brauzerni tanlashni talab qiladi.

Buni amalga oshirish uchun siz saqlangan brauzer fayli bilan jildga o'tishingiz kerak (bu Internet Explorer emas, u Program Files katalogida joylashgan bo'ladi). Brauzerning o'zini Windows xavfsizlik devori nosozliklari ro'yxatiga qo'shish yaxshidir. Yakuniy bosqichda "Ishga tushirish mumkin emas" elementi yoniga tasdiq belgisini qo'ying, shundan so'ng tizim tepsisida tegishli belgi paydo bo'ladi, uni bosishingiz va mahalliy xostni (localhost) ishga tushirishni tanlashingiz kerak.

Agar hamma narsa to'g'ri tashkil etilgan bo'lsa, serverning bosh sahifasi paydo bo'ladi. Keyinchalik, sizdan qo'shimcha komponentlarni o'rnatish so'raladi (agar siz hech narsa qurmasangiz, tizim chalkash bo'ladi). Asosan, o'rnatish qo'shimcha komponentlar, elementlar va komponentlardan iborat bo'lib, ular keyinchalik server tomonidan qo'llaniladi.

Butt serverni sozlash va sinovdan o'tkazish

Veb-serverni sozlash ancha murakkabroq. Endi tizim tepsisi menyusida WWW jildiga (ish yoki HTML fayllarni saqlash uchun joy) o'tishni tanlang. Shundan so'ng, bloknotga quyidagi matnni yozing:

WAMP testi!

Vitannya!

"; ?>

Siz shunchaki matnni Notepad’dan nusxalashingiz va faylni index.php nomi ostida o‘sha WWW papkasida saqlashingiz mumkin (garchi bu holda ham qila olasiz, qolgan vaqt mahalliy xostni tekshirish bilan cheklanadi). Buning o'rniga istalgan boshqa matn yoki iborani kiritishingiz mumkin.

Keyin brauzer sahifani yangilashi kerak (F5), shundan so'ng u ekranda paydo bo'ladi. Biroq, sahifa boshqa kompyuterlar uchun mavjud emas.

Kirishga ruxsat berish uchun, boshlanadigan bo'limni belgilash uchun httpd.conf faylini tahrirlashingiz kerak oldinga siljishlar:

Buyurtmaga ruxsat berish, rad etish

Pislyamov almashtirildi

Albatta, uy veb-serverining ishlashi yoki o'rnatilishi haqida ko'p narsani tushunish kerakligi sababli, bu erda biz tushunish uchun ozgina ma'lumot beramiz. Darhaqiqat, barcha jarayonlar juda murakkab, ayniqsa so'rovlarni qayta ishlash va dalil turlari bo'yicha, uyda serverni o'rnatish haqida gapirmasa ham bo'ladi. Mutaxassis ushbu taomlar bilan shug'ullanishi kerakligi sababli, WordPress va PHP tili bo'yicha asosiy bilimga ega bo'lish kerak bo'ladi. Boshqa tomondan, asosan matnli ma'lumotlarni o'z ichiga olgan qiziqarli sahifalarni nashr qilish uchun siz ushbu sahifalardan foydalanishingiz mumkin.

Vakolatli mijoz-server arxitekturasi: veb-API-ni qanday qilib to'g'ri loyihalash va ishlab chiqish

Noveo veb-ishlab chiqaruvchisi Volodymyr tomonidan oshkor qilingan

Aksariyat veb-saytlar, veb-xizmatlar va mobil dasturlar uchun mijoz-server arxitekturasini tushunish va veb-API-ni ishlab chiqish yoki u bilan integratsiya qilish hali erta. Juda yangi narsaning oldini olish uchun bunday tizimlarning rivojlanishiga asoslanib, veb-API dizayniga chinakam universal yondashuvni qo'llash muhimdir. Sizning hurmatingizga ushbu ovqatlanishga bag'ishlangan bir qator maqolalarni taqdim etamiz.

Birinchi navbatda: Chinni shaxslari

Bir kuni, veb-xizmatni yaratish jarayonida men mijoz ilovalari ehtiyojlariga xizmat qilish va ularni maqolalar va maqolalar seriyasida tartibga solish uchun veb-APIni loyihalash mavzusidagi barcha bilim va fikrlarimni to'plashga qaror qildim. Albatta, mening dalillarim mutlaq deb da'vo qilmaydi va konstruktiv tanqid va qo'shimcha tanqid mavjud bo'ladi.

Bu ko'proq falsafiy, kamroq texnik ekanligi aniq va texnik qismni sevuvchilar uchun o'ylash kerak bo'lgan narsa bo'ladi. Men bu statistik ma'lumot haqida aytmoqchi bo'lganlarim bu mutlaqo yangi, siz o'zingiz haqingizda hech qachon eshitmagan, o'qimagan yoki o'ylamagan narsa ekanligiga shubha qilaman. Men hamma narsani yagona tizimga solishga harakat qilaman, biz uchun eng yaxshisi va bu allaqachon bizga qimmatga tushmoqda. Tim kam emas, men yorqin bo'laman, chunki mening taxminlarim sizning amaliyotingizda sizga foydali bo'ladi. Shunday ekan, ketaylik.

Mijoz va server

Server Bunday holda, biz HTTP so'rovini olib tashlash, uni qayta ishlash va uni to'g'ri qaytarish uchun mavhum mashinaga tayanamiz. Ushbu maqola kontekstida jismoniy mohiyat va ichki arxitektura umuman muhim emas, xoh u talaba noutbuki bo'ladimi yoki butun dunyo bo'ylab tarqalgan sanoat serverlarining katta klasteri. Apache yoki Nginx, PHP, Python yoki Ruby, SQL yoki MongoDB kabi eshiklarni kim quvvatlantirayotgani biz uchun muhim emas. Boshlang, shunda server bosh qoidasiga amal qiladi - deyarli, yangiliklarni tushuning va o'qing.

Mijoz Siz xohlagan narsani qilishingiz mumkin, shunchaki HTTP so'rovini tuzing va yuboring. Oxirigacha, bu vaziyatda, biz ham ushbu so'rovni boshqaradigan mijozlar kabi, sohada ishlaydiganlar kabi maqsadlarga ega bo'lmaymiz. Mijoz brauzerda ishlaydigan JavaScript skripti, mobil ilova, serverda ishlaydigan yomon (yoki unchalik emas) demon yoki hatto aqlli muzlatgichlar (va hokazo) bo'lishi mumkin.

Bu yerda gapimiz ikkisining eng muhim xavf-xatarlari orasiga tarqalib ketish usuli, shunday usulki, ulardan biri adolatga tortiladi va har birining rizqi kam qolmasin.

REST falsafasi

REST (vakillik holatini uzatish) dastlab ma'lumotlarni boshqarish uchun oddiy va aniq interfeys sifatida ishlab chiqilgan bo'lib, o'rta darajadagi server (server) bilan bir nechta asosiy operatsiyalarni o'tkazish: ma'lumotlarni olish (GET), saqlash (POST), (PUT/PATCH) ko'rinishini o'zgartirish (DELETE). Ko'rinib turibdiki, bu o'tish har doim kirishda ma'lumotlarni qayta ishlash (va kirish to'g'ri kiritilgan), ma'lumotlarga kirishni farqlash (hisobotning izi yo'q) va ma'lumotlarni tekshirish kabi variantlar bilan birga kelgan. kirish ma'lumotlari (siz yozgan nisenitnya hisoboti), kirish oh, barcha mumkin bo'lgan buzilishlar bilan, chunki server undan oldin o'ladi, xuddi shunday yovuzlik bilan. mijoz.

Bundan tashqari, REST bir qator me'moriy tamoyillarga ega, ulardan ba'zilari REST haqidagi boshqa har qanday maqolada mavjud. Keling, ularni qisqacha ko'rib chiqaylik, shunda yoqimsiz hid yaqinlashadi va biz hech qaerga borishimiz shart emas:

Serverning mijozdan mustaqilligi- Serverlar va mijozlar bir xil turdagi bo'lishidan qat'i nazar, darhol boshqalar bilan almashtirilishi mumkin, chunki ular orasidagi interfeys o'zgarmaydi. Server mijozning hisobini saqlamaydi.
Resurs manzilining o'ziga xosligi- har bir ma'lumot birligi (har qanday hissa darajasida) o'ziga xos URL manziliga ega, bu aslida resurs uchun mutlaqo noyob identifikator hisoblanadi.

Butt: OLISH /api/v1/users/25/name

Ma'lumotni saqlash formatining uni uzatish formatidan mustaqilligi- server bir xil ma'lumotlarni uzatish uchun turli xil formatlarni qo'llab-quvvatlashi mumkin (JSON, XML va boshqalar), lekin qo'llab-quvvatlanadiganlaridan qat'i nazar, ma'lumotlarni ichki formatida saqlaydi.

Barcha kerakli metama'lumotlarning mavjudligi- ma'lumotlarning o'ziga qo'shimcha ravishda, server so'rovni qayta ishlash tafsilotlarini, masalan, bekor qilish to'g'risidagi ma'lumotlarni, u bilan keyingi ishlash uchun zarur bo'lgan turli xil quvvat manbalarini, masalan, yozuvlar sonini o'zgartirish uchun javobgardir. sahifani to'g'ri ko'rsatish uchun to'plam Yangi navigatsiya. Keyinchalik biz turli xil manbalarni ko'rib chiqamiz.

Biz bilmaydigan narsalar

Klassik REST mijoz va server ishini ma'lumotlarning bir tekis saqlash joyi sifatida hurmat qiladi, unda ma'lumotlarning bir-biri bilan bog'lanishi va o'zaro bog'liqligi haqida hech narsa yo'q. Buning orqasida hamma narsa butunlay mijoz dasturining yelkasiga tushadi. Biroq, ijtimoiy xizmatlar yoki onlayn marketing tizimlari kabi ma'lumotlarni boshqarish tizimlari ishlab chiqiladigan joriy mavzular ma'lumotlar bazasida saqlanadigan ob'ektlar o'rtasidagi murakkab munosabatlarga bog'liq. Bu ulanishlarni qo'llab-quvvatlash, keyin. Ma'lumotlarning yaxlitligi server tomonining javobgarligi sohasida joylashgan, mijoz esa faqat ushbu ma'lumotlarga kirish uchun interfeysga ega. RESTda nimani ko'rmayapmiz?

Wikliks funktsiyalari

Ma'lumotlar va ular orasidagi ulanishlarni qo'lda o'zgartirish o'rniga, biz shunchaki resurs funksiyasini bosamiz va uni kerakli ma'lumotlar uchun argument sifatida "qabul qilamiz". Ushbu operatsiya REST standartlariga mos kelmaydi, bu bizni, ishlab chiquvchilarni, agar biror narsaga duch kelsak, tashvishlantiradigan alohida ma'noga ega emas.

Eng oddiy dumba- koristuvachning avtorizatsiyasi. Biz login funktsiyasini chaqiramiz, uni bulut ma'lumotlarini o'z ichiga olgan ob'ektni argument sifatida beramiz va undan kirish kaliti olinadi. Server tomonidagi ma'lumotlarga kiritilgan narsalar bizni qiziqtirmaydi.

Boshqa variant- Ma'lumotlar o'rtasidagi aloqalarni yaratish va uzish. Masalan, ular guruhga koristuvach qo'shdilar. Biz nuqtani bosamiz guruh ob'ektdan o'tuvchi parametr sifatida addUser funktsiyasi koristuvach, Keling, natijani olib tashlaymiz.

Va shuningdek Ma'lumotni tejash bilan bevosita bog'liq bo'lgan operatsiyalar mavjud, masalan, etkazib berish to'g'risida xabar berish, har qanday operatsiyalarni tasdiqlash va kuzatish (qish davrining tugashi va boshqalar).

Bir nechta operatsiyalar

Bu tez-tez sodir bo'ladi va mijozlarning vakillari mijozga bir vaqtning o'zida o'xshash ob'ektlarni yaratish/o'zgartirish/olib tashlash/tanlash qiyinroq ekanligini tushunib etadilar va server tomonining mumkin bo'lgan hukmiga ko'ra teri ob'ekti. Bu erda hech bo'lmaganda bir nechta variantlar mavjud: yoki qonunga kiritilgan barcha o'zgarishlar yoki qonunga tez-tez o'zgartirishlar (ba'zi ob'ektlar uchun) yoki muddat. Xuddi shu strategiya bir xil: o'zgarishlarning turg'unligi kamdan-kam hollarda hamma uchun muvaffaqiyatga olib keladi yoki tez-tez turg'unlik yoki siz qandaydir yarashuv hissini va shu tariqa to'liq tranzaksiya mexanizmiga tortishish hissini olasiz.

Ideal bo'lmagan veb-API uchun biz tizimga shunga o'xshash operatsiyalarni ham kiritmoqchimiz. Kelajakda shulardan birida pul ishlashga harakat qilaman.

Statistik so'rovlar, agregatorlar, ma'lumotlarni formatlash

Ko'pincha serverda saqlangan ma'lumotlarga asoslanib, biz statistik ma'lumotlarni yoki maxsus tarzda formatlangan ma'lumotlarni olishimiz kerak bo'ladi: masalan, mijoz tomonida grafiklarni ko'rsatish uchun. Aslini olganda, bu yaratilishi mumkin bo'lgan ma'lumotlar, ya'ni boshqacha tarzda va faqat o'qish uchun mavjud, shuning uchun ularni bir xil toifaga qo'yishni his qilish mumkin. Menimcha, eng qiziqarli statistik ma'lumotlardan biri shundaki, ularda noyob ID mavjud emas.

E'tibor bering, bu haqiqiy qo'shimchalarni ishlab chiqishda muhokama qilinishi mumkin bo'lgan narsa emas va men sizning qo'shimcha qo'shimchalaringiz va tuzatishlaringizni qabul qilishdan xursand bo'laman.

Ma'lumotlarni qayta ko'rib chiqing

Ob'ektlar

Mijoz va server o'rtasida saqlanadigan ma'lumotlarning asosiy turi ob'ektdir. Mohiyatga ko'ra, ob'ekt hokimiyat va unga bog'liq ahamiyatga ega bo'lgan narsadir. Biz serverga ob'ektni so'rov sifatida yuborishimiz va so'rov natijasini ob'ekt sifatida olishimiz mumkin. Bunday holda, ma'lumotlar bazasida saqlanadigan haqiqiy mohiyatdan xabardor bo'lish shart emas, chunki har qanday holatda qo'shimchalar yoki rad etishlar paydo bo'ladi. Masalan, avtorizatsiya uchun bulut ma'lumotlari mustaqil ob'ekt sifatida emas, balki ob'ekt sifatida uzatiladi. Shu bilan birga, ma'lumotlar bazasida saqlanadigan ob'ektlar ichki tizim xarakteriga ega qo'shimcha vakolatlar, masalan, yaratilish va tahrir qilish sanalari, turli xil tizim belgilari va praporsharlar bilan boyitildi. Ob'ektlarning kuchi kuchli skalyar qiymatlar yoki noto'g'ri joylashtirilgan bo'lishi mumkin bog'liq ob'ektlarі ob'ektlar to'plami, bu ob'ektning bir qismidir. Ob'ektlarning ba'zi kuchlari tahrirlanishi mumkin, qisman tizimli, faqat o'qish uchun foydalanish mumkin, va ba'zilari statistik xarakterga ega bo'lishi va birlik uchun hisoblanishi mumkin (masalan, yoqtirishlar soni). Ob'ektning hokimiyatida bo'lgan ishtirokchilar mulkdorning huquqlariga bo'ysunishi mumkin.

Ob'ektlar to'plami

To'plamlar haqida gapiradigan bo'lsak, biz sizga o'xshash ob'ektlar ro'yxati bilan ishlashga imkon beruvchi boshqa turdagi server resursini hurmat qilamiz. ob'ektlarni qo'shish, o'chirish, o'zgartirish va ulardan tanlang. Ushbu to'plam, nazariy jihatdan, kuchga (masalan, sahifadagi elementlarning maksimal soni) va funktsiyalarga (bu erda menda pul bor va hokazo) bo'ysunishi mumkin.

Skalyar qiymatlar

Sof ko'rinishda skalyar ma'nolar, go'yo xotiramning mohiyati bilan o'ralgandek, kamdan-kam chekkaga toraydi. Ular ob'ektlar yoki to'plamlarning vakolatlari hisoblanadi va shu tariqa ular o'qish uchun ham, yozish uchun ham foydalanishlari mumkin. Misol uchun, mijozning nomi alohida o'chirilishi va o'zgartirilishi mumkin GET /users/1/name . Amalda, bu qobiliyat kamdan-kam hollarda behuda ketadi, ammo kerak bo'lganda siz uning qo'lingizda bo'lishini xohlaysiz. To'plamning kuchi ayniqsa muhimdir, masalan, yozuvlar soni (filtrlangan yoki filtrsiz): GET /news/count.

Kelgusi maqolalardan birida men ushbu operatsiyalarni tasniflashga harakat qilaman va amalda duch kelgan narsalarga asoslanib, mumkin bo'lgan so'rovlar va natijalar turlarining variantlarini tasvirlab beraman.

Yaqin do'st: To'g'ri yo'l

Kim bilan men sizning veb-API-ning resurslari va usullarining noyob usullarini ishlab chiqish yondashuvlari va ushbu yo'l va uning tarkibiy qismlarining tashqi ko'rinishiga integratsiyalashgan dasturlarning arxitektura xususiyatlari haqida gaplashmoqchiman.

Qayin ustida turganda nima haqida o'ylash kerak

Versiya

Ertami-kechmi, har qanday ishlaydigan tizim rivojlana boshlaydi: rivojlanadi, katlanadi, kengayadi va murakkablashadi. Ishlab chiquvchilar uchun REST API eng katta xavf tug'dirmaydi, chunki eski versiyalar ishlayotgan paytda API ning yangi versiyalarini ishga tushirish zarur. Bu erda men endi sizning tizimingiz ostidagi arxitektura o'zgarishlari haqida emas, balki ma'lumotlar formatini va u bilan operatsiyalar to'plamini o'zgartiradiganlar haqida gapiryapman. Qanday bo'lmasin, versiyalar chiqish kodining boshlang'ich tashkilotiga ham, asosan, URL-manzilni yaratishga o'tkazilishi kerak. URL manziliga kelsak, so'rovga yuborilgan API versiyasini kiritishning ikkita eng mashhur usuli mavjud. example-api.com/v1/ prefiksi va versiyani v1.example-api.com subdomeniga bo'lish. Sizning ehtiyojlaringiz va ehtiyojlaringizga qarab, ulardan har qandayini tanlashingiz mumkin.

Komponentlarning avtonomligi

Mijozlarning bir qator rollarini qo'llab-quvvatlaydigan katlama tizimlarining veb-API ko'pincha ularning vazifalarini bajaradigan qismlarga bo'linadi. Aslini olganda, teri qismi mustaqil qo'shimcha bo'lishi mumkin va turli jismoniy mashinalar va platformalarda ishlatilishi mumkin. APIni tavsiflash kontekstida biz uchun server so'rovni qanday qayta ishlashi va qanday vakolatlar va texnologiyalar ishtirok etishi muhim emas. API mijozi uchun tizim inkapsullangan. Tizimning turli qismlari juda xilma-xil funksiyalarga ega bo'lishi mumkin, masalan, ma'muriy va yordamchi qismlar. Va bu manbalar bilan ishlash metodologiyasi butunlay boshqacha bo'lishi mumkin. Shuning uchun bunday qismlar admin.v1.example-api.com domeni yoki example-api.com/v1/admin/ prefiksi bilan teng ravishda bo'linishi kerak. Bu, ehtimol, majburiy emas va tizimning murakkabligi tufayli juda ko'p qiymat mavjud.

Ma'lumot almashish formati

Eng qulay va funktsional, mening fikrimcha, ma'lumotlar almashinuvi formati JSON, ammo XML, YAML yoki seriyalashtirilgan ob'ektlarni turini yo'qotmasdan saqlash imkonini beruvchi boshqa formatlardan foydalanishning ma'nosi yo'q. Bir nechta kirish/chiqish formatlarini qo'llab-quvvatlash uchun API yaratishingiz mumkin. So'rovda uzatiladigan ma'lumotlar formatini ko'rsatish uchun kerakli Qabul qilish va Content-Type formatini ko'rsatish uchun HTTP so'rov sarlavhasini tanlash kifoya. Yana bir mashhur usul - bu resursning URL manziliga kengaytmani qo'shishdir, masalan, GET /users.xml, lekin bu usul unchalik tartibsiz va chiroyli ko'rinadi, garchi bu URL uchun muhim va GET so'rovlari uchun eng yaxshi variant, lekin emas barcha operatsiyalar uchun.

Mahalliylashtirish va boylik

Amalda, API ning boyligi ko'pincha oxirgi foydalanuvchiga to'g'ridan-to'g'ri taqdim etish uchun xizmat xabarnomalari va kerakli ma'lumotlar to'g'risidagi ma'lumotlarni uzatish bilan bog'liq. Boy kontent ham tejash bilan bir vaqtda, va mening fikrimcha, aniqroq farqlash kerak, masalan, agar sizda bitta va bir xil maqola turli xil so'zlar bilan bo'lsa, unda aslida ikkita farq mohiyati bor. birlik belgisi men uni almashtiraman. Tilingizni aniqlash uchun siz turli usullardan foydalanishingiz mumkin. Eng oddiy usulda siz standart HTTP Accept-Language sarlavhasidan foydalanishingiz mumkin. Men example-api.com/en/ prefiksi yordamida GET parametrini til="en" qo'shish yoki en.example-api.com domen nomini navigatsiya qilish kabi boshqa usullarni ko'rib chiqdim. Menimcha, mahalliy tilni kiritish usulini tanlash aniq dasturga va uning oldida turgan vazifaga bog'liq.

Ichki marshrutlash

Xo'sh, biz API-ning ildiz tuguniga egamiz (yoki uning tarkibiy qismlaridan biri). Barcha keyingi marshrutlar to'g'ridan-to'g'ri server dasturingiz orqali, u tomonidan qo'llab-quvvatlanadigan resurslar to'plamiga qarab o'tadi.

To'plamlar yo'llari

To'plamga yo'lni ko'rsatish uchun biz shunchaki ma'lum bir ob'ekt nomidan foydalanamiz, masalan, agar koristuvachlar ro'yxati mavjud bo'lsa, u holda yo'l /users bo'ladi. To'plamning ikkita usuli mavjud: GET (cheklangan ob'ektlar ro'yxatini olib tashlash) va POST (yangi element yaratish). Ro'yxatlarni tanlash bo'yicha qidiruvlarda biz sahifalash, saralash, filtrlash, qidirish va hokazolar uchun qo'shimcha GET parametrlarini tanlashimiz mumkin, ammo ular ixtiyoriy bo'lishi ham mumkin. Bu parametrlar yo'lning bir qismi sifatida uzatilishi uchun aybdor emas!

To'plam elementlari

To'plamning ma'lum bir elementiga o'tish uchun biz marshrut uchun noyob identifikator /users/25 dan foydalanamiz. Bu yangi narsalarga o'ziga xos yo'l. Ob'ekt bilan ishlash uchun asosiy usullar - GET (ob'ektni olib tashlash), PUT/PATCH (o'zgartirish) va DELETE (o'chirish).

Noyob ob'ektlar

Ob'ektning in-line jarayoni operatoriga xos bo'lgan juda ko'p xizmatlar mavjud, masalan, mijoz profili / profili yoki shaxsiy sozlamalar / sozlamalar. Shubhasiz, bir tomondan, elementlar to'plam bilan bir xil, ammo bizning veb-API-dan mijoz qo'shimchasi sifatida foydalanishning to'g'ri nuqtasi, shuningdek, ma'lumotlar bo'yicha operatsiyalarni yanada kengroq qilish imkonini beradi. Bunday holda, foydalanuvchining moslashuvini saqlaydigan to'plam ma'lumotlarning xavfsizligi va maxfiyligi tufayli mavjud bo'lmasligi mumkin.

Ob'ektlar va yig'ish kuchi

To'g'ridan-to'g'ri ob'ektning har qanday hokimiyatiga erishish uchun vakolat ob'ektiga yo'lni qo'shish kifoya, masalan, koristuvach /users/25/name nomini olib tashlang. Eng muhim usullar GET (qiymatni olib tashlash) va PUT/PATCH (qiymatni o'zgartirish). DELETE usulini aniqlab bo'lmaydi, chunki kuch - ma'lumotlarning rasmiylashtirilgan birligi sifatida ob'ektning tarkibiy qismi.

Oldinda biz qanday qilib to'plamlar, ob'ektlar kabi, kuchning onasi bo'lishi mumkinligi haqida gaplashdik. Xotiramda menga faqat hisoblash kuchi kerak edi, lekin sizning qo'shimchangiz yanada murakkab va o'ziga xos bo'lishi mumkin edi. To'plamlarning vakolatlariga yo'llar aynan shu printsipga, shuningdek, ularning elementlarining vakolatlariga amal qiladi: /users/count . Yig'ish organlari uchun GET usuli (vakolatni olib tashlash) qo'llaniladi, chunki to'plam - bu faqat ro'yxatga kirish uchun interfeys.

Trikotaj buyumlar to'plami

Ob'ektlar vakolatlarining har xil turlaridan biri o'zaro bog'liq ob'ektlar yoki tegishli ob'ektlar to'plami bo'lishi mumkin. Demak, bunday mohiyatlar predmetning boshqa mohiyatlar bilan aloqalari bilan chegaralanib qolmagan qudratli kuchini ifodalaydi. Masalan, rollarni uzatish, chunki ular koristuvache /users/25/rollarga tayinlangan. Biz keyingi qismlardan birida o'rnatilgan ob'ektlar va kolleksiyalar bilan robotning harakatlanishi haqida gaplashamiz va bu bosqichda biz uchun ob'ektning har qanday boshqa kuchi kabi ularga tez erisha olishimiz kifoya.

Ob'ektlar va kollektsiyalarning funktsiyalari

Foydalanuvchini interfeysdagi to'plam va ob'ektning funktsiyalarini bosishni taklif qilish uchun biz kuch darajasiga qadar shafqatsiz bo'lgan bir xil yondashuvdan foydalanamiz. Masalan, /users/25/sendPasswordReminder obyekti yoki /users/disableUnconfirmed to'plami uchun. Funktsiyalarni bosish uchun biz har qanday holatda POST usulidan foydalanamiz. Nega? O'ylaymanki, klassik REST-da funksiyalarni chaqirish uchun maxsus so'z yo'q, keyin biz ulardan birini vikorize qilishimiz kerak. Menimcha, POST usuli kimga eng mos keladi, chunki... U serverga kerakli argumentlarni uzatish imkonini beradi, idempotent emas (bu ko'p martalik konvertatsiyada bir xil natijani qaytaradi) va semantikada eng mavhum hisoblanadi.

Umid qilamanki, tobora ko'proq odamlar tizimga hissa qo'shmoqda 🙂 Keyingi qismda biz so'rov turlari, ularning formatlari va holat kodlari haqida gapiramiz.

Uchinchi yaqinlik: satrlarni yozing

Men eng yaqin do'stlarimdan Web API rivojlanishini to'plash va tasdiqlash g'oyasi qanday paydo bo'lganini eshitdim. Birinchi qismda men veb-API dizaynida qanday turdagi resurslar va ulardagi operatsiyalardan foydalanishimiz mumkinligini tasvirlashga harakat qildim. Boshqa qismida esa quvvat manbai buzilgan va bu resurslarga kirish uchun noyob URL manzili mavjud edi. Va bu erda men savollarning mumkin bo'lgan variantlarini va javob turlarini tasvirlashga harakat qilaman.

Universal versiya

Serverni mijoz bilan birlashtirishning o'ziga xos formati ishlab chiquvchining ixtiyorida bo'lishi mumkinligini allaqachon aytib o'tgan edik. Eng kam qo'lda yondashish uchun dastlab JSON formati yaratiladi, ammo haqiqiy dasturda bir nechta formatlarni qo'llab-quvvatlash mumkin. Keling, darhol pastki ko'rinish ob'ektining tuzilishi va zarur atributlariga e'tibor qarataylik. Shunday qilib, biz server tomonidan qaytarilgan barcha ma'lumotlarni maxsus konteynerga o'rab olamiz - chiziqning universal ob'ekti, unda keyingi ishlov berish uchun barcha kerakli xizmat ma'lumotlari mavjud. Xo'sh, bu qanday ma'lumot:

Muvaffaqiyat - toj muvaffaqiyatining belgisi yoziladi

Ulanish serverdan o'chirilganda, u muvaffaqiyatli bo'lganligi va uni manbaga o'tkazganligi darhol aniq bo'lishini ta'minlash uchun "muvaffaqiyat" muvaffaqiyat belgisini tanlash kifoya. Ma'lumotlarni noto'g'ri joylashtirmaydigan serverning eng oddiy chiqishi quyidagicha ko'rinadi:

POST /api/v1/articles/22/publish ("muvaffaqiyat": rost)

Xato - ovqat haqida ma'lumot

Muvaffaqiyatli so'rov muvaffaqiyatsiz yakunlanganda - biz serverning salbiy javoblarining sabablari va turlari haqida birozdan keyin gaplashamiz - HTTP kodini status va bildirishnoma matni bilan almashtirish uchun javobga "xato" atributi qo'shiladi. muhlat. Iltimos, haqida ma'lumot bilan adashtirmang tasdiqlash ma'lumotlari qo'shiq maydonlari uchun ma'lumotlar. Menimcha, status kodini video nomiga aylantirish yoki boshqa usuldan foydalanib, sarlavhadagi holat kodini 200 (muvaffaqiyat) ga aylantirish va bekor qilish haqidagi tafsilotlar va mumkin bo'lgan ma'lumotlarni o'tkazish to'g'riroq. telefon va vidpovidlar.

GET /api/v1/user ("muvaffaqiyat": noto'g'ri, "xato": ("kod": 401, "xabar": "Avtorizatsiya amalga oshmadi"))

Ma'lumotlar - server tomonidan aylantiriladigan ma'lumotlar

Serverning ko'p chiqishi ma'lumotlarni aylantirishi mumkin. Kirish turiga qarab, ma'lumotlarni yig'ishning muvaffaqiyati o'zgaradi, "ma'lumotlar" atributi kirishning ko'p turlarida eng muhimi bo'ladi.

Muvaffaqiyat bilan aylanadigan ma'lumotlarga misol. Yana bir bor foydalanuvchi ob'ektini so'rashingiz kerak.

GET /api/v1/user ("muvaffaqiyat": rost, "ma'lumotlar": ( "id": 125, "email": "john.smit" [elektron pochta himoyalangan]", "ism" : "Jon", "familiya" : "Smit", ) )

Rahm-shafqat vaqtida aylanib yuradigan ma'lumotlarning ko'pi. Bunday holda, maydon nomlarini va tasdiqlash masalalari haqidagi ma'lumotlarni joylashtiring.

PUT /api/v1/user ( "muvaffaqiyat": noto'g'ri, "xato": ( "kod" : 422, "xabar" : "Tasdiqlash amalga oshmadi" ) "ma'lumotlar": ( "elektron pochta" : " Elektron pochta bo'sh bo'lishi mumkin emas. ",))

Sahifalar - ma'lumot, orqaga qarab navigatsiyani zarur tashkil etish

Jinoyat - bu ma'lumotlar, videolarda, nima qilish kerakligini nazorat qiladi yig'ish elementlari to'plami, albatta, qidiruv natijalari orqasida orqaga qarab navigatsiya (sahifalash) haqida ma'lumot bo'ladi.

Sahifalar uchun minimal belgilangan qiymat quyidagilardan iborat:

  • yozuvlar soni;
  • sahifalar soni;
  • oqim sahifa raqamlari;
  • sahifadagi postlar soni;
  • server tomonidan qo'llab-quvvatlanadigan sahifadagi yozuvlarning maksimal soni.

Ba'zi API distribyutorlari o'z sahifalariga boshqa saytlarga, shuningdek, birinchi, oxirgi va ikkinchi tayyor xabarlar to'plamini ham o'z ichiga oladi.

GET /api/v1/articles Javob: ( "muvaffaqiyat": rost, "ma'lumotlar": [ ( "id" : 1, "title" : "Qiziqarli narsa", ), ( "id" : 2, "sarlavha" : "Zikarli matn", ) ], "sahifalash": ( "totalRecords" : 2, "totalPages" : 1, "currentPage" : 1, "perPage" : 20, "maxPerPage" : 100, ) )

Afvlar ustida ishlang

Biz allaqachon taxmin qilganimizdek, veb-API bo'yicha barcha harakatlar muvaffaqiyat bilan yakunlanmaydi, ammo ba'zi bir xavf ham mavjud. To‘lov axborot tizimi mijoz ishini osonlashtiradigan va mijozning omonatini to‘g‘ri yo‘naltiruvchi kuchli vositadir. Ushbu kontekstdagi "kechirim" so'zi to'liq ma'noda emas. Bu erda yaxshiroq so'z bor ayblash, shuning uchun bayonot muvaffaqiyatli chiqarib tashlandi, tahlil qilindi va tegishli dalillar taqdim etildi, bu esa bayonotni nima uchun yozish mumkin emasligini tushuntiradi.

Obsesyonning mumkin bo'lgan sabablari qanday?

500 Ichki server xatosi - hamma narsa noto'g'ri ketdi, u tez orada tuzatiladi

Ammo, agar muammo serverning o'zida yuzaga kelsa, mijoz ilovasi javob berish va mijozga server ishlamay qolganligi va shuning uchun afzalroq bo'lganlar haqida xabar berish imkoniyatidan mahrum bo'ladi. Masalan, ma'lumotlar bazasiga ulanish uzilgan yoki kodda xatolik mavjud.

400 Yomon so'rov - va endi sizda hamma narsa noto'g'ri

Hikoya to'g'ridan-to'g'ri oldingisiga parallel. Mijoz dasturi, qoida tariqasida, to'g'ri qayta ishlanmaydigan, majburiy parametrlarni o'z ichiga olmaydi yoki sintaktik xatolarni o'z ichiga olgan so'rovni yuborganida, bu shunday holatlarda aylanadi. Albatta, veb-API hujjatlarini yana o'qishni orziqib kutamiz.

401 Ruxsatsiz - noma'lum shaxs, o'zingiz uchun nom bering

Ushbu manbaga kirish uchun avtorizatsiya talab qilinadi. Shubhasiz, avtorizatsiya mavjudligi resursga kirishga kafolat bermaydi va ruxsatsiz siz kimni aniq bilmaysiz. Bu, masalan, API-ning shaxsiy qismiga kirishga urinayotganda yoki oqim tokenining muddatini tugatgandan so'ng sodir bo'ladi.

403 Taqiqlangan – bu yerda sizga ruxsat berilmagan

Resurs mavjud, lekin egasi uni ko'rib chiqish yoki o'zgartirish huquqiga ega emas.

404 Topilmadi - bu manzil ortida hech kim tirik emas

Ushbu taxmin, qoida tariqasida, uchta holatda yuzaga keladi: noto'g'ri resursga kirish (unutilgan), resurs ta'minoti o'chiriladi va foydalanishni to'xtatadi, onlayn mijozning huquqlari unga bu haqda bilishga imkon bermaydi. taqdim etilgan resursdan foydalanish. Misol uchun, biz mahsulotlar ro'yxatini ko'rib chiqayotganimizda, ulardan biri moda va yangi ishlanmalardan juda yangi edi.

405 Usul ruxsat etilmaydi - bu mumkin emas

Bu to'g'ridan-to'g'ri tanlangan so'zlardan o'chirishning bir turi (GET, PUT, POST, DELETE), bu esa o'z navbatida biz resursdan pul ishlashga harakat qilayotganimizni ko'rsatadi. Elektr ta'minoti manbai ushbu faoliyatni qo'llab-quvvatlamaganligi sababli, server bu haqda to'g'ridan-to'g'ri gapiradi.

422 Ishlov berilmaydigan ob'ekt - tuzatish va qayta yuborish

Eng yomon aybdorlardan biri. Ma'lumotlar mantiqiy ta'sirga ega bo'lganda, u darhol aylanadi. Ushbu so'rovda biz GET usuli bilan uzatiladigan parametrlar va ma'lumotlar qiymatlari to'plamini yoki so'rov tanasiga POST, PUT va DELETE usullari bilan uzatiladigan ob'ekt maydonlarini hisobga olamiz. Agar ma'lumotlar tasdiqlanmagan bo'lsa, ma'lumotlar bo'limidagi server qaysi parametrlarning o'zi va nima uchun noto'g'ri ekanligi haqida ma'lumot qaytaradi.

HTTP protokoli hayotning barcha jabhalari uchun juda ko'p turli xil status kodlarini qo'llab-quvvatlaydi, ammo amalda ular kamdan-kam qo'llaniladi va veb-API kontekstida hech qanday amaliy ahamiyatga ega emas. Esimda, men hech qachon aybdorlar ro'yxatidan tashqariga chiqish imkoniyatiga ega bo'lmaganman.

Uni so'rang

To'plam elementlarini tanlash

Eng keng tarqalgan so'rovlardan biri to'plam elementlarini olib tashlashdir. Axborot sahifalari, mahsulotlar ro'yxati, turli ma'lumotlar va statistik jadvallar va boshqa turli xil mijozlar qo'shimchalari yig'ish resurslarini yanada tartibga solish uchun ko'rsatiladi. Ushbu so'rovni bajarish uchun biz GET usuli yordamida to'plam yaratamiz va qatorga qo'shimcha parametrlarni o'tkazamiz. Yuqorida aytib o'tganimizdek, biz to'plamning o'xshash elementlari qatorini va sahifalash uchun zarur bo'lgan ma'lumotlarni - ro'yxatni yoki ma'lum bir sahifani kengaytirish uchun aniq tanlashimiz mumkin. Tanlov o'rniga qo'shimcha parametrlarni maxsus tarzda qo'shimcha ravishda o'tkazish uchun bo'linmalar va saralashlar bo'lishi mumkin. Ular haqida ko'proq gapirish mumkin.

Poster navigatsiyasi

sahifa- parametr qaysi tomon ko'rsatilishini ko'rsatadi. Agar bu parametr o'tkazilmasa, unda birinchi tomon paydo bo'ladi. Serverning birinchi muvaffaqiyatli javobidan boshlab, to'plamda aniq filtrlash parametrlari uchun qancha sahifa borligi aniq bo'ladi. Agar qiymat tomonlarning maksimal sonidan oshsa, uni aylantirish oqilona bo'ladi 404 topilmadi.

OLISH /api/v1/news?page=1

bosh sahifa- sahifadagi elementlar sonini bildiradi. Qoidaga ko'ra, API sahifalar bo'limida perPage maydonini aylantirish kabi ishlarni bajarishga qodir va ba'zi hollarda maxPerPage maksimal qiymatini bosish orqali qiymatni maqbul qiymatga oshirishga imkon beradi:

OLISH /api/v1/news?perPage=100

Natijalarni saralash

Ko'pincha, tanlov natijalari teng (raqamli maydonlar uchun) yoki alifbo (satr maydonlari uchun) saralashni saqlab qolish uchun tanlangan maydonlarning qiymatlarini oshirish yoki o'zgartirish orqali tartiblanishi kerak. Masalan, ularning tovarlari yoki tovarlari uchun xaridorlar ro'yxatini narx bo'yicha tashkil qilishimiz kerak. Bundan tashqari, biz to'g'ridan-to'g'ri tartiblashni A dan Z gacha yoki teskari yo'nalishda o'rnatishimiz mumkin va u turli sohalar uchun farq qiladi.

saralash turi- GET parametrlarida murakkab tartiblash haqidagi ma'lumotlarni uzatishdan oldin bir qancha yondashuvlar mavjud. Bu erda saralash tartibini va to'g'ridan-to'g'ri aniq ko'rsatish kerak.

Ba'zi APIlar uchun quyidagi qatorda ishlash tavsiya etiladi:

OLING /api/v1/products?sortBy=name.desc,price.asc

Boshqa variantlarda vikory massivi ishlatiladi:

/api/v1/mahsulotlarini OLINGmi? sortBy=name& sortBy=desc& sortBy=price& sortBy=arch

Aytgancha, variantlar bir xil darajada kuchli va fragmentlar bir xil ko'rsatmalarni beradi. Menimcha, massivli variant ko'proq universaldir, ammo bu erda, ko'rinib turganidek, ta'm va rang mavjud.

Qiymatlar bo'yicha oson filtrlash

Tanlovni ma'lum bir maydonning qiymatlari asosida filtrlash uchun ko'p hollarda filtrlash parametri sifatida maydon nomini va kerakli qiymatni kiritish kifoya. Masalan, biz maqolalarni muallif identifikatori bo'yicha filtrlashni xohlaymiz:

OLISH /api/v1/articles?authorId=25

Kengaytirilgan filtrlash imkoniyatlari

Ko'proq interfeyslar yanada moslashuvchan filtrlash tizimi va qidiruvni qo'llab-quvvatlaydi. Men eng ko'p ishlatiladigan asosiy filtrlash variantlarini sanab o'taman.

Turli operatorlar bilan yuqori va pastki chegaralar bo'yicha filtrlash: dan (ko'proq yoki bitta), yuqori (ko'proq), (kamroq yoki bitta), past (kamroq). U qiymatlari reytingga mos keladigan maydonlarga joylashadi.

OLISH /api/v1/products?price=500&price=1000

Ro'yxatdagi mumkin bo'lgan qiymatlarni filtrlang. Har qanday chegaralarning mumkin bo'lgan qiymatlarini tanlaganingizga ishonch hosil qiling, masalan, bir qator holatlar uchun filtr:

OLISH /api/v1/products?status=1&status=2

Qatorning qisman oqishi asosida filtrlash. Matn ma'lumotlarini yoki matn ma'lumotlariga mos keladigan ma'lumotlarni joylashtirishingiz mumkin bo'lgan maydonlar mavjud, masalan, raqamli mahsulot maqolalari, telefon raqamlari va boshqalar.

GET /api/v1/users?name=John GET /api/v1/products?code=123

Nomlangan filtrlar

Ba'zi hollarda, filtrlash parametrlarining butun majmui ko'pincha buzilgan va butun tizimga nisbatan mashaqqatli bo'lsa, ayniqsa, namuna hosil qilishning ichki, tez-tez katlanadigan mexanikasi to'liq bo'lsa, ularni filtrlar deb ataladigan guruhga ajrating. Kirishda filtr nomini kiritish kifoya va tizim avtomatik ravishda tanlovni amalga oshiradi.

GET /api/v1/products?filters=tavsiya etiladi

Filtrlarni o'z parametrlari bilan nomlash mumkin.

/api/v1/products?filtrlar=kidds

Kimdan men eng mashhur variantlar va keraksiz tanlovni yo'q qilish usullari haqida bilishga harakat qildim. Eng muhimi, sizning amaliyotingiz ushbu mavzu bo'yicha ko'proq ilovalar va nuanslarga ega bo'ladi. Agar sizda mening materialimni to'ldirish uchun biror narsa bo'lsa, men faqat radyumdan foydalanaman. Hozirga kelib, ro'za allaqachon sezilarli darajada o'sgan va biz yaqin kelajakda ichimlikning boshqa turlarini ko'rib chiqamiz.

Sizga haqiqatan ham server kerakmi va uni biznesingiz uchun sotib olishingiz kerakmi?

Yangi boshlanuvchilar uchun nimaga aniqlik kiritaylik server, xuddi vikory server dasturiga tegishli. Boshqa kompyuterlar (mijozlar) bilan ishlashdan oldin optimallashtirish uchun. Server mijozlari kompyuterlar, telefonlar, fakslar, printerlar va Internetga ulanadigan boshqa qurilmalar bo'lishi mumkin. Serverni o'rnatishda qancha ko'p ma'lumot saqlashni rejalashtirsangiz, serverning aybi shunchalik ko'p. Serverni qanday ijaraga olish mumkin? Blogdagi materiallar haqida xabar bering HyperHost.

Vikoryst kompaniyalari barcha spivoristlarning barcha ma'lumotlarga yashirin kirishlari va mavjud resurslarni yashirin tanlashlari uchun serverlarni o'rnatadilar. Server yaxshi ishlashini ta'minlash uchun tizim administratorini yollang. Biz ish uchun uskunani o'rnatamiz, zaxira nusxasini ishga tushiramiz, yuzaga kelgan muammolarni hal qilamiz. Serverning to'g'ri ishlashi tizimning aniq va professional ishiga joylashtirilishi kerak.. Shuni esda tutingki, kompaniya xizmatlariga barcha hissa qo'shuvchilarga tarifdan qat'i nazar, bepul texnik yordam ko'rsatiladi.

Ammo shunga qaramay, onaning serveri murakkab emasligi juda muhim, siz o'z kompyuteringizdan tezda foydalanishingiz mumkin. Agar biz sizdan oldinga borishni istasak, qaror yanada yaqinroq. Kompyuter shaxsiy vazifani saqlay olmaydi, xuddi u serverni saqlay oladi. Birinchidan, server nafaqat ma'lumotni saqlaydi, balki bir soatlik ko'p sonli so'rovlarni ham saqlaydi, shunda original shaxsiy kompyuter ishdan chiqmaydi va muhim daqiqada barcha kerakli ma'lumotlarni behuda sarflaydi.

Agar sizning biznesingiz kelajakda ishlayotgan bo'lsa, serverni tanlash haqida o'ylashingiz kerak.

Keling, avvalo, qaysi turdagi serverlar kiritilgan funksiyalarga asoslanganligini aniqlaylik.

Pochta serveriqabul qilingan va o'ta kuchli elektron pochtaning o'rta taqdirini oling. Siz varaqni elektron pochta manzilingizga yuborasiz va keyin uni qayta ishlash uchun pochta serveriga yuborasiz. Egasining manzillari indekslanadi va ro'yxat kuchga kiradi. Bu jarayon kerakli ma'lumotlarni almashinadigan bir qancha pochta serverlarini o'z ichiga oladi. Mashhur Exim, Postfix, Sendmail pochta serverlari haqida statistikada o'qishingiz mumkin.

Fayl serveriboshqa kompyuterlardan kirish mumkin bo'lgan barcha trek fayllarini saqlaydi. Fayllarni almashish uchun FTP protokoli qo'llaniladi, har qanday foydalanuvchi yordamida siz barcha fayllarni (rasmlar, videolar, audio) yuklab olishingiz mumkin. Fayl serveri ma'lumotni saqlash uchun juda ko'p disk maydoni bo'lgan har qanday kompyuterda ishlatilishi mumkin.

Veb-server– HTTP protokoli yordamida Internetga ulanish va mijozlardan so'rovlarni qabul qilish uchun server. Barcha saytlar, jumladan, veb-serverlarda joylashgan. Ushbu turdagi server sayt va mijozlar o'rtasida vositachi bo'lmagan dirijyor hisoblanadi. Veb-server so'rovni qabul qiladi, keyin uni qayta ishlaydi va natijani (fayl yoki gipermatn) ko'rsatadi. Aslida, veb-xosting va veb-server bir xil. Veb-server Nginx va apache - bu nima va bu ulanish qanday ishlaydi? Ushbu sahifadagi nutq.

Ma'lumotlar bazasi serveri.Ko'pgina dasturlar ma'lumotlar bazasidan foydalanadi. Ushbu turdagi server qo'shimcha mijoz-server tizimi orqali ma'lumotlarga kirishni ta'minlaydi. Eng mashhur ma'lumotlar bazasi serverlari SQL Server (Microsoft), SQL Base Server, Oracle Server (Oracle Corporation), IBM DB2, Informix. Ular MSDOS, OS/2, Xenix, Unix kabi turli xil operatsion tizimlar platformalarida ishlaydi.

Proksi-server– Aytishimiz mumkinki, bu bir xil veb-server, lekin chiqish agenti o'rniga. Bu haqiqatan ham dasturlar majmuasi. Siz proksi-serverga ulanasiz, unga so'rov yuborasiz va u sizning o'rniga ma'lumotni qidiradi, ba'zi hollarda o'zgaradi. Proksi-server bilan ishlash mijozning kompyuterini keraksiz dasturlardan o'g'irlash, chegarada anonim qolish, boshqa resurslarga kirishni cheklash yoki, masalan, to'siqlarni chetlab o'tish imkonini beradi. Oddiy VPS-ga proksi-serverni o'rnatish 1 hvilina uchun, hisobot.

O'yin serverchegarada mijozlar o'rtasidagi aloqani ta'minlaydi. Mijozlar bir-birlari bilan muloqot qilishadi va bir-birlari bilan do'stlashadilar. Ushbu server ma'lumotni oladi, so'rovlarni qayta ishlaydi, tizimni yangilaydi va natijalarni o'yinning barcha ishtirokchilariga tarqatadi. Asosan, o'yin serverlari hosting kompaniyalari tomonidan joylashtirilgan.

Nina uchun serverlardan foydalanmasdan biznes ishini tushunish juda muhimdir. Ushbu mashaqqatli jarayonda barcha turdagi serverlar ishtirok etadi.

Sizning kompaniyangiz uchun nima kerakligini aniqlashingiz mumkin bo'lgan sabablar?

  • Siz kompaniyangizdagi barcha ma'lumotlarni tizimlashtirish va markazlashtirishni xohlaysiz.
  • Aksariyat talabalar qaerga borishlaridan qat'i nazar, iloji boricha tez-tez ulanishlari kerak.
  • Ma'lumotni saqlash uchun sizga ko'p joy kerak.
  • Siz biznesingizni rivojlantirishga yordam beradigan xavfsizlik dasturini ishga tushirishni rejalashtiryapsiz.
  • Sizning kompaniyangiz rivojlanmoqda va o'sib bormoqda, chunki xodimlar soni muttasil ortib bormoqda.
  • Sizning biznesingiz unchalik zo'r emas, lekin siz munosib mutaxassis kabi ko'rinishni xohlaysiz.

VID to'g'ri serverning Viber reduktsiyani yotqizish uchun kompaniyaning roboti, Aje Verevyatomagayut piddriyazyuning yangilanmaganligining organizuvati, Pirdrodili so'ri, kon, TI va MISTAS RIZNIKXda topilgan.

Faxivtsí kompaniyalari HyperHost Sizning mamnunligingiz bilan barcha parametrlar bo'yicha eng maqbul jismoniy va serverni tanlang va loyihalaringiz barqarorligini ta'minlang. Nivelirlash, shuningdek, to'g'ri tanlov qilishga yordam beradi va belgilangan belgiga muvofiq lavozimda xizmatni to'g'ri tanlashga yordam beradi.

Robot serveri uchun operatsion tizimni tanlash kerakmi? Bu sizga to'g'ri tanlov qilishga va teri OS ning barcha imkoniyatlarini baholashga yordam beradi. Linux serverlari uchun server panellari haqida.

42787 marta Bugun 17 marta ko'rilgan


Ushbu maqolada men robotlashtirilgan veb-serverlarning sxemalarini imkon qadar kengroq yoritib beraman. Bu ko'pincha ob'ektiv bo'lmagan mezonlarga tayanmasdan serverni tanlashga yoki eng yaxshi arxitekturani tanlashga yordam beradi.

Zagalom - stattya ê global ko'rinish "nima sodir bo'ladi". Raqamlar yo'q.

Maqola serverlardan olingan ma'lumotlar asosida yozilgan:

  • Apache, Lighttpd, Nginx (C tilida)
  • Tomcat, Jetty (Javada)
  • Twisted (Python)
  • Erlang OTP (Erlang tili)
  • va operatsion tizimlar Linux, FreeBSD

Tim ham kam emas, printsiplar butunlay boshqacha, ular OS Windows, Solaris va boshqa ko'plab veb-serverlarda o'z qarashlarini kengaytirishlari kerak.

Veb-serverning maqsadi

Veb-serverning maqsadi oddiy - eng samarali texnik vositalardan foydalangan holda bir vaqtning o'zida ko'plab mijozlarga xizmat ko'rsatish. Qanday qilib pul topish - asosiy muammo va maqola mavzusi;)

Birgalikda ishlash

Nega so'roq boshlanadi? Shubhasiz, men aloqani koristuvach sifatida qabul qilaman.

Shu maqsadda turli OS tizimlarida turli xil tizim komponentlari mavjud. Eng mashhuri etarli darajada ko'proq - tanlang. Samaraliroq - so'rov, kpoll, epoll.

Bugungi veb-serverlar tinimsiz ravishda ishdan chiqadi.

OS optimallashtirish

Men OS yadrosi darajasida mumkin bo'lgan optimallashtirishlarni ham qabul qilaman. Masalan, OS yadrosi ulanishni o'chirib tashlab, podkastlardan biri o'chirilmaguncha veb-serverni turbo zaryad qilmasligi mumkin.

  • ma'lumotlar hali kelmagan (ma'lumotlar tayyor)
  • U kelguncha men HTTP so'rovini yuboraman (httpready)

Yozish vaqtida ikkala usul ham FreeBSD (ACCEPT_FILTER_HTTP, ACCEPT_FITER_DATA) va hatto Linuxda birinchisi (TCP_DEFER_ACCEPT) da qo‘llab-quvvatlanadi.

Ushbu optimallashtirishlar serverga ma'lumotlarni yig'ish uchun bir soatdan kamroq vaqt sarflashga imkon beradi va shu bilan ish samaradorligini oshiradi.

Kontakt qabul qilindi

Azizim, ulanish qabul qilindi. Endi asosiy vazifa serverning yelkasida - so'rovni qayta ishlash va oluvchilarga fikr-mulohazalarni yuborish. Bu erda biz ko'proq dinamik yozuvlarni ko'rib chiqamiz, ya'ni murakkabroq va rasmlarning chiqishi kamroq.

Barcha serverlarda vikoryst asinxron yondashuvdan foydalanadi.

Muammo shundaki, so'rovni qayta ishlash "chapga" bir joyga suriladi - u qo'shimcha jarayon/ipning ulanishiga o'tkaziladi va server yangi ulanishni qayta ishlash va qabul qilishda davom etadi.

Bu amalga oshirishga bog'liq - ishchi jarayon natijani umuman serverga qaytarishi mumkin (mijozga keyingi yetkazib berish uchun), u natija identifikatorini serverga o'tkazishi mumkin (nusxa ko'chirmasdan) yoki natijani mijozning o'zi.

Ishchilar bilan robotlar uchun asosiy strategiyalar

Ishchilar bilan ishlash ko'plab elementlardan iborat bo'lib, ular turli yo'llar bilan birlashtirilishi va turli natijalar berishi mumkin.

Ishchi turi

Ikkita asosiy tur mavjud - jarayon va oqim. Hosildorlikni oshirish uchun ba'zi odamlar bir vaqtning o'zida tirnash xususiyati keltirib chiqaradi, bu terida bir qator jarayonlar va bir qator oqimlarni keltirib chiqaradi.

Jarayon

Ishchilarning qirg'in qilinishi jarayonlar bo'lishi mumkin.Bu turdagi hidda ular bir-biri bilan va turli ishchilarning ma'lumotlari bilan o'zaro ta'sir qilmaydi, lekin bir-biridan butunlay mustaqildir.

Potik

Mavzular jarayonlarni almashtirishda yashirin ma'lumotlar tuzilmalarini yaratadi. Ishchi kodi kirish sinxronizatsiyasini amalga oshirishi mumkin, shunda bir yoki bir xil tuzilmani bir martalik yozib olish tartibsizlikka olib kelmaydi.

Manzil maydoni

Har bir jarayon, shu jumladan server, ma'lumotlar bo'limi uchun ishlatiladigan o'z manzil maydoniga ega.

Serverning o'rtasida

Serverning o'rtasida ishlaydigan ishchi server ma'lumotlariga kirish huquqiga ega. Siz har qanday tuzilmani o'zgartirishingiz va turli kodlar bilan ishlashingiz mumkin, ayniqsa tuzatishlar bilan imlo uchun.

Afzallik - ma'lumotlarni bir manzil maydonidan boshqasiga o'tkazish qulayligi.

Server qo'ng'iroqlari

Ishchi serverdan mustaqil ravishda ishga tushirilishi va maxsus protokol (masalan, FastCGI) yordamida qayta ishlash uchun ma'lumotlarni olishi mumkin.

Albatta, bu variant server uchun eng xavfsiz hisoblanadi. Ale quvvat manbaini haddan tashqari oshirib yuborishdan qo'shimcha ish oladi - natija server va ishchi o'rtasidagi.

Xalq ishchisi

Bir vaqtning o'zida ko'p pul yig'ish uchun sizga etarli miqdordagi ishchilar kerak.

Ikkita asosiy strategiya mavjud.

Statika

Ishchilar soni qat'iy belgilanishi mumkin. Masalan, hamma narsaning 20 ta ish jarayoni. Agar barcha ishchilar band bo'lsa va 21-so'rovni kiritsa, server Vaqtinchalik mavjud emas kodini ko'rsatadi.

Dinamiklar

Resurslarni ko'proq boshqarish uchun robototexnika diqqatga sazovor joylarga qarab dinamik ravishda yaratilishi mumkin. Ishchi algoritmni parametrlash mumkin, masalan (Apache pre-fork), quyidagicha:

  • Faol ishchilarning minimal soni = 5
  • Erkin askarlarning maksimal soni = 20
  • Boshqa ishchilar yo'q = 30
  • Ishchilar soni = 10

Yuvishlar orasidagi tozalash

Ishchilar savollar orasida o'zlarini qayta boshlashlari yoki oddiygina savollarni birma-bir to'ldirishlari mumkin.

Toza

Terini yuvishdan oldin, avval sodir bo'lgan narsalarni tozalang, ichki qismlarni va boshqa qismlarni tozalang.

Natijada, eski tartib tufayli yo'qolgan o'zgarishlar bilan bog'liq muammolar va imtiyozlar yo'q.

Doimiy

Men suv bilan tozalanaman. Natija - resurslarni tejash.

Oddiy konfiguratsiyalarni tanlash

Bu kombinatsiyalar turli serverlarda qanday ishlashi ajablanarli.

Apache (pre-fork MPM) + mod_php

Dinamik so'rovlarni qayta ishlash uchun server kontekstida ishlaydigan PHP moduli o'rnatilgan.
  • Jarayon
  • Serverning o'rtasida
  • Dinamiklar
  • Toza

Apache (ishchi MPM) + mod_php

Dinamik so'rovlarni qayta ishlash uchun server kontekstida ishlaydigan PHP moduli o'rnatilgan.

Bunday holda, php fragmentlari serverning manzil maydonida ishlaydi va bu ma'lumotlar oqimlari vaqti-vaqti bilan yuboriladi, shuning uchun ulanish beqaror va tavsiya etilmaydi. Bu PHP yadrosi va turli PHP modullarini o'z ichiga olgan mod_php ga o'zgartirishlar kiritish orqali amalga oshiriladi.

Menejer modulining bitta manzil maydoniga ishdan chiqishi butun serverni buzishi mumkin.

  • Potik
  • Serverning o'rtasida
  • Dinamiklar
  • Toza

Apache (voqea mpm) + mod_php

Event MPM - bu xuddi Apache kabi ishchilar bilan ishlash strategiyasi. Hammasi oddiy oqimlar bilan bir xil, Keep-Alive-ni qayta ishlash uchun kichik qo'shimchalar bundan mustasno.

Keep-Alive sozlamasi mijozning bir ulanishda ko'plab so'rovlarni yuborishini ta'minlash uchun xizmat qiladi. Masalan, 20 ta rasmdan iborat veb-sahifani tanlang. Ishchi so'rovni ko'rib chiqishni yakunlashini ko'rsating va qo'shimcha so'rovlar olinmasligi uchun jonli vaqtni tekshiring. Shunchaki xotira yonida osib qo'yish uchun.

Voqealar MPM boshqa tegishli so'rovlar uchun ishchini bo'shatib, barcha Keep-Alive so'rovlarini bajaradigan qo'shimcha oqim yaratadi. Natijada, ishchilar soni sezilarli darajada kamayib bormoqda, shuning uchun endi hech kim mijozlarga e'tibor bermayapti, balki hamma ishlaydi.

  • Potik
  • Serverning o'rtasida
  • Dinamiklar
  • Toza

Apache + mod_perl

Apache ning mod_perl bilan ulanishining o'ziga xos xususiyati Apache tomonidan qayta ishlash jarayonida Perl protseduralarini chaqirish qobiliyatidir.

Mod_perl server bilan bir xil manzil maydonida ishlaganligi sababli, server ishining turli bosqichlarida Apache kancalari orqali protseduralaringizni ro'yxatdan o'tkazishingiz mumkin.

Misol uchun, siz buni mod_rewrite bilan bir xil bosqichda PerlTransHandler kancasidan URLni qayta yozish orqali qilishingiz mumkin.

Hujumkor dumba /misoldan /o'tib ketdi yoki marvaridga qayta yozishni tasvirlaydi.

# mod_perl PerlModule yoqilgan Apache konfiguratsiyasida MyPackage::Misol PerlTransHandler MyPackage::Misol # MyPackage/Example.pm faylida qat'iy foydalaning; sub ishlov beruvchi ( my $r = shift; $r->uri("/passed") if $r->uri == "/misol" qaytish REDDILGAN; ) 1;

Afsuski, mod_perl o'z-o'zidan juda muhim, shuning uchun uni qayta ko'rib chiqmasdan ishlatish juda qimmat.

Mod_php ostida boshqarilsa, pearl moduli doimiy bo'ladi, shuning uchun u o'zini qayta ishga tushirmaydi. Bu oson, chunki terini qo'llashdan oldin modullarning katta paketini yig'ish zaruratini yo'q qiladi.

  • Jarayon/oqim - MPM ostida saqlanadi
  • Serverning o'rtasida
  • Dinamiklar
  • Doimiy

Buralgan

Ushbu asinxron server Pythonda yozilgan. Uning o'ziga xos xususiyati shundaki, veb-ilova dasturining o'zi qo'shimcha ishchilarni yaratadi va ularga vazifalar beradi. # serverdagi kodning dumbasi buralgan # ikkinchi funksiya qayta ishlanadi def do_something_big(ma'lumotlar): .... # ishlov berish jarayonida mendan so'raladi d = deferToThread(katta_bir narsa qilish, "parametrlar") # qayta qo'ng'iroqlarni natijaga bog'lash do_something_big d.addCallback(handleOK) #.. va wikiname uchun do_something_big d.addErrback(handleError)

Bu erda dasturchi buyruqni uzib, do_something_big funksiyasi ishonib topshirilgan ip yonida deferToThread zafar chaqiruvini yaratadi. Agar do_something_big muvaffaqiyatli bajarilsa, handleOK funksiyasi bajariladi va agar bajarilsa, handleError qaytariladi.

Va joriy oqim ulanishni normal qayta ishlashni davom ettirish uchun bir soatga ega.

Hamma narsa bitta manzil maydonida joylashgan, shuning uchun barcha xodimlar, masalan, bir xil massivni xodimlar bilan bo'lishishlari mumkin. Shunday qilib, Twisted-da chat kabi ko'plab dasturlarga sug'urta yozish oson.

  • Potik
  • Serverning o'rtasida
  • Dinamiklar
  • Doimiy

Tomcat, Servlets

Servlet veb-ilovalarni oqimlashning klassik namunasidir. Dasturning bitta Java kodi bir qancha iplarda ishlaydi. Sinxronizatsiya murakkab va dasturchi tomonidan bajarilishi kerak.

  • Potik
  • Serverning o'rtasida
  • Dinamiklar
  • Doimiy

FastCGI

FastCGI veb-serverni tashqi ishchilar bilan birlashtirish uchun interfeys bo'lib, ular jarayonlar sifatida ishlaydi.Server maxsus (HTTP emas) formatdagi o'zgarishlarni uzatadi, sarlavhalar va asosiy matn yoziladi va ishchi chiqishni aylantiradi.

Bunday robotlarni yaratishning ikki yo'li mavjud.

  1. Server bilan integratsiya
  2. Okremiy server ko'rinishi

Birinchi bosqichda serverning o'zi tashqi ish jarayonlarini yaratadi va ularning sonini saqlaydi.

Yana bir muammo shundaki, ishchi jarayonlarni yaratish uchun FastCGI protokolini ishga tushiradigan va ishchilarni boshqara oladigan yana bir qo'shimcha server yaratiladi. Ishchilarni iplar sifatida emas, balki jarayonlar sifatida ishlab chiqarish uchun yumurtuvchini chaqiring. Dinamik/Statik yumurtuvchining sozlamalari bilan, sof/doimiy esa ish jarayonining xususiyatlari bilan belgilanadi.

FastCGI bilan robotlarning yo'llari

FastCGI ikki usulda ishlatilishi mumkin. Birinchi usul eng oddiy, Apache yordamida.

so'rovni olib tashlang -> FastCGI da qayta ishlash uchun yuboring -> tasdiqlash uchun tekshiring-> Mijozga tasdiqlashni bering.

Lighttpd/nginx/litespeed/etc kabi serverlarni yaratishning yana bir usuli.

so'rovni olib tashlang -> FastCGI da qayta ishlash uchun yuboring -> boshqa mijozlar bilan suhbat-> Siz kelganingizda mijozni tasdiqlang.

Belgilangan ko'rinish Lighttpd + fastcgi ga Apachega qaraganda samaraliroq ishlash imkonini beradi, chunki Apache jarayoni tekshirilayotganda Lighttpd boshqa ulanishlarga xizmat ko'rsatishi mumkin.

FastCGI robot rejimlari

FastCGI ikkita robot rejimiga ega.
  • Responder - FastCGI so'rovni qabul qilganda va javobni o'zgartirganda va aylantirganda standart rejim
  • Authorizer - FastCGI kirishga ruxsat beradigan yoki ruxsat bermaydigan rejim. Yopiq statik fayllarni kuzatish uchun qo'lda

Huquqbuzarlik rejimlari barcha serverlarda qo'llab-quvvatlanmaydi. Misol uchun, Lighttpd serveri xafa bo'ldi.

FastCGI PHP va PERL

PHP tarjimoni skriptni qayta ishlashdan oldin darhol o'zini tozalaydi va Perl quyidagi kabi tsiklda bayonotlarni birma-bir tahlil qiladi:

Modullarni ulash; while (so'rov) (so'rov yogo; javobni chop etish; ) Shuning uchun Perl-FastCGI u erda ancha samarali bo'ladi, bu erda ko'pincha qo'shimcha modullarni kiritish kerak bo'ladi.

Xulosa

Maqolada so'rovlarni qayta ishlashning asosiy tuzilishi va ishchilar turlari ko'rib chiqildi.Bundan tashqari, biz Apache Event MPM va FastCGI bilan ishlash usullarini, servletlar va Twisted-ni ko'rib chiqdik.

Umid qilamanki, ushbu sharh veb-ilovangizning server arxitekturasini tanlashda boshlang'ich nuqta bo'ladi.

Server - bu muayyan xizmatlarni amalga oshiradigan dastur, qurilma yoki dasturiy-apparat majmuasi. Uning o'z xizmati bor - bu mijoz talab qiladigan harakatlarni amalga oshiradigan xizmat. Keling, server qanday ishlashini batafsil ko'rib chiqaylik.

Ombor mijoz-server sxemalari

Serverning o'zi nimadan iboratligi ajablanarli va biz tashqi komponentlarsiz qila olmaymiz. Birinchidan, server o'z his-tuyg'ularini mijozlar soniga sarflaydi. Serverning printsipi mijozlarning ehtiyojlarini qondirishdir. Mijoz serverga so'rovlar shakllantiradi va o'z ishining har bir qismidan o'tadi. Shuning uchun biz ko'pincha faqat server haqida emas, balki mijoz-server tizimi haqida gapiramiz. Mijoz serverga so'rovlar yuboradi, undan o'z xohish-irodasini bildiradi. Keling, tizimning yana bir komponenti u shakllanadigan rasmiy til bo'ladi. Bu bizning tanlovimiz va tanlovlarimiz, boshqalari esa serverda saqlanishi kerak. Serverdan uni yetkazib berishini so'rang. Uchinchi element - mijoz va ma'lumotlar uzatiladigan serverni bog'laydigan kanal. Bu ko'pincha mahalliy tarmoq yoki Internet yoki bitta mashinaning mahalliy ulanishlari. Server so'rovlarni qabul qilish va tanib olish uchun javobgardir. Qurilma qabul qiladi - bu tashqi interfeysning nomi va server doimiy ravishda (yoki doimiy emas) tinglaydigan bir qator portlar. Qabul qilingan so'rovlar serverning dasturiy qismiga qo'llaniladi, bu erda ular dasturlash serveri sifatida qayta ishlanadi. Va so'rov qabul qilinishi bilanoq, xuddi shu xizmat bir xil dastlabki ma'lumotlar bilan ishga tushiriladi. Xizmatlar qolgan ombor tizimi bo'ladi. Xizmat tugagandan so'ng, qidiruv natijasi ushbu aloqa kanali orqali mijozga yuboriladi. Xizmat interaktiv bo'lgani uchun jarayon davomida mijoz-server kanali orqali intensiv ma'lumotlar almashinuvi sodir bo'ladi.

Server nima uchun kerak?

Mijoz-server tizimlarining asosiy maqsadi ma'lumotni mijoz mashinalaridan server mashinasiga o'tkazishdir. Bu shuni anglatadiki, oddiy serverning murakkabligi oddiy uy kompyuteriga qaraganda bir necha marta kattaroqdir. Biroq, robot tizimining bunday tashkil etilishi barcha yukni mijozlar zimmasiga yuklaydi va server ularning ishini va o'zaro aloqalarini tashkil qilish uchun xizmat qiladi. Aks holda, aniq aytganda, server barcha to'lovlarni saqlaydi va mijozlar hech qanday ma'lumot bera olmaydi. Ko'rinishidan, Mac-ning mijoz-server modelini vikorizatsiya qilish usullari mavjud.

Modelning ijobiy va salbiy tomonlari

Afzalliklar aniq - serverning ishlash printsipi tizimning ishonchliligini, uni boshqarishning qulayligini va mashinadan foydalanishning to'g'ri taqsimlanishini ta'minlaydi. Va salbiy tomoni - bu til va u bilan bog'liq bo'lgan komponentlar. Agar foydalanuvchi serverga noto'g'ri tuzilgan so'rov yubora olmasa, u holda bunday so'rov dasturchi tomonidan o'tkazilmagan bo'lsa, tizim ishlamay qoladi. Shubhasiz, odamlar shunday yozishga tayyorki, tizim mijozning ob-havo ma'lumotlarini ko'rishni so'raganda, tajovuzkorga, masalan, barcha mijozlarning kredit karta ma'lumotlarini (birinchi navbatda, karta ma'lumotlari va ob-havo uchun) ko'rsatadi. prognozlar). Bu xuddi shu server). Va omadli o'g'ri darhol borib, barcha moliyaviy xizmatlarning barcha pullarini haddan tashqari oshirib yuboradi va keyin ehtiyotkorlik bilan va ehtiyotkorlik bilan ushbu yovuzlikni tekshiradigan "K" rahbariyatiga murojaat qiladi.

Xavfsizlik

Robot tizimini tashkil qilishning mijoz-server modeli dasturlashtirilgan, boshqariladigan va robotlashtirilgan tizimlar uchun ko'proq mos keladi. Bunday tizimdan foydalanish mumkin bo'lsa ham, ishlaydigan sxemaning teri komponenti ham jinoyatchilardan, ham server qanday ishlashini bilmaydigan xakerlardan o'g'irlanishi kerak, ammo ular etarlicha mustahkamlikka erishguncha barcha tugmalarni bosing. Tizim muhim ma'lumotlarni, masalan, to'lov kartalari haqidagi ma'lumotlarni saqlash, uzatish va qayta ishlash imkoniyatiga ega bo'lishi uchun serverning axborot xavfsizligi tizimi qonun hujjatlariga muvofiq bo'lishi kerak.

Siz haykalga loyiq edingizmi? Do'stlaringizga ulashing!