HTTP amaliyoti: DevTools bilan tahlil

HTTP asoslari darsida so’rov va javob nazariy jihatdan qanday ishlashini ko’rdik. Endi shu bilimni o’z brauzeringizda sinab ko’ramiz. Bu dars o’qish uchun emas, yoningizda brauzer ochiq holda bajarish uchun yozilgan.
Brauzerda istalgan sahifani oching, DevTools’ni F12 (yoki macOS’da
Cmd + Option + I) bilan ishga tushiring va Network panelini tanlang.
Nega aynan Network paneli
Web dasturchi ish vaqtining katta qismini “nega ishlamayapti?” degan savolga sarflaydi. Bu savolning javobi deyarli har doim uch joydan birida bo’ladi: so’rov umuman yuborilmagan, server kutilmagan javob qaytargan yoki frontend javobni noto’g’ri o’qigan.
Network paneli aynan shu uchtasini ajratib beradi. U yerda har bir so’rovning manzili, metodi, holat kodi, hajmi va vaqti ko’rinadi. Taxmin qilish o’rniga dalil olasiz — bu debugging darsidagi asosiy tamoyilning web tizimidagi ko’rinishi.
Laboratoriya tartibi
Quyidagi qadamlarni ketma-ket bajaring. Har qadamda ko’rganingizni qisqa yozib boring — keyin taqqoslash uchun asqotadi.
- Network ochiq holda sahifani yangilang (
F5). - Ro’yxatning eng yuqorisidagi asosiy HTML so’rovini tanlang.
- Metod (
GET) va holat kodini (200) ko’ring. Headersbo’limida URL,Content-Typeva cache qoidalarini toping.- Ro’yxatni
Fetch/XHRbo’yicha filtrlang — bu JavaScript yuborgan so’rovlar. - JSON qaytaradigan so’rovni tanlab,
ResponseyokiPreviewni oching. - Formani yuborib,
POSTso’roviningPayloadbo’limini ko’ring.

Chapda so’rovlar ro’yxati, o’ngda tanlangan so’rovning tafsilotlari ko’rinadi.
Ustunlarni o’qish
So’rovlar ro’yxatidagi har ustun aniq savolga javob beradi:
| Ustun | Nimani ko’rsatadi | Qachon muhim |
|---|---|---|
| Name | So’rov manzilining oxirgi qismi | Qaysi endpoint chaqirilganini topish |
| Status | HTTP holat kodi | Xato server tomondami yoki mijozdami |
| Type | Javob turi (document, xhr, script) |
So’rovni kim yuborgan |
| Size | Yuklangan hajm | Sahifa sekinligi sababi |
| Time | So’rov necha millisekund davom etgani | Sekin endpointni aniqlash |
Size ustunida (disk cache) yoki (memory cache) yozuvi ko’rinsa, fayl
tarmoqdan umuman yuklanmagan — u brauzerda saqlangan. Bu
cache va CDN darsida ko’rgan
mexanizmning amaldagi isboti.
Headerlarni tushunish
Header — so’rov va javob bilan birga ketadigan qo’shimcha ma’lumot. Ularning hammasini yodlash shart emas, lekin bir nechtasi kundalik ishda tez-tez uchraydi:
| Header | Kim yuboradi | Ma’nosi |
|---|---|---|
Content-Type |
Ikkalasi | Body qaysi formatda (application/json) |
Accept |
Mijoz | Mijoz qaysi formatni kutmoqda |
Authorization |
Mijoz | Kim so’rayapti (token yoki kalit) |
Cache-Control |
Server | Javobni qancha vaqt saqlash mumkin |
Set-Cookie |
Server | Brauzerga cookie o’rnatish buyrug’i |
Content-Type: application/json body JSON ekanini bildiradi. Agar server
JSON kutayotgan bo’lsa-yu, siz oddiy matn yuborsangiz, 400 xatosi kelishi
mumkin — sabab kodda emas, headerda bo’lishi ham mumkin.
Holat kodlarini amalda ajratish
Nazariyada 404 “topilmadi” degani. Amalda esa savol boshqacha: kim
aybdor? Quyidagi jadval shu savolga javob beradi:
| Kod | Ma’nosi | Kim tuzatadi |
|---|---|---|
200, 201 |
Muvaffaqiyat | — |
400 |
So’rov noto’g’ri tuzilgan | Frontend |
401 |
Kirish qilinmagan | Frontend (login) |
403 |
Tanilgan, lekin ruxsat yo’q | Backend (ruxsatlar) |
404 |
Manzil topilmadi | Frontend (URL) yoki backend (route) |
500 |
Server ichida xato | Backend |
401 va 403 farqi boshlovchilarni ko’p chalkashtiradi. Sodda qilib aytganda:
401 — “siz kimsiz?”, 403 — “sizni tanidim, lekin bunga ruxsatingiz yo’q”.
Bu farq cookie va autentifikatsiya
darsida batafsil ochilgan.
CORSni tushunish
Brauzer boshqa origin’dagi APIga so’rov yuborayotganda server ruxsatini
tekshiradi. Origin — protokol, domen va portning birikmasi:
https://example.com va https://api.example.com — ikki xil origin.
Ayrim POST so’rovlari, maxsus header yoki boshqa murakkab holatlarda brauzer
asosiy so’rovdan avval OPTIONS metodi bilan preflight so’rov yuboradi.
Bu “menga shunday so’rov yuborishga ruxsat bormi?” degan oldindan savol.

Preflight muvaffaqiyatli o’tsa, brauzer asosiy so’rovni yuboradi; aks holda so’rov umuman ketmaydi.
Network panelida CORS muammosini tanish oson: OPTIONS so’rovi ko’rinadi,
lekin asosiy so’rov yo umuman yo’q, yo Console’da blocked by CORS policy
xabari chiqadi.
Amaliy mashq
Ochiq, bepul API bilan ishlab ko’ring. Brauzer Console’ida quyidagi kodni ishga tushiring va Network panelida nima sodir bo’lishini kuzating:
fetch('https://api.github.com/users/github')
.then((javob) => {
console.log('Holat kodi:', javob.status);
return javob.json();
})
.then((malumot) => console.log(malumot.name, malumot.public_repos));
Keyin quyidagilarni sinang va har safar Network’da nima o’zgarishini yozing:
- Manzildagi
githubo’rniga mavjud bo’lmagan foydalanuvchi nomini yozing — qaysi holat kodi keladi? - URL’ni ataylab buzing (
api.github.comX) — so’rov umuman ketadimi? Slow 3Gtarmoq rejimini yoqib,Timeustuni qanday o’zgarishini ko’ring.
Muammoni qatlamlarga ajratish
So’rov ishlamasa, tartib bilan besh savol bering. Har savol muammoni bir qatlamga toraytiradi:
- So’rov yuborildimi? Network’da ko’rinmasa — muammo JavaScriptda: hodisa ulanmagan yoki kod xatosi bor.
- Qaysi URLga ketdi? Manzil noto’g’ri bo’lsa — frontenddagi konfiguratsiya.
- Holat kodi nima?
4xxmijozda,5xxserverda ishora qiladi. - Javob qanday?
Responseda kutilgan maydonlar bormi? - Frontend uni qanday o’qidi? Javob to’g’ri kelib, ekran bo’sh bo’lsa — muammo render yoki state’da.
Sekin so’rovni topish
Sahifa sekin ochilsa, aybdorni topish uchun Time ustuni bo’yicha saralang.
Eng uzoq davom etgan so’rovni tanlab, Timing bo’limini oching. U yerda vaqt
qanday taqsimlanganini ko’rasiz:
| Bosqich | Ma’nosi | Sekin bo’lsa sabab |
|---|---|---|
| Queueing | So’rov navbatda kutdi | Bir vaqtda juda ko’p so’rov |
| DNS Lookup | Domen IP manzilga o’girildi | DNS sozlamasi yoki birinchi tashrif |
| Waiting (TTFB) | Server javob boshlagunga qadar | Server yoki baza sekin |
| Content Download | Javob yuklab olindi | Fayl hajmi katta |
Bu taqsimot muhim savolga javob beradi: muammo tarmoqdami yoki serverdami?
Agar Waiting (TTFB) uzoq bo’lsa, backend yoki ma’lumotlar bazasi sekin
ishlayotgan bo’lishi mumkin — rasmni siqish bu holda yordam bermaydi. Aksincha,
Content Download uzoq bo’lsa, muammo fayl hajmida va uni siqish yoki
CDN orqali hal qilish mumkin.
Sahifa yuklanishini turli tarmoq tezligida sinash uchun Network panelidagi
No throttling ro’yxatidan Slow 3G ni tanlang. Foydalanuvchilaringizning
bir qismi aynan shunday sharoitda ishlashini yodda tuting.
Qisqacha xulosa
- Network paneli so’rovni taxmin qilish o’rniga ko’rish imkonini beradi.
Statusustuni muammo mijozdami yoki serverdami — birinchi ishorani beradi.Content-TypevaAuthorization— eng ko’p uchraydigan headerlar.401“kim siz?”,403“ruxsat yo’q” — ikkisi turli muammo.- CORS muammosi serverda hal qilinadi, brauzerda emas.
- Har xatoda besh savolni tartib bilan bering: yuborildimi, qayerga, qaysi kod, qanday javob, frontend qanday o’qidi.
Keyingi darsda web testing — kod ishlaydi degan ishonchni qo’lda taxmindan takrorlanadigan tekshiruvga aylantiramiz.