aboutsummaryrefslogtreecommitdiff
path: root/files/ru/web/api/url/index.md
blob: 436945220b222bc2d872850c8de94eb45e3b424c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
---
title: URL
slug: Web/API/URL
tags:
  - API
  - URL API
  - URL
  - URI
  - Address
  - Hostname
  - Domain
  - Адрес
  - Домен
translation_of: Web/API/URL
---
{{ApiRef("URL API")}}

Интерфейс **`URL`** используется для разбора, создания, нормализации и кодирования {{glossary("URL", "URL-адресов")}}. Он предоставляет свойства, которые позволяют легко читать и изменять части URL-адреса.

Для создания объекта `URL` нужно вызвать конструктор, передав ему строку с абсолютным или относительным URL-адресом в качестве аргумента. В случае с относительным адресом в конструктор также нужно передать базовый адрес вторым аргументом. После этого вы получите доступ к частям URL-адреса для их чтения или модификации.

В случае, когда браузер не поддерживает {{domxref("URL.URL", "URL()")}} конструктор, вы можете получить доступ к объекту URL через {{domxref("URL")}} свойство интерфейса {{domxref("Window")}}. Проверьте, не нуждается ли какой-либо из ваших целевых браузеров в этом префиксе.

{{AvailableInWorkers}}

## Конструктор

- {{domxref("URL.URL", "new URL()")}}
  - : Создаёт и возвращает объект URL из указанного абсолютного адреса или пути и базового адреса.

## Свойства

- {{domxref("URL.hash", "hash")}}
  - : Строка типа {{domxref("USVString")}}. Содержит идентификатор фрагмента и символ `'#'` в начале строки.
- {{domxref("URL.host", "host")}}
  - : Строка типа {{domxref("USVString")}}. Содержит доменное имя (_hostname_) за которым следует (если был указан порт) символ `':'` и номер порта.
- {{domxref("URL.hostname", "hostname")}}
  - : Строка типа {{domxref("USVString")}}. Содержит доменное имя.
- {{domxref("URL.href", "href")}}
  - : Строка типа {{domxref("USVString")}}. Содержит полный URL-адрес.
- {{domxref("URL.origin", "origin")}} {{readonlyInline}}
  - : Строка типа {{domxref("USVString")}}. Содержит схему (протокол), доменное имя и номера порта.
- {{domxref("URL.password", "password")}}
  - : Строка типа {{domxref("USVString")}}. Содержит пароль, указанный перед доменным именем.
- {{domxref("URL.pathname", "pathname")}}
  - : Строка типа {{domxref("USVString")}}. Содержит относительный пусть и символ `'/'` в начале строки. Параметры запроса и идентификатор фрагмента не входят в эту строку.
- {{domxref("URL.port", "port")}}
  - : Строка типа {{domxref("USVString")}}. Содержит номер порта.
- {{domxref("URL.protocol", "protocol")}}
  - : Строка типа {{domxref("USVString")}}. Содержит название протокола и символ `':'` на конце.
- {{domxref("URL.search", "search")}}
  - : Строка типа {{domxref("USVString")}}. Содержит параметры запроса. Включает в себя все параметры, которые были указаны и начинается с символа `'?'`.
- {{domxref("URL.searchParams", "searchParams")}} {{readonlyInline}}
  - : Объект {{domxref("URLSearchParams")}}. Позволяет получить доступ к каждому параметру запроса по отдельности.
- {{domxref("URL.username","username")}}
  - : Строка типа {{domxref("USVString")}}. Содержит имя пользователя указанное перед именем домена.

## Методы

- {{domxref("URL.toString", "toString()")}}
  - : Возвращает строку типа {{domxref("USVString")}}, содержащую полный URL-адрес. Возвращаемое значение аналогично значению свойства {{domxref("URL.href")}}. Разница лишь в том, что при помощи этого метода нельзя изменить значение URL-адреса.
- {{domxref("URL.toJSON", "toJSON()")}}
  - : Возвращает строку типа {{domxref("USVString")}}, содержащую полный URL-адрес. Возвращаемое значение аналогично значению свойства {{domxref("URL.href")}}.

## Статические методы

- {{domxref("URL.createObjectURL", "createObjectURL()")}}
  - : Возвращает строку типа {{domxref("DOMString")}}, содержащую уникальный URL-адрес `Blob` объекта. Этот адрес предоставляет из себя строку с `blob:` в качестве схемы, за которой идёт строка однозначно идентифицирующая `Blob` объект в браузере.
- {{domxref("URL.revokeObjectURL", "revokeObjectURL()")}}
  - : Отменяет URL созданный при помощи {{domxref("URL.createObjectURL()")}}.

## Примечания по использованию

Конструктор принимает один обязательный параметр — `url` и один необязательный параметр — `base`, который будет использован в качестве «основы», если параметр `url` это относительный URL-адрес:

```js
const url = new URL('../cats', 'http://www.example.com/dogs');
console.log(url.hostname); // "www.example.com"
console.log(url.pathname); // "/cats"</pre>
```

Вы можете задавать значения свойствам объекта URL, чтобы изменять URL-адрес:

```js
url.hash = 'tabby';
console.log(url.href); // "http://www.example.com/cats#tabby"
```

URL-адреса кодируются согласно стандарту {{RFC(3986)}}. Например:

```js
url.pathname = 'démonstration.html';
console.log(url.href); // "http://www.example.com/d%C3%A9monstration.html"
```

Интерфейс {{domxref("URLSearchParams")}} можно использовать для работы с параметрами запроса.

Например, следующим образом можно получить параметры запроса URL-адреса текущей веб-страницы:

```js
// https://some.site/?id=123
const parsedUrl = new URL(window.location.href);
console.log(parsedUrl.searchParams.get("id")); // "123"
```

Метод {{domxref("URL.toString", "toString()")}} лишь возвращает значение свойства {{domxref("URL.href", "href")}}. Благодаря этому, конструктор `URL` можно использовать для нормализации и кодирования URL-адреса.

```js
const response = await fetch(new URL('http://www.example.com/démonstration.html'));
```

## Спецификации

{{Specifications}}

## Поддержка браузерами

{{Compat}}

## Смотрите также

- Полифил для `URL` доступен в [core-js](https://github.com/zloirock/core-js#url-and-urlsearchparams)
- [URL API](/en-US/docs/Web/API/URL_API)
- [Что такое URL-адрес?](/en-US/docs/Learn/Common_questions/What_is_a_URL)
- Свойство для получения объекта `URL`: {{domxref("URL")}}.
- {{domxref("URLSearchParams")}}.