# HTTP va so'rov-javob

> HTTP nima va brauzer bilan server qanday gaplashadi? GET va POST so'rovlari, javob holat kodlari (200, 404, 500) va so'rov-javob almashinuvi.

Manba: https://learncode.uz/web-dasturlash/http-sorov-javob/
Sana: 2026-05-07

![Brauzer serverga HTTP so'rov yuborib, serverdan javob olishini ko'rsatuvchi rasm](https://learncode.uz/images/web-dasturlash/http-sorov-javob-hero.webp)

*HTTP brauzer yuboradigan so'rov va server qaytaradigan javob qoidalarini belgilaydi.*

[Brauzer va server](https://learncode.uz/web-dasturlash/web-dasturlash-nima) o'zaro gaplashadi —
lekin qanday tilda? Bu til **HTTP** deyiladi. U so'rov va javobning qoidalarini
belgilaydi. Bu darsda HTTP asosini ko'ramiz.

## HTTP — muloqot qoidalari

**HTTP** — brauzer va server o'rtasidagi muloqot qoidasi (protokol). Har
almashinuv ikki qismdan iborat: mijoz **so'rov** yuboradi, server **javob**
qaytaradi. Mijoz faqat brauzer bo'lishi shart emas — mobil ilova, bot yoki
boshqa server ham HTTP so'rov yuborishi mumkin.

HTTP so'rovida odatda quyidagi qismlar bor:

- **metod** — nima qilish so'ralayotgani (`GET`, `POST` va boshqalar);
- **manzil** — qaysi resurs kerakligi (`/mahsulotlar/5`);
- **headerlar** — format, til, autentifikatsiya kabi qo'shimcha ma'lumot;
- **body** — serverga yuboriladigan ma'lumot, agar so'rovga kerak bo'lsa.

Javob ham holat kodi, headerlar va ixtiyoriy body'dan iborat. Body HTML
sahifa, JSON ma'lumoti, rasm yoki boshqa fayl bo'lishi mumkin.

## HTTP metodlari

Metod serverga resurs bilan qanday amal bajarish niyatini bildiradi:

| Tur | Vazifasi |
|---|---|
| GET | Resursni **olish** yoki ko'rish |
| POST | Yangi amal yoki resurs yaratish uchun ma'lumot yuborish |
| PUT | Resursni to'liq yangi holat bilan almashtirish |
| PATCH | Resursning ayrim qismlarini o'zgartirish |
| DELETE | Resursni o'chirishni so'rash |

Sahifani ochganingizda odatda `GET` yuboriladi. Ro'yxatdan o'tish formasini
yuborish ko'pincha `POST` bo'ladi. Lekin metodning o'zi amal muvaffaqiyatli
bajarilishini kafolatlamaydi: server foydalanuvchining huquqini va yuborilgan
ma'lumotni tekshiradi.

![GET orqali ma'lumot olish va POST orqali forma yoki login ma'lumotini yuborish taqqoslanishi](https://learncode.uz/images/web-dasturlash/get-post.webp)

*GET resursni olish niyatini, POST esa serverga qayta ishlash uchun ma'lumot yuborish niyatini bildiradi.*

> **Atama**
>
> **Protokol** — ikki tomon o'rtasidagi kelishilgan muloqot qoidalari. HTTP —
> web uchun protokol. **HTTPS** — HTTP almashinuvini TLS orqali himoyalaydi:
> aloqa shifrlanadi, server sertifikati tekshiriladi va yo'lda ma'lumot
> o'zgartirilganini aniqlash imkoniyati paydo bo'ladi. HTTPS xavfsizlikning
> muhim qismi, ammo noto'g'ri backend kodini o'zi tuzatmaydi.

## Javob holat kodlari

Server javobida **holat kodi** bo'ladi — so'rov qanday tugaganini bildiradi:

| Kod | Ma'nosi |
|---|---|
| 200 | Muvaffaqiyat — hammasi joyida |
| 201 | Yangi resurs yaratildi |
| 301 | Resurs doimiy boshqa manzilga ko'chdi |
| 400 | So'rov formati yoki qiymati noto'g'ri |
| 401 | Tizimga kirish yoki tasdiqlash kerak |
| 403 | Foydalanuvchi tanilgan, lekin ruxsat yo'q |
| 404 | Topilmadi — bunday sahifa yo'q |
| 500 | Server xatosi — serverda nosozlik |

`404` kodini deyarli har kim ko'rgan — mavjud bo'lmagan sahifaga kirganda
chiqadi.

![HTTP 200 muvaffaqiyat, 404 topilmadi va 500 server xatosi holat kodlari](https://learncode.uz/images/web-dasturlash/http-holat-kodlari.webp)

*HTTP holat kodlari so'rov muvaffaqiyatli bajarilgani yoki qaysi tomonda xato yuz berganini bildiradi.*

> **Yodda tuting**
>
> Web dasturchi bu kodlarni tez-tez ko'radi. Kodning **birinchi raqami** guruhni
> bildiradi: `1xx` axborot, `2xx` muvaffaqiyat, `3xx` yo'naltirish, `4xx` so'rov
> yoki ruxsat bilan bog'liq muammo, `5xx` esa server tomonidagi xato. Masalan,
> `404` har doim foydalanuvchi manzilni xato yozganini anglatmaydi — serverdagi
> route o'chirilgan yoki noto'g'ri sozlangan bo'lishi ham mumkin.

## So'rovni ko'rish

Brauzer DevTools'ining **Network** bo'limida sahifa yuborgan har bir HTTP
so'rovni ko'rish mumkin. Bir so'rovni tanlasangiz, uning URL'i, metodi,
headerlari, holat kodi, javob hajmi va qancha vaqt olgani ko'rinadi. HTTPni
o'rganishda bu nazariy jadvaldan ko'ra ancha foydali amaliy vositadir.

> **Kichik mashq**
>
> Istalgan sahifada Network bo'limini oching va sahifani yangilang. Asosiy HTML
> so'rovini toping, so'ng rasm yoki CSS so'rovi bilan solishtiring. Ularning
> metodi bir xil bo'lishi mumkin, ammo URL, `Content-Type`, hajm va yuklanish
> vaqti boshqacha bo'ladi.

## Qisqacha xulosa

- **HTTP** — brauzer va server o'rtasidagi muloqot protokoli.
- Almashinuv mijoz **so'rovi** va server **javobi**dan iborat.
- So'rov metod, manzil, headerlar va ixtiyoriy body'dan tuziladi.
- GET, POST, PUT, PATCH va DELETE turli amal niyatlarini bildiradi.
- **Holat kodi** natijani bildiradi: 200 (muvaffaqiyat), 404 (topilmadi),
  500 (server xatosi).
- HTTPS HTTP almashinuvini TLS orqali shifrlaydi va serverni tekshiradi.

Keyingi darsda [server nima va nima
qilishini](https://learncode.uz/web-dasturlash/server-nima), undan keyin esa ma'lumotlar bazasi
tushunchasini ko'ramiz.
