Response — serverning client requestiga qaytaradigan natija xabari. HTTP response status code, header va ixtiyoriy body’dan iborat. U muvaffaqiyatli representation, yaratilgan resurs manzili, validation xatosi, redirect yoki server nosozligi haqida ma’lumot beradi. To‘g‘ri response clientga faqat bayt emas, keyingi xatti-harakat uchun aniq semantika yetkazadi.
Status code
2xx muvaffaqiyat, 3xx yo‘naltirish, 4xx client requesti bilan bog‘liq muammo, 5xx server tomondagi bajarish xatosini bildiradi. 200 OK umumiy muvaffaqiyat, 201 Created yangi resurs va ko‘pincha Location header, 204 No Content bodysiz natija uchun ishlatiladi. 400 noto‘g‘ri request, 401 autentifikatsiya zarurligi, 403 ruxsat yo‘qligi, 404 resurs topilmagani, 409 konfliktni ifodalaydi.
Status kodni faqat 200 qilib, xatoni body ichida yashirish umumiy HTTP client, cache va monitoringni chalg‘itadi. Aksincha, mavjud standart kod yetarli bo‘lsa har biznes xato uchun yangi transport mexanizmi kerak emas. Xato body’si machine-readable code, o‘quvchi uchun message va field-level tafsilot berishi mumkin.
Header va body
Content-Type body representationini va kerak bo‘lsa charsetni ko‘rsatadi. Content-Length ma’lum hajmni, chunked yoki protocol framing esa oqim chegarasini beradi. ETag representation versiyasini belgilab, conditional request va optimistic concurrency’da ishlatiladi. Cache-Control kim, qancha muddat va qanday shartda response’ni cache qilishini boshqaradi.
Cookie Set-Cookie orqali yuboriladi; Secure, HttpOnly va SameSite atributlari xavfsizlikka ta’sir qiladi. CORS headerlari brauzerga boshqa origin scripti response’ni o‘qishi mumkinligini bildiradi. Ular server-side authorization o‘rnini bosmaydi. Security headerlar content sniffing, frame embedding va script manbalarini cheklashi mumkin.
Content negotiation
Client Accept bilan JSON, HTML yoki boshqa media type afzalligini bildiradi. Server qo‘llab-quvvatlangan variantni tanlab, Content-Type bilan javob beradi. Til Accept-Language, compression Accept-Encoding asosida tanlanishi mumkin. Cache variantlarni aralashtirmasligi uchun Vary header tegishli request headerlarini sanaydi.
API odatda barqaror schema beradi. Null, bo‘sh ro‘yxat va mavjud bo‘lmagan field o‘rtasidagi farq hujjatlashtiriladi. Katta ro‘yxat pagination bilan cheklanadi. Streaming response birinchi baytni tezroq yuboradi, ammo xato statusini body boshlanganidan keyin o‘zgartirish mumkin emas.
Xavfsizlik va kuzatuv
Xato javobi stack trace, SQL, ichki host yoki secretni oshkor qilmaydi. Production’da umumiy message va correlation ID beriladi, batafsil sabab himoyalangan logda qoladi. Shaxsiy response public cache’ga tushmaydi. Download filename headerga kiritilganda CRLF va quote kabi belgilar xavfsiz kodlanadi.
Latency server hisoblash vaqtidan tashqari queue, dependency va networkni qamrab oladi. Metric status class va route template bo‘yicha guruhlanadi. Juda ko‘p 500 aniq signal, lekin 200 ichidagi biznes xato alohida domain metric talab qiladi. Client uzilganda response yuborib bo‘lmasligi bajarilgan transactionni avtomatik bekor qilmaydi.
Redirect va manzil boshqaruvi
301 va 308 doimiy, 302 va 307 vaqtinchalik redirect sifatida ishlatiladi; 307 hamda 308 method va body’ni saqlaydi. Login’dan keyingi next URL ishonchsiz input bo‘lib, tashqi manzilga erkin yo‘naltirish open redirect yaratadi. Server faqat ruxsat etilgan local path yoki allowlist domenni qabul qiladi.
Redirect zanjiri latency va crawler budgetni oshiradi. Eski manzil imkon qadar to‘g‘ridan-to‘g‘ri yakuniy canonical URL’ga boradi. HSTS va HTTPS redirect tartibi xavfsiz ulanishni ta’minlaydi, ammo noto‘g‘ri doimiy redirect brauzer cache’ida uzoq qolishi mumkin; rollout oldidan vaqtinchalik kod bilan tekshirish foydali.
Response compression
Gzip yoki Brotli matnli body hajmini kamaytiradi. Rasm va arxiv kabi allaqachon siqilgan formatni qayta siqish foyda bermasligi mumkin. Server Accept-Encodingni hisobga oladi va cache variantini ajratadi. Maxfiy qiymat hujumchi boshqaradigan matn bilan bir response’da siqilsa, hajm yon kanali xavfi baholanadi.
Bog‘liq tushunchalar
HTTP, Request, Status code, HTTP header, Content negotiation, Cache-Control, Response body