HTTP (HyperText Transfer Protocol) — veb ilovalar mijoz (foydalanuvchi) va server o‘rtasida ma’lumot almashish uchun ishlatadigan asosiy protokoldir.
Bu protokolda ma’lumot bilan ishlash HTTP verblar (yoki metodlar) orqali bajariladi.
🔹 GET metodi ma’lumotni so‘rash uchun ishlatiladi. U resursni o‘zgartirmaydi, faqat o‘qiydi.
📌 GET xavfsiz va tez-tez ishlatiladi.
GET /api/yangiliklar HTTP/1.1🆕 POST — serverga yangi resurs yaratish uchun ishlatiladi.
💡 Har POST so‘rovi — bu yangi yozuv.
POST /api/kitoblar
{
"nomi": "O‘tkan kunlar",
"muallif": "A. Qodiriy"
}♻️ PUT mavjud ma’lumotni butunlay almashtiradi.
👉 Eski ma’lumot o‘chadi, yangisi o‘rniga yoziladi.
PUT /api/kitoblar/1
{
"nomi": "Yangi nom",
"muallif": "Yangi muallif"
}✏️ PATCH — resursning faqat kerakli qismini o‘zgartiradi.
💡 PUT ga qaraganda yengilroq va moslashuvchanroq.
PATCH /api/kitoblar/1
{
"nomi": "Yangi nom"
}🗑️ DELETE — ko‘rsatilgan resursni butunlay yo‘q qiladi.
📌 Bu amal ehtiyotlik bilan bajarilishi kerak.
DELETE /api/kitoblar/3| Verb | Amal turi | Xavfsizmi? | Idempotentmi? |
|---|---|---|---|
| GET | Ma’lumot o‘qish | ✅ Ha | ✅ Ha |
| POST | Yaratish | ❌ Yo‘q | ❌ Yo‘q |
| PUT | To‘liq yangilash | ❌ Yo‘q | ✅ Ha |
| PATCH | Qisman yangilash | ❌ Yo‘q | ❌ Yo‘q |
| DELETE | O‘chirish | ❌ Yo‘q | ✅ Ha |
flowchart TD
subgraph Client [👨💻 Mijoz]
A1[GET: Ma'lumotni olish]
A2[POST: Yangi ma'lumot yuborish]
A3[PUT: To‘liq yangilash]
A4[PATCH: Qisman yangilash]
A5[DELETE: O‘chirish]
end
subgraph Server [🖥️ Server - REST API]
B1[🔍 Resursni o‘qish]
B2[📥 Resursni yaratish]
B3[♻️ Resursni almashtirish]
B4[✏️ Resursni tahrirlash]
B5[🗑️ Resursni o‘chirish]
end
A1 -->|GET /posts| B1
A2 -->|POST /posts| B2
A3 -->|PUT /posts/1| B3
A4 -->|PATCH /posts/1| B4
A5 -->|DELETE /posts/1| B5