Bosh sahifa Wiki Content-Type

Content-Type

Content-Type — internet xabaridagi body qanday media turida va qaysi parametrlar bilan kodlanganini bildiruvchi HTTP header. Server response’da clientga mazmunni qanday talqin qilishni, request’da esa serverga yuborilgan body’ni qanday parse qilishni ko‘rsatadi. Qiymat odatda type/subtype shaklida bo‘ladi, masalan application/json yoki text/html; charset=utf-8.

Media type tuzilishi

Top-level type umumiy kategoriya: text, image, audio, video, application, multipart va boshqalar. Subtype aniq formatni bildiradi. Vendor yoki structured syntax suffix, masalan application/problem+json, format oilasini va semantik profilni ko‘rsatishi mumkin. Parametrlar nuqtali vergul bilan qo‘shiladi.

charset matnni baytdan Unicode’ga decode qilish uchun kerak. JSON zamonaviy qo‘llanishda UTF-8 bilan uzatiladi; noto‘g‘ri yoki qarama-qarshi charset turli parserlarda farq keltirishi mumkin. boundary multipart body qismlarini ajratadi va body’da aynan shu boundary ishlatilishi shart.

Request parsing

API JSON kutsa, Content-Type: application/json talab qiladi. Formalar application/x-www-form-urlencoded yoki fayl bilan multipart/form-data yuboradi. Header yo‘q yoki qo‘llab-quvvatlanmagan bo‘lsa server 415 Unsupported Media Type qaytarishi mumkin. Body’ni formatni taxmin qilib parse qilish ambiguity va xavfsizlik muammosi yaratadi.

Content-Type body mavjudligini o‘zi kafolatlamaydi. Bo‘sh body, noto‘g‘ri JSON va schema xatosi alohida tekshiriladi. Content-Encoding: gzip media turini emas, representationga qo‘llangan siqishni bildiradi. Server avval xavfsiz hajm limiti bilan decode qilib, keyin Content-Type bo‘yicha parse qiladi.

Response talqini

Brauzer HTML, CSS, script, rasm va fontni Content-Type asosida qayta ishlaydi. JavaScript faylga HTML xato sahifasi 200 bilan qaytsa, module load sintaksis xatosi beradi. API client status va headerni tekshirmasdan json() chaqirsa haqiqiy proxy xatosi yashirinishi mumkin.

X-Content-Type-Options: nosniff brauzerning e’lon qilingan turdan boshqa formatni taxmin qilishini cheklaydi. Bu ayniqsa script va stylesheet uchun muhim. Foydalanuvchi uploadini noto‘g‘ri text/html bilan inline ko‘rsatish saqlangan XSS’ga olib kelishi mumkin. Untrusted fayl attachment sifatida, alohida origin va xavfsiz media type bilan beriladi.

Content negotiation bilan aloqasi

Request’dagi Accept client qaysi response media turlarini qabul qilishini bildiradi; Content-Type esa amalda yuborilgan representation turidir. Bir endpoint JSON va XML qaytarsa server mos variantni tanlaydi. Cache Vary: Accept bilan variantlarni ajratadi. Accept-Language va Accept-Encoding boshqa o‘lchamlarni boshqaradi.

API version ba’zan vendor media type parametrida beriladi. Bunday yondashuv gateway, cache va client library bilan izchil qo‘llanishi kerak. Oddiy public API’da aniq URL yoki header versioning operatsion jihatdan tushunarliroq bo‘lishi mumkin; Content-Type’ni ortiqcha murakkablashtirish shart emas.

Fayl aniqlash

Filename extension va client bergan Content-Type ishonchli tekshiruv emas. Server magic byte, xavfsiz decoder va zarur bo‘lsa antivirus bilan formatni tekshiradi. Biroq magic byte ham polyglot faylni to‘liq aniqlamaydi. Qabul qilinadigan format allowlist, qayta encode va sandbox xavfni kamaytiradi.

HTTP response’da type server konfiguratsiyasi yoki obyekt metadata’sidan olinadi. Noma’lum fayl uchun application/octet-stream umumiy binary turidir. Charset va header qiymati CRLF injectionga yo‘l qo‘ymaydigan API orqali o‘rnatiladi.

Diagnostika

Proxy yoki framework xato sahifasini JSON endpointga text/html bilan qaytarsa client logida status, Content-Type va body’ning cheklangan preview’i birga ko‘rsatiladi. Preview secret va shaxsiy data’dan tozalanadi. Testlar success hamda error response uchun headerni tasdiqlaydi.

Bog‘liq tushunchalar

Media type, HTTP header, Accept header, MIME, Content negotiation, Character encoding, HTTP response