URL
- 1 year ago
- 0
- 0
Uniform Resource Locator , сокр. URL (произносится [ ю-ар-эл ], [ ˌ j u ː ɑ ː r ˈ e l ]; с англ. — «единообразный указатель местонахождения ресурса») — адрес ресурса в сети Интернет. Стандарт URL регулируется организацией IETF . URL как формат адреса ресурса был изобретён Тимом Бернерсом-Ли в 1990 году в стенах Европейского совета по ядерным исследованиям , и стал фактической основой для создания Всемирной паутины . Сейчас URL позиционируется как часть более широкой системы адресации URI и регулируется документом, определяющим URI ().
В России употребление URL в официальных документах регулируется ГОСТ Р 7.0.5-2008 «Библиографическая ссылка. Общие требования и правила составления».
URL был изобретён Тимом Бернерсом-Ли в 1990 году в стенах Европейского совета по ядерным исследованиям ( фр. Conseil Européen pour la Recherche Nucléaire, CERN ) в Женеве , Швейцария . URL стал фундаментальной инновацией в Интернете. Изначально URL предназначался для обозначения мест расположения ресурсов (чаще всего файлов) во Всемирной паутине . Сейчас URL применяется для обозначения адресов почти всех ресурсов Интернета. Стандарт URL закреплён в документе . Сейчас URL позиционируется как часть более общей системы идентификации ресурсов URI , сам термин URL постепенно уступает место более широкому термину URI . Стандарт URL регулируется организацией IETF и её подразделениями.
В 2009 году Тим Бернерс-Ли высказал мнение об избыточности двойного слеша
//
в начале URL, после указания сетевого протокола
.
URL был разработан как система для максимально естественного указания на местонахождения ресурсов в сети. Локатор должен был быть легко расширяемым и использовать лишь ограниченный набор ASCII ‐символов (к примеру, в URL никогда не применяется пробел ). В связи с этим возникла следующая традиционная форма записи URL:
<схема>:[//[<логин>[:<пароль>]@]<хост>[:<порт>]][/<URL‐путь>][?<параметры>][#<якорь>]
В этой записи:
?
, разделитель параметров — знак
&
. Пример:
?параметр_1=значение_1&параметр_2=значение_2&параметр3=значение_3
#
. Якорем может быть указан заголовок внутри документа или
(англ.)
(элемента. По такой ссылке браузер откроет страницу и переместит окно к указанному элементу. Например, ссылка на этот раздел статьи:
https://ru.wikipedia.org/wiki/URL#Структура_URL
.
Общепринятые схемы (протоколы) URL включают:
Экзотические схемы URL:
Схемы URL в браузерах:
Стандарт URL использует набор символов US- ASCII . Это имеет серьёзный недостаток, поскольку разрешается использовать лишь латинские буквы, цифры и несколько знаков пунктуации. Все другие символы необходимо перекодировать. Например, перекодироваться должны буквы кириллицы , буквы с диакритическими знаками, лигатуры , иероглифы . Перекодирующая кодировка описана в стандарте и называется URL-encoding, URLencoded или percent‐encoding .
Пример кодирования можно видеть в русскоязычной Википедии , использующей в URL русский язык . Например, строка вида:
https://ru.wikipedia.org/wiki/Википедия
кодируется как:
https://ru.wikipedia.org/wiki/%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F
Преобразование происходит в два этапа: сначала каждый символ кириллицы кодируется в UTF-8 в последовательность из двух байтов, а затем каждый байт этой последовательности записывается в шестнадцатеричном представлении с предшествующим знаком процента (%):
В → D0 и 92 → %D0%92 и → D0 и B8 → %D0%B8 к → D0 и BA → %D0%BA и → D0 и B8 → %D0%B8, и т. д.
!
|
*
|
'
|
(
|
)
|
;
|
:
|
@
|
&
|
=
|
+
|
$
|
,
|
/
|
?
|
#
|
[
|
]
|
A
|
B
|
C
|
D
|
E
|
F
|
G
|
H
|
I
|
J
|
K
|
L
|
M
|
N
|
O
|
P
|
Q
|
R
|
S
|
T
|
U
|
V
|
W
|
X
|
Y
|
Z
|
|
a
|
b
|
c
|
d
|
e
|
f
|
g
|
h
|
i
|
j
|
k
|
l
|
m
|
n
|
o
|
p
|
q
|
r
|
s
|
t
|
u
|
v
|
w
|
x
|
y
|
z
|
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
-
|
_
|
.
|
~
|
Все другие символы в URI кодируются.
Зарезервированные символы кодируются в таком соответствии:
! | " | # | $ | % | & | ' | * | + | , | : | ; | < | = | > | ? | [ | ] | ^ | ` | { | | | } | <пробел> |
%21 | %22 | %23 | %24 | %25 | %26 | %27 | %2A | %2B | %2C | %3A | %3B | %3C | %3D | %3E | %3F | %5B | %5D | %5E | %60 | %7B | %7C | %7D | %20 |
Кодирование параметров в Internet Explorer и старом Firefox происходит несколько иначе .
В некоторых случаях URL формируется с использованием кодирования Base58 .
Поскольку такому преобразованию подвергаются буквы всех алфавитов, кроме базовой латиницы , то URL со словами подавляющего большинства языков может стать нечитаемым для человека.
Это всё входит в противоречие с принципом интернационализма , провозглашаемого всеми ведущими организациями Интернета , включая W3C и ISOC . Эту проблему призван решить стандарт IRI ( англ. Internationalized Resource Identifier) — международных идентификаторов ресурсов, в которых можно было бы без проблем использовать символы Юникода, и которые поэтому не ущемляли бы права других языков . Хотя заранее сложно сказать, смогут ли когда‐либо идентификаторы IRI заменить столь широко используемые URL (и URI в целом).
Формально, длина URL не ограничена, но браузеры имеют ограничения по длине URL. Не рекомендуется использовать URL длиной более 2048 символов, так как Microsoft Internet Explorer имеет именно такое ограничение .
Ещё один кардинальный недостаток URL состоит в отсутствии гибкости. Ресурсы во Всемирной паутине и Интернете перемещаются, а ссылки в виде URL остаются, указывая на уже отсутствующие ресурсы. Это особенно болезненно для электронных библиотек, каталогов и энциклопедий. Для решения этой проблемы были предложены постоянные локаторы PURL ( англ. Persistent Uniform Resource Locator). В сущности это те же URL, но они указывают не на конкретное место расположения ресурса, а на запись в базе данных PURL, где, в свою очередь, записан уже конкретный URL‐адрес ресурса. При обращении к PURL сервер находит нужную запись в этой базе данных и перенаправляет запрос уже на конкретное местоположение ресурса. Если адрес ресурса меняется, то нет нужды исправлять все бесчисленные ссылки на него — достаточно лишь изменить запись в БД. В настоящий момент эта идея не стандартизирована и не имеет широкого распространения.