Васильев Андрей Михайлович, 2024
Версии презентации
Задачей первых HTTP-серверов стояла раздача файлов с файловой системы
Таким образом для идентификации документов в качестве основы были взяты пути к файлам на жёстком диске в рамках доминирующего ОС семейства UNIX
/
Пример пути к файлу: /var/www/site/index.html
Внешнему наблюдателю не надо показывать все файлы на файловой системе, а только
файлы в определённом каталоге, например в каталоге /var/www/site
Т.е. запрос документа по пути /index.html
должен приводить к отдаче документа
с файловой системы /var/www/site/index.html
Для указания местоположения целевого документа в сети Интернет используется Uniform Resource Identifier, URI
[ схема ":" ] [ // источник ] путь [ "?" запрос ] [ "#" фрагмент ]
Блоки внутри [ ]
являются опциональными и могут быть опущены
http
, ftp
, file
и т.д.Рассмотрим веб-сервер web-app.net
, раздающий документы из файловой системы
Структура ФС:
/var/www/site
├── 404.html
├── assets
│ └── main.css.map
├── feed.xml
├── index.html
├── labs
│ ├── 001-lab-01.html
│ └── 002-lab-02.html
├── labs.html
├── reference
│ ├── books.html
│ ├── editors.html
│ ├── schedule.html
│ └── tasks.html
└── topics.html
http
/var/www/site
Для файла /var/www/site/index.html
URI будет
http://web-app.net/index.html
Для файла /var/www/site/reference/tasks.html
http://web-app.net/reference/tasks.html
В рамках протокола HTTP иерархия соответствует файловой системе с разделителем /
Для указания пути к локальным файлам существует собственная схема — file
file://host/path
file://
localhost
/
C:\my-site\information.html
file://localhost/C:/my-site/information.html
file:///C:/my-site/information.html
/var/www/my-site/index.html
file://localhost/var/ww/my-site/index.html
file:///var/www/my-site/index.html
Ключевая особенность гипертекста — формировать ссылки между документами в сети, связывая их в единую сеть
В рамках последней схемы удобно использовать частичные URI
URI документа = абсолютный URI текущего документа + частичный URI
Частичные URI могут быть относительными или абсолютными
Отличить абсолютный путь от относительного легко — он начинается с символа /
/
├── css
│ └── style.css
├── index.html
└── topic
├── list.html
├── topic-1.html
└── topic-2.html
index.html
:
/index.html
style.css
:
/css/style.css
Они будут одинаковыми для любого просматриваемого документа на сайте
При формировании относительных частичных путей используется каталог, в котором находится документ с ссылкой
/index.html
таким каталогом каталогом является /
/topic/topic-2.html
— /topic
При формировании ссылки к документу внутри одного сайта удобно использовать абсолютный путь для общих документов: файлы стилей, исполняемые JS/WS-модули
Рассмотрим структуру сайта example-app.net
/
├── css
│ └── style.css
├── index.html
└── topic
├── list.html
├── topic-1.html
└── topic-2.html
В рамках сайта у каждого файла будет свой собственный абсолютные частичные URL:
style.css
: /style.css
index.html
: /index.html
list.html
: /topic/list.html
topic-1.html
: /topic/topic-1.html
topic-2.html
: /topic/topic-2.html
С точки зрения оптимизации поисковых алгоритмов однажды опубликованный документ в сети Интернет не должен изменять своего пути
Построим относительный путь от файла /index.html
/
├── css
│ └── style.css
├── index.html
└── topic
├── list.html
├── topic-1.html
└── topic-2.html
http://example-app.net/index.html
css/style.css
/
css/style.css: /css/style.css
http://example-app.net
:
http://example-app.net/css/style.css
Рассмотрим построение пути от файла topic-1.html
к файлу /css/style.css
/
├── css
│ └── style.css
├── index.html
└── topic
├── list.html
├── topic-1.html
└── topic-2.html
Для обращения к родительскому каталогу следует использовать специальное название каталога — ..
Этот специальный каталог присутствует и в обычной файловой системе и может быть использован не только в
http://example-app.net/topic/topic-1.html
../css/style.css
/topic/
../css/style.css
:
/topic/../css/style.css
/css/style.css
http://example-app.net: http://example-app.net/css/style.css
Выделили следующие типы URI:
Возможно использовать только полный URI
Удобно использовать частичный URI, так как:
К плюсам использования относительного частичного URI относят:
http
), так и через уровень файловой системы (схема file
)Ограничения относительных частичных URI: