1.2-dars — Veb-dasturlash nima
Ushbu darsda biz veb-dasturlash nima, internet qanday ishlaydi, frontend va backend dasturchilari nima bilan shug'ullanishini va HTML'da teg hamda atributlar nima ekanini bilib olamiz.
Internet qanday ishlaydi
Internet umuman qanday ishlaydi? Siz brauzerni ochasiz, sayt manzilini kiritasiz — va bir soniyadan so'ng sahifani ko'rasiz. Bu ikki lahza orasida nima sodir bo'ldi?
Restoranni tasavvur qiling. Siz (mehmon) ofitsiantga buyurtma berasiz, u buyurtmani oshxonaga olib boradi, oshpaz tayyorlaydi, ofitsiant olib keladi. Internetda ham deyarli xuddi shunday, faqat odamlar o'rniga kompyuterlar ishlaydi.
Siz manzil satriga google.com deb kiritganingizda, quyidagilar sodir bo'ladi:
💡 Xat bilan o'xshashlik
Klient — bu xat yozayotganingizda siz. Server — javob beradigan do'stingiz. DNS-server — bu telefon kitobi: do'stingizga xat jo'natish uchun uning manzilini qarayapsiz. HTTP — bu xatlarni u yoqdan bu yoqqa yetkazib beradigan pochtachi. Hammasi oddiy, shunday emasmi?
Frontend va Backend — sodda o'xshashlik
Veb-dasturlash ikkita katta sohaga bo'linadi: frontend va backend. Agar ularni bitta jumla bilan ta'riflasak:
🎨 Frontend — bu foydalanuvchi ko'radigan hamma narsa
Frontend («frontend» deb o'qiladi) — bu saytning tashqi qismi. Brauzerda ko'radiganingiz: tugmalar, rasmlar, menyular. Frontend dasturchisi elementlar joylashuvi, ranglar, shriftlar uchun javobgar. Boshqacha aytganda — saytning qanday ko'rinishi uchun.
⚙️ Backend — bu «kapot ostida» ishlaydigan qism
Backend («bekend» deb o'qiladi) — bu saytning ichki qismi. Server, ma'lumotlar bazasi, mantiq. Siz ro'yxatdan o'tayotganingizda, ma'lumotlaringiz tekshiriladi va saqlanadi — bu backend. Foydalanuvchi uni ko'rmaydi, lekin usiz kirish, qidiruv yoki formalarni yuborish bo'lmaydi.
Yana fullstack-dasturchi ham bor — bu ham frontend'ni, ham backend'ni biladigan odam. U saytni boshidan oxirigacha to'liq yarata oladi. Lekin frontend'dan boshlash yaxshiroq — bu osonroq, ko'rgazmaliroq va natija darhol ko'rinadi.
Bizning kursimiz — frontend-dasturlashga kirish. Biz saytlarning tashqi qismini yaratishni o'rganamiz. Lekin yaxshi frontend-dasturchi, hatto u bilan bevosita shug'ullanmasa ham, server qanday ishlashini albatta tushunadi. Shuning uchun biz ikkala sohaning ham asosiy bilimlarini beramiz.
| Frontend | Backend | |
|---|---|---|
| Nima qiladi | Interfeys, tashqi ko'rinishni yaratadi | Ma'lumotlar va mantiq bilan ishlaydi |
| Qayerda ishlaydi | Brauzerda (foydalanuvchi kompyuterida) | Serverda (data-markazda) |
| Texnologiyalar | HTML, CSS, JavaScript | PHP, Python, Node.js, SQL |
| Misol | Tugma, menyu, kirish formasi | Hisobga kirish, sayt bo'ylab qidiruv |
| Foydalanuvchiga ko'rinadimi? | Ha | Yo'q |
HTML, CSS, JavaScript — veb'ning uch ustuni
Har qanday veb-sahifa uchta texnologiya asosida quriladi. Uy bilan bog'liq bu o'xshashlikni eslab qoling — u juda ko'rgazmali:
🏗️ HTML — uyning karkasi (TUZILMA)
HTML (HyperText Markup Language) sahifa qanday qismlardan iboratligini belgilaydi. Mana sarlavha, mana matn abzatsi, mana rasm, mana havola. HTML — bu saytning «skeleti». Usiz sahifa mavjud bo'lmaydi. HTML — dasturlash tili emas, balki razmetka (belgilash) tili. Siz shunchaki matnni «belgilaysiz»: brauzerga nima sarlavha, nima esa oddiy abzats ekanini aytasiz.
🎨 CSS — uyning pardozi (CHIROY)
CSS (Cascading Style Sheets) tashqi ko'rinish uchun javobgar. Ranglar, shriftlar, o'lchamlar, bo'shliqlar, elementlar joylashuvi, animatsiyalar. CSS'siz sahifa qoralama kabi ko'rinadi: kulrang fon, qora matn, hammasi bitta ustunda. CSS «chiroy kiritadi». CSS'ni HTML uchun kiyim deb aytish mumkin.
⚡ JavaScript — uyning elektr tarmog'i (XULQ-ATVOR)
JavaScript (JS) interaktivlik qo'shadi. Bosilganda ochiladigan menyu, rasmlar bilan slayder, yuborishdan oldin formani tekshirish, sahifani qayta yuklamasdan yangi kontentni yuklash — bularning barchasini JavaScript qiladi. Agar HTML skelet bo'lsa, CSS teri bo'lsa, u holda JS — bu mushaklar va nervlar. Ular saytni harakatga keltiradi va foydalanuvchi harakatlariga munosabat bildiradi.
Ushbu kursda biz HTML va CSS'ni o'rganamiz. Bu har qanday veb-dasturchi boshlaydigan asos. JavaScript'ni biz o'tmaymiz — bu asoslardan keyin o'rganiladigan alohida katta til. Kursimizni o'tar ekansiz, siz JavaScript'ni yoki veb-dasturlashning boshqa istalgan yo'nalishini keyingi o'rganish uchun mustahkam poydevor qo'yasiz.
💡 Yana bir o'xshashlik: inson tanasi
HTML — bu skelet. U shakl va tuzilmani belgilaydi. CSS — bu teri, sochlar, kiyim. Bu tashqi ko'rinish. JavaScript — bu mushaklar va asab tizimi. Ular harakatlanish va munosabat bildirish imkonini beradi. Uchala qism ham to'laqonli sayt uchun bir xil darajada muhim.
HTML tegi nima
Teg (ingliz tilidagi tag — «yorliq», «belgi» so'zidan) — bu brauzer uchun buyruq. Har bir teg brauzerga mazmunni qanday ko'rsatishni aytadi. Keling, misolda ko'rib chiqamiz.
Kelib <h1> tegini olaylik. h harfi heading (sarlavha) degani, 1 raqami esa eng muhim, birinchi darajani bildiradi. Mana u qanday ko'rinadi:
<h1>Bu eng asosiy sarlavha</h1>
Qismlarga bo'lib ko'ramiz:
HTML'dagi ko'pchilik teglar juftlashgan. Ularda ochuvchi va yopuvchi teg bor, ular orasida esa — mazmun. Teg — bu qutiga solgandek mazmun joylashtiradigan konteyner.
💡 Ochuvchi tegni yopuvchisidan qanday ajratish mumkin
Ochuvchi: <h1> — shunchaki qavslar ichida harf. Yopuvchi: </h1> — sleshli harf. Slesh — «yopilgan» belgisi. Shunchaki eslab qoling: agar slesh bo'lsa — teg yopiladi. Bo'lmasa — ochiladi.
Mana yana bir misol — <p> tegi (paragraph — abzats):
<p>Bu oddiy matn abzatsi. Brauzer uni tepasi va pastida bo'shliqlari bilan alohida blok sifatida ko'rsatadi.</p>
Bu birgalikda qanday ko'rinishini ko'ring:
<h1>Mening birinchi saytim</h1>
<p>Bu mening birinchi matn abzatsim. Men veb-sahifalar yaratishni endigina o'rganyapman.</p>
Ushbu kodni index.html fayliga saqlab, brauzerda ochib ko'ring. Siz qalin va yirik shriftdagi sarlavhani va uning ostida matn abzatsini ko'rasiz. Tabriklayman — siz hozirgina haqiqiy HTML kod yozdingiz!
Teg atributi nima
Atribut (ingliz tilidagi attribute — «xususiyat» so'zidan) — bu teg uchun qo'shimcha ma'lumot. Teglarda tegning aynan qanday ishlashi kerakligini ko'rsatuvchi atributlar bo'lishi mumkin.
Atributlar ochuvchi teg ichida, teg nomidan keyin yoziladi. Misol:
<html lang="uz">
Bu yerda lang — bu atribut, "uz" esa — uning qiymati. Ushbu atribut brauzerga aytadi: «Ushbu sahifaning mazmuni o'zbek tilida». Nima uchun bu muhim? Imloni to'g'ri tekshirish uchun, ekran o'quvchilari (ko'r odamlar uchun dasturlar) uchun, qidiruv tizimlari uchun.
Keling, atribut tuzilmasini ko'rib chiqamiz:
Bitta tegda bir nechta atribut bo'lishi mumkin. Mana misol:
<html lang="uz" dir="ltr">
Bu yerda ikkita atribut bor: lang="uz" (til — o'zbekcha) va dir="ltr" (matn yo'nalishi — chapdan o'ngga). Atributlar bo'sh joy bilan ajratiladi.
Hozircha biz atributlarni batafsil o'rganmaymiz — ularga keyingi darslarda qaytamiz. Eng muhimi shuni eslab qolish: atributlar — bu tegning qo'shimcha sozlamalari. Ular ochuvchi teg ichida yoziladi va nom="qiymat" ko'rinishida bo'ladi.
💡 Atributlardagi tirnoqlar
Atribut qiymatlari har doim tirnoq ichiga olinadi. Qo'sh (" ") yoki yakka (' ') tirnoqdan foydalanish mumkin. Qo'sh tirnoq — standart. Agar qiymat ichida qo'sh tirnoq bo'lsa, yakka tirnoqdan foydalaning. Lekin boshlang'ich bosqichda hamma narsa uchun shunchaki qo'sh tirnoqdan foydalaning.
Dasturchi vositalari (DevTools)
Har bir zamonaviy brauzerda o'rnatilgan dasturchi vositalari — DevTools (Developer Tools qisqartmasi) mavjud. Bu istalgan veb-sahifa qanday qismlardan iboratligini ko'rsatadigan sehrli panel. Uning yordamida quyidagilarni qilish mumkin:
DevTools qanday ochiladi?
Hozir istalgan saytda DevTools'ni ochib ko'raylik. Istalgan saytga kiring (masalan, yandex.ru), F12'ni bosing va kod bilan panelni ko'rasiz. Bu hozir ko'rayotgan sahifangizning HTML kodi. Kod qatorlariga sichqonchani olib borsangiz — brauzerda sahifadagi tegishli element yoritiladi.
Hozir sinab ko'ring:
💡 Tajriba: istalgan saytni «buzing»
Istalgan saytda DevTools'ni oching, sarlavhani (h1 tegini) toping, uni ikki marta bosing va matnni kulgili biror narsaga o'zgartiring. Sahifa aynan ko'z oldingizda o'zgaradi. Bu «buzish»ga o'xshaydi, lekin aslida siz sahifaning faqat o'z brauzeringizdagi mahalliy nusxasini o'zgartiryapsiz. Boshqa hech kim buni ko'rmaydi. Aksincha, siz HTML kodi ekranda ko'rayotgan narsa bilan qanday bog'liqligini tushunasiz.
DevTools butun kurs davomida sizning eng yaxshi do'stingizga aylanadi. Biz sahifalar tuzilmasini ko'rish, xatolarni tekshirish va tajriba o'tkazish uchun uni tez-tez ishlatamiz.
Brauzer nima va u HTML'ni qanday o'qiydi
Brauzer — bu HTML kodni o'qiy oladigan va uni chiroyli sahifa ko'rinishida ko'rsata oladigan dastur. Eng ommabop brauzerlar: Chrome (~65% foydalanuvchi), Safari (Apple qurilmalarida), Firefox, Edge.
Siz HTML faylni brauzerda ochganingizda, quyidagilar sodir bo'ladi:
Shuni tushunish muhim: brauzer kodingizdagi xatolarni «tuzatmaydi». Agar nimadir noto'g'ri yozgan bo'lsangiz, brauzer sahifani noto'g'ri ko'rsatishi yoki umuman ko'rsatmasligi mumkin. Shuning uchun kodni diqqat bilan yozish kerak. Lekin xavotir olmang — xatolar bu normal. Hamma ularni qiladi. Shunchaki har bir o'zgarishdan keyin natijani brauzerda tekshiring.
⚠️ Turli brauzerlar bir xil narsani turlicha ko'rsatishi mumkin
Chrome, Firefox, Safari va Edge sahifalarni ko'rsatish uchun turli xil «dvigatel»lardan foydalanadi. Shuning uchun bir xil kod turli brauzerlarda biroz boshqacharoq ko'rinishi mumkin. Biz asosni o'rganayotganimizda, bu farqlar minimal bo'ladi. Lekin kelajakda, siz professional versstka mutaxassisiga aylanganingizda, saytni barcha ommabop brauzerlarda tekshirish kerak bo'ladi. Bu «kross-brauzer moslik» deb ataladi.
Veb-sahifa qanday qismlardan iborat
Veb-sahifaga qaraganingizda, siz tayyor natijani ko'rasiz. Lekin sahna ortida bir necha xil fayllar yashiringan. Keling, sayt odatda qanday qismlardan iboratligini ko'rib chiqamiz:
index.html deb ataladi.Ushbu kursda biz faqat HTML fayllar (va oxirida bir oz CSS) yaratamiz. Asoslarni o'rganish uchun bu yetarli. JavaScript'ga tegmaymiz — bu alohida katta mavzu.
Ushbu darsdan nimalarni yodda saqlash muhim
<h1>matn</h1>. Ochuvchi + mazmun + yopuvchi.<html lang="uz">.Amaliy topshiriq
Materialni mustahkamlash uchun uchta narsani bajaring:
📝 1-topshiriq. HTML sahifa yarating
about.html faylini yarating. Unda «Men haqimda» matnli <h1> sarlavhasini va o'zingiz haqingizda (kimsiz, nima uchun veb-dasturlashni o'rganishga qaror qildingiz) ikkita <p> abzatsini yozing. Saqlang, brauzerda oching. Tayyor!
🔍 2-topshiriq. Saytni DevTools orqali tadqiq qiling
Istalgan saytni oching (masalan, wikipedia.org). F12'ni bosing, «Elements» bo'limini toping. Sahifadagi <h1> tegini toping. Uning ichidagi matnni ikki marta bosib, o'zingizga xos narsaga o'zgartiring. Sahifa qanday o'zgarishini kuzating. Keyin sahifani yangilang (F5) — o'zgarishlar yo'qoladi.
🧠 3-topshiriq. O'z so'zlaringiz bilan tushuntiring
Daftarga (yoki telefonga) quyidagi savollarga javob yozing: «Teg nima?», «HTML CSS'dan nimasi bilan farq qiladi?», «Frontend nima?». Xuddi do'stingizga tushuntirayotgandek, o'z so'zlaringizdan foydalaning. Bu hammasini tushunganingizni tekshirishning eng yaxshi usuli.
Keyingi darsda ko'rishguncha!
Ushbu darsda biz internet qanday tuzilganini, frontend va backend dasturchilari nima bilan shug'ullanishini, HTML, CSS va JavaScript nima ekanini bilib oldik, shuningdek teglar, atributlar va DevTools bilan tanishdik. Keyingi darsda biz amaliyotga o'tamiz va o'zimizning birinchi haqiqiy HTML sahifamizni yaratamiz.
Siz ajoyib ishladingiz! 2.1-darsda ko'rishguncha.