Bosh sahifa Wiki URI

URI

URI — internet yoki boshqa identifikatsiya tizimida resource’ni nomlash yoki unga murojaat qilish uchun ishlatiladigan belgilar ketma-ketligi. To‘liq nomi Uniform Resource Identifier. URL va URN URI tushunchasining keng tarqalgan ko‘rinishlari sifatida qaraladi.

URI resource qayerda joylashganini, qanday olinishi yoki faqat nomini ifodalashi mumkin. Aniq semantika scheme’ga bog‘liq.

Umumiy tuzilma

URI quyidagi qismlarga ega bo‘lishi mumkin:

scheme://authority/path?query#fragment

Misol:

https://uzbekdevs.uz/wiki/uri?lang=uz#tuzilma

Barcha scheme’lar har bir komponentdan foydalanmaydi.

Scheme

Scheme URI qanday identifikator yoki access modeliga tegishli ekanini bildiradi:

  • http;
  • https;
  • mailto;
  • ftp;
  • urn;
  • data;
  • file;
  • custom application scheme.

Scheme nomidan keyin : yoziladi.

// barcha scheme’da majburiy emas.

Authority

Authority ko‘pincha quyidagi qismlardan tashkil topadi:

userinfo@host:port

Web URLlarda userinfo kam qo‘llanadi va phishing chalkashligini yaratishi mumkin.

Host domain yoki IP bo‘lishi mumkin.

Port berilmasa scheme default portidan foydalaniladi.

Host

Host resource’ga xizmat qiluvchi network nomini bildiradi.

Misollar:

Internationalized domain browserda Unicode yoki Punycode ko‘rinishida ifodalanishi mumkin.

Path

Path resource ierarxiyasini yoki endpoint yo‘lini bildiradi:

/wiki/uri

Path segmentlari / bilan ajratiladi.

Server pathni decode, normalize va routing qoidalari bilan qayta ishlaydi.

.. va encoded separator security nuqtayi nazaridan muhim.

Query

Query ? belgisidan keyin keladi:

?lang=uz&page=2

Ko‘pincha key-value parameterlar ishlatiladi.

Lekin URI standardining umumiy darajasida query faqat belgilar ketma-ketligi; aniq format applicationga bog‘liq.

Fragment

Fragment # belgisidan keyin keladi:

#tuzilma

HTTP request yuborilganda fragment odatda serverga uzatilmaydi.

Browser document ichidagi element, client route yoki boshqa local state uchun foydalanadi.

URL

URL resource’ning joylashuvi va access usulini ifodalovchi URI turidir.

Masalan:

https://example.com/file

Scheme, host va path orqali resource qayerda hamda qanday olinishi ko‘rsatiladi.

URN

URN resource’ni joylashuvdan mustaqil, persistent nom bilan aniqlashga qaratilgan URI turidir.

Masalan, ISBNga oid namespace.

URNning o‘zi resource’ni networkdan qanday olishni majburiy ko‘rsatmaydi.

Absolute URI

Absolute URI scheme bilan boshlanadi:

https://example.com/a

U boshqa base URIga ehtiyoj sezmaydi.

Configuration va API’da external link uchun absolute URI ishlatilishi mumkin.

Relative reference

Relative reference scheme va hostni bermasligi mumkin:

../images/logo.svg

U base URIga nisbatan resolve qilinadi.

HTML document base URL, current location yoki <base> elementi natijaga ta’sir qiladi.

Percent-encoding

URI ichida reserved yoki ruxsat etilmagan byte %HH ko‘rinishida yoziladi:

%20

Bu space byte’ini ifodalashi mumkin.

Encoding character emas, UTF-8 kabi encodingdan olingan byte’lar asosida bajarilishi mumkin.

Reserved belgilar

Ayrim belgilar URI strukturasi uchun maxsus ma’noga ega:

: / ? # [ ] @ ! $ & ' ( ) * + , ; =

Ularni data sifatida ishlatish contextga mos percent-encoding talab qilishi mumkin.

Butun URI’ni bir xil function bilan encode qilish noto‘g‘ri natija berishi mumkin.

Normalization

Semantik jihatdan bir xil URI turli yozuvga ega bo‘lishi mumkin:

  • host case;
  • default port;
  • percent-encoding;
  • path segment;
  • trailing slash;
  • Unicode representation.

Cache, signature va security allowlist uchun canonicalization aniq belgilanadi.

Parsing

URI oddiy string concatenation yoki regex bilan to‘liq va xavfsiz parse qilinmaydi.

Standart parser:

ni ajratadi.

[email protected] kabi URI’da haqiqiy host attacker.tld bo‘lishi mumkin.

Base URI

Relative reference absolute URIga base yordamida aylantiriladi.

Masalan:

Base: https://example.com/docs/page
Ref:  ../img/logo.png

Natija path resolution qoidalari bilan olinadi.

Security policy resolve qilingan yakuniy URI’ni tekshiradi.

URI va IRI

IRI Unicode belgilarini kengroq ishlatishga imkon beradi.

Network protocolda u URI yoki percent-encoded/Punycode representationga aylantirilishi mumkin.

Display va actual host farqi phishingga ta’sir qilishi ehtimoli bor.

Security

URI bilan bog‘liq xavflar:

  • open redirect;
  • SSRF;
  • userinfo chalkashligi;
  • Unicode homograph;
  • scheme abuse;
  • path traversal;
  • double encoding;
  • credential leak;
  • fragmentda token saqlash.

Allowlist parser ajratgan normalized komponentlar asosida ishlaydi.

Userinfo

Authority ichida tarixiy userinfo qismi bo‘lishi mumkin:

https://[email protected]@attacker.test/path

Bu misolda haqiqiy host attacker.test, oldingi qism esa userinfo. Browser displayini tez ko‘rgan user example.comni host deb adashtirishi mumkin. Web application external URLlarda userinfo’ni rad etishi yoki alohida ko‘rsatishi mumkin.

Default port

Scheme default portga ega bo‘lsa explicit va implicit yozuv bir resource’ga olib borishi mumkin:

https://example.com
https://example.com:443

Origin va canonicalization effective portni hisobga oladi.

URI template

API va link generationda placeholderli URI template ishlatilishi mumkin. Parameterlar contextga mos encoding qilinadi; tayyor URL string concatenation bilan qurilmaydi.

Trailing slash

/docs va /docs/ server routingiga qarab bir xil yoki boshqa resource bo‘lishi mumkin. Canonical redirect bitta variantni tanlaydi.

Bog‘liq tushunchalar

Uniform Resource Identifier, URL, URN, Scheme, Authority, Host, Path, Query, Fragment, Percent-encoding, IRI