Client — serverdan xizmat yoki ma’lumot so‘raydigan dastur, qurilma yoki tizim. Client foydalanuvchi nomidan serverga so‘rov yuboradi va serverdan kelgan javobni qabul qiladi.
Masalan, brauzer web saytga kirish uchun serverga so‘rov yuboradi. Bu holatda brauzer client, sayt joylashgan kompyuter esa server hisoblanadi.
Vazifasi
Clientning asosiy vazifasi — foydalanuvchi yoki boshqa tizim nomidan server bilan aloqa qilish.
Client quyidagi ishlarni bajaradi:
- foydalanuvchi kiritgan ma’lumotni qabul qiladi;
- serverga so‘rov yuboradi;
- serverdan javob oladi;
- olingan ma’lumotni foydalanuvchiga ko‘rsatadi;
- login, qidiruv, yuklash yoki yuborish kabi amallarni boshlaydi;
- server bilan tarmoq orqali aloqa qiladi.
Masalan, foydalanuvchi Telegram ilovasida xabar yuborsa, Telegram ilovasi client sifatida serverga murojaat qiladi.
Client qanday ishlaydi?
Client serverga ma’lum bir protokol orqali so‘rov yuboradi. Web muhitida bu ko‘pincha HTTP yoki HTTPS orqali amalga oshiriladi.
Oddiy jarayon quyidagicha bo‘ladi:
- foydalanuvchi client dasturda amal bajaradi;
- client serverga so‘rov yuboradi;
- server so‘rovni qabul qiladi;
- server kerakli ma’lumotni tayyorlaydi;
- javob clientga qaytariladi;
- client natijani foydalanuvchiga ko‘rsatadi.
Masalan, foydalanuvchi internet do‘konda mahsulotni qidirsa, client qidiruv so‘rovini serverga yuboradi. Server mos mahsulotlarni topadi va clientga qaytaradi.
Client turlari
Client turli shakllarda bo‘lishi mumkin.
- Web client — brauzer orqali ishlaydigan client. Masalan, Chrome, Firefox yoki Safari.
- Mobile client — telefon ilovasi ko‘rinishidagi client. Masalan, Android yoki iOS ilova.
- Desktop client — kompyuterga o‘rnatiladigan client dastur. Masalan, Telegram Desktop yoki VS Code.
- API client — server API’siga so‘rov yuboradigan dastur yoki tizim.
- Thin client — asosiy hisoblash ishlarini serverga topshiradigan yengil client.
- Thick client — ko‘proq ishni o‘zida bajaradigan client dastur.
Web client
Web client odatda brauzer hisoblanadi. Brauzer foydalanuvchi kiritgan URL manzil asosida serverga so‘rov yuboradi va kelgan HTML, CSS, JavaScript fayllarini ekranda sahifa sifatida ko‘rsatadi.
Web client quyidagilar bilan ishlaydi:
- HTML sahifa;
- CSS dizayn;
- JavaScript logika;
- cookie;
- session;
- local storage;
- API so‘rovlar;
- HTTPS ulanish.
Zamonaviy web ilovalarda client ko‘p ishlarni brauzer ichida bajaradi. Masalan, forma tekshirish, sahifalarni dinamik yangilash va API’dan ma’lumot olish.
Mobile client
Mobile client smartfon yoki planshetda ishlaydigan ilova hisoblanadi. U server bilan internet orqali aloqa qiladi.
Mobile client quyidagi vazifalarda ishlatiladi:
- foydalanuvchini tizimga kiritish;
- xabar yuborish;
- rasm yoki video yuklash;
- xarita ma’lumotlarini olish;
- push notification qabul qilish;
- API orqali ma’lumot almashish.
Masalan, bank ilovasi mobile client hisoblanadi. U foydalanuvchi ma’lumotlarini serverdan oladi va operatsiyalarni server orqali bajaradi.
API client
API client — serverdagi API endpointlarga so‘rov yuboradigan dastur. API client foydalanuvchi interfeysiga ega bo‘lishi ham, umuman interfeyssiz ishlashi ham mumkin.
API clientlarga misollar:
- frontend ilova;
- mobile ilova;
- boshqa backend tizim;
- Telegram bot;
- Postman;
- avtomatlashtirilgan skript;
- monitoring xizmati.
Masalan, frontend ilova /api/products endpointiga so‘rov yuborib, mahsulotlar ro‘yxatini olishi mumkin.
Client-server modeli
Client-server modeli zamonaviy internet tizimlarining asosiy ishlash usullaridan biridir.
Bu modelda:
- client so‘rov yuboradi;
- server so‘rovni qayta ishlaydi;
- server javob qaytaradi;
- client javobni foydalanuvchiga ko‘rsatadi.
Masalan, foydalanuvchi login parolini kiritganda, client bu ma’lumotni serverga yuboradi. Server ma’lumotni tekshiradi va clientga login muvaffaqiyatli yoki xato ekanini bildiradi.
Client va frontend
Frontend ko‘pincha client tomonda ishlaydigan qism hisoblanadi. Web ilovalarda frontend foydalanuvchiga ko‘rinadigan interfeysni yaratadi va server bilan API orqali aloqa qiladi.
Frontend client quyidagilarni bajaradi:
- sahifa ko‘rinishini chiqaradi;
- foydalanuvchi harakatlarini qabul qiladi;
- formalarni yuboradi;
- API’dan ma’lumot oladi;
- xatolik va natijalarni ko‘rsatadi;
- sahifani dinamik yangilaydi.
React, Vue, Angular, Next.js va Nuxt kabi texnologiyalar client interfeyslarini yaratishda ishlatiladi.
Client va xavfsizlik
Client foydalanuvchiga yaqin qism bo‘lgani uchun undagi ma’lumotlarga to‘liq ishonib bo‘lmaydi. Foydalanuvchi brauzer yoki ilova orqali yuborilayotgan so‘rovlarni o‘zgartirishi mumkin.
Shu sababli muhim tekshiruvlar server tomonda bajariladi. Masalan, foydalanuvchi roli, to‘lov holati, ruxsatlar va maxfiy ma’lumotlar faqat clientga ishonib tekshirilmaydi.
Client xavfsizligida quyidagi tushunchalar muhim:
- HTTPS;
- token;
- cookie;
- session;
- CORS;
- XSS;
- CSRF;
- input validation;
- authentication;
- authorization.
Dasturlashdagi o‘rni
Client dasturlashda foydalanuvchi bilan tizim o‘rtasidagi asosiy aloqa qismi hisoblanadi. Client to‘g‘ri ishlasa, foydalanuvchi tizimdan qulay foydalanadi.
Client dasturchilari quyidagi narsalar bilan ishlaydi:
- interfeys;
- foydalanuvchi tajribasi;
- API so‘rovlar;
- forma va validatsiya;
- holat boshqaruvi;
- sahifa tezligi;
- browser compatibility;
- responsive dizayn;
- autentifikatsiya oqimi.
Client va server birgalikda ishlaganda to‘liq ilova hosil bo‘ladi.
Bog‘liq tushunchalar
Server, Frontend, API, HTTP, HTTPS, Browser, Mobile app, REST API, Authentication, Authorization, CORS, Cookie