Унифицированный идентификатор ресурса URI и локатор URL

Веб-технологии в первичном назначении предоставляют доступ к разнообразным статическим и динамическим ресурсам, которые задаются через URI (uniform resource identifier), являющийся уникальной последовательностью символов, идентифицирующей свой физический или логический ресурс.

Структура URI

  • scheme: - схема обращения к ресурсу, которая часто указывает на сетевой протокол, например http, ftp, file, ldap, mailto, urn
  • //authority + /path - иерархическая-часть содержит данные, обычно организованные в иерархической форме, которые, совместно с данными в неиерархическом компоненте запрос, служат для идентификации ресурса в пределах видимости URI-схемы. Обычно иер-часть содержит путь к ресурсу (и, возможно, перед ним, адрес сервера, на котором тот располагается) или идентификатор ресурса (в случае URN).
  • ?query - запрос, необязательный компонент URI, содержит набор параметров
    • param1=value1[&param2=value2[&param3=value3[&...]]]
  • #fragment - фрагмент необязательный компонент !!!

Запрос

  • Строка запроса состоит из ряда пар поле-значение.
  • В каждой паре имя поля и значение разделяются знаком равенства " =".
  • Серии пар разделяются амперсандом , " &" (или точкой с запятой , " ;" для URL-адресов, встроенных в HTML и не сгенерированных с помощью <form>...</form>

Кодировка

Некоторые символы не могут быть частью URL (например, пробел), а некоторые другие символы имеют особое значение в URL (например, символ #может использоваться для дальнейшего указания фрагмента документа). В формах HTML этот символ =используется для отделения имени от значения. Общий синтаксис URI использует кодировку URL для решения этой проблемы, в то время как HTML-формы делают некоторые дополнительные замены, а не применяют процентное кодирование для всех таких символов.

  • Символы, которые не могут быть преобразованы в правильную кодировку, заменяются числовыми ссылками на символы HTML.
  • ПРОБЕЛ кодируется как ' +' или ' %20'
  • Буквы ( A- Zи a- z), цифры ( 0- 9) и символы ' ~',' -',' .' и ' _' оставляются как есть
  • + кодируется %2B
  • Все остальные символы кодируются как %HH шестнадцатеричное представление, при этом любые символы, отличные от ASCII, сначала кодируются как UTF-8

Примеры URI

Абсолютные URI

  • https://ru.wikipedia.org/wiki/URI
  • ftp://ftp.is.co.za/rfc/rfc1808.txt
  • file://C:\UserName.HostName\Projects\Wikipedia_Articles\URI.xml
  • file:///C:/file.wsdl
  • file:///Users/John/Documents/Projects/Web/MyWebsite/about.html
  • ldap://[2001:db8::7]/c=GB?objectClass?one
  • mailto:John.Doe@example.com
  • sip:911@pbx.mycompany.com
  • news:comp.infosystems.www.servers.unix
  • data:text/plain;charset=iso-8859-7,%be%be%be
  • tel:+1-816-555-1212
  • telnet://192.0.2.16:80/
  • urn:oasis:names:specification:docbook:dtd:xml:4.1.2
  • urn:oid:1.2.840.113549.1.1.1

Относительные URI

  • /relative/URI/with/absolute/path/to/resource.txt
  • //example.org/scheme-relative/URI/with/absolute/path/to/resource.txt
  • relative/path/to/resource.txt
  • ../../../resource.txt
  • resource.txt
  • /resource.txt#frag01
  • #frag01

Источники

Leave a Reply