Bosh sahifa Wiki Request

Request

Request — clientning server yoki boshqa xizmatdan resurs, ma’lumot yoki amal so‘rab yuboradigan xabari. Vebda request odatda HTTP method, URL, header va ixtiyoriy body’dan tuziladi. Server uni routing, autentifikatsiya, validatsiya va biznes mantiq bosqichlaridan o‘tkazib, response qaytaradi. Request faqat brauzerdan emas, mobil ilova, boshqa servis, webhook yoki buyruq qatori vositasidan ham kelishi mumkin.

HTTP tarkibi

Method niyatni bildiradi: GET representation olish, POST yangi amal yoki resurs yaratish, PUT ma’lum resursni to‘liq almashtirish, PATCH qisman yangilash, DELETE o‘chirish uchun ishlatiladi. Semantics endpoint nomidan ko‘ra method va API shartnomasida belgilanadi. GET safe hisoblanadi va server holatini o‘zgartiruvchi yashirin amal bajarmasligi kerak.

URL path resursni, query parametrlar filter, sort yoki paginationni ifodalaydi. Header content type, qabul qilinadigan format, autentifikatsiya, cache va tracing metadata’sini olib yuradi. Body JSON, form data, fayl yoki boshqa representation bo‘lishi mumkin. Content-Type body qanday parse qilinishini, Accept client qaysi response formatlarini qabul qilishini ko‘rsatadi.

Hayot sikli

DNS va ulanishdan keyin request reverse proxy, CDN, load balancer yoki API gateway’dan o‘tishi mumkin. Har qatlam timeout, hajm va header limitiga ega. Proxy client IP yoki protocol ma’lumotini forward header’da beradi, lekin ilova bu headerni faqat ishonchli proxy’dan kelganda qabul qiladi.

Server request ID yaratib, log va trace’ga bog‘laydi. Router endpointni tanlaydi, middleware umumiy nazoratlarni bajaradi. Handler inputni domain commandga aylantiradi. Database yoki tashqi xizmat chaqiruvi deadline’dan qolgan vaqt bilan cheklanadi; client uzilganidan keyin keraksiz ishni davom ettirish resurs sarflaydi.

Validatsiya va xavfsizlik

Requestdagi barcha qiymat, jumladan header va cookie ham ishonchsiz inputdir. Syntax validation type, format va uzunlikni; semantic validation esa biznes qoidasini tekshiradi. Unknown fieldni rad etish yoki e’tiborsiz qoldirish API evolyutsiya siyosatiga bog‘liq. Parse qilishdan oldin umumiy body hajmi va nesting chegaralanadi.

Authentication so‘rov kimdan kelganini, authorization esa aynan shu resurs va amalga huquqini tekshiradi. ID’ni o‘zgartirib boshqa foydalanuvchi obyektini olishning oldini olish uchun object-level authorization zarur. Cookie asosidagi sessiyada state-changing request CSRF himoyasiga muhtoj. Bearer token URL query’da yuborilmaydi, chunki URL log va history’da qoladi.

Takrorlash va ishonchlilik

Tarmoq uzilganda client javob kelmaganini ko‘radi, lekin server amalni bajargan bo‘lishi mumkin. Idempotent requestni takrorlash bir xil yakuniy holat beradi. To‘lov yoki buyurtma yaratishda idempotency key serverga takroriy urinishni oldingi natija bilan bog‘lash imkonini beradi.

Retry faqat transient xato, cheklangan urinish, exponential backoff va jitter bilan qo‘llanadi. Har qatlam mustaqil retry qilsa traffic ko‘payib ketishi mumkin. Deadline va cancellation butun chaqiruv zanjiri bo‘ylab uzatiladi. Rate limiting bitta clientning tizim kapasitetini egallashini cheklaydi va 429 javobida qayta urinish bo‘yicha ko‘rsatma berishi mumkin.

Fayl yuklash

Multipart request fayl nomi, media type va bayt oqimini olib keladi. Client bergan filename server yo‘li sifatida ishlatilmaydi; yangi ichki nom yaratiladi. Extension, declared content type va real file signature bir-biriga mos tekshiriladi, ammo bu tekshiruv antivirus va sandbox o‘rnini bosmaydi. Fayl web root’dan tashqarida saqlanadi.

Upload oqim bilan disk yoki object storage’ga yozilib, memory limiti saqlanadi. Tugallanmagan upload tozalanadi, quota esa autentifikatsiyadan keyin ham foydalanuvchi va tashkilot darajasida qo‘llanadi. Arxiv ochilsa path traversal, fayl soni va decompressed hajm alohida cheklanadi.

Bog‘liq tushunchalar

HTTP, Response, HTTP method, URL, Header, Request body, Idempotency