Skip to content

Commit d898851

Browse files
authored
Apply suggestions from code review
1 parent 4023cf3 commit d898851

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

5-network/05-fetch-crossorigin/article.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ try {
2222

2323
## Навіщо потрібен CORS? Коротка історія
2424

25-
CORS існує для захисту інтернету від злісних хакерів.
25+
CORS існує для захисту інтернету від злих хакерів.
2626

2727
Серйозно. Зробімо дуже короткий історичний екскурс.
2828

@@ -165,7 +165,7 @@ Access-Control-Allow-Origin: https://javascript.info
165165

166166
## Заголовки відповіді
167167

168-
Для запиту між різними джереалми JavaScript за замовчуванням може мати доступ лише до так званих "безпечних" заголовків відповідей:
168+
Для запиту між різними джерелами JavaScript типово може мати доступ лише до так званих "безпечних" заголовків відповідей:
169169

170170
- `Cache-Control`
171171
- `Content-Language`
@@ -179,7 +179,7 @@ Access-Control-Allow-Origin: https://javascript.info
179179
```smart
180180
У списку немає заголовка `Content-Length`!
181181
182-
Цей заголовок містить повну довжину відповіді. Отже, якщо ми щось завантажуємо й хочемо відстежувати відсоток прогресу, тоді для доступу до цього заголовка потрібен додатковий дозвіл (дивись нижче).
182+
Цей заголовок містить повну довжину відповіді. Отже, якщо ми щось завантажуємо й хочемо відстежувати прогрес у відсотках, тоді для доступу до цього заголовка потрібен додатковий дозвіл (дивись нижче).
183183
```
184184

185185
Щоб надати JavaScript доступ до будь-якого іншого заголовка відповіді, сервер повинен надіслати заголовок `Access-Control-Expose-Headers`. Він містить розділений комами список небезпечних імен заголовків, які мають бути доступними.
@@ -203,11 +203,11 @@ Access-Control-Expose-Headers: Content-Length,API-Key
203203

204204
Ми можемо використовувати будь-який HTTP-метод: не тільки `GET/POST`, а й `PATCH`, `DELETE` та інші.
205205

206-
Деякий час тому ніхто навіть уявити не міг, що веб-сторінка може робити такі запити. Тому все ще можуть існувати веб-сервіси, які сприймають нестандартний метод як сигнал: "Це не браузер". Вони можуть це враховувати при перевірці прав доступу.
206+
Деякий час тому ніхто навіть уявити не міг, що веб-сторінка зможе робити такі запити. Тому все ще можуть існувати веб-сервіси, які сприймають нестандартний метод як сигнал: "Це не браузер". Вони можуть це враховувати при перевірці прав доступу.
207207

208-
Тому, щоб уникнути непорозумінь, будь-які "небезпечні" запити, які не можна було зробити в старі часи, браузер не робить такі запити відразу. По-перше, він надсилає попередній, так званий «передпольотний» запит, щоб отримати дозвіл.
208+
Тому, щоб уникнути непорозумінь, будь-які "небезпечні" запити, які не можна було зробити в старі часи, браузер не робить відразу. По-перше, він надсилає попередній, так званий "передпольотний(preflight)" запит, щоб отримати дозвіл.
209209

210-
Запит перед друком використовує метод `OPTIONS`, без тіла та трьох заголовків:
210+
Запит перед друком використовує метод `OPTIONS`, без тіла запросу, але з трьома заголовками:
211211

212212
- Заголовок `Access-Control-Request-Method` містить метод небезпечного запиту.
213213
- Заголовок `Access-Control-Request-Headers` надає список небезпечних HTTP-заголовків, що розділені комами.
@@ -218,7 +218,7 @@ Access-Control-Expose-Headers: Content-Length,API-Key
218218
- `Access-Control-Allow-Origin` має бути або `*`, або джерелом запиту, наприклад `https://javascript.info`, щоб дозволити це.
219219
- `Access-Control-Allow-Methods` повинен мати дозволений метод.
220220
- `Access-Control-Allow-Headers` повинен мати список дозволених заголовків.
221-
- Крім того, заголовок `Access-Control-Max-Age` може вказати кількість секунд для кешування дозволів. Тому веб-переглядачу не потрібно буде надсилати попередній запит для наступних запитів, які задовольняють надані дозволи.
221+
- Крім того, заголовок `Access-Control-Max-Age` може вказати кількість секунд для кешування дозволів. Тому веб-переглядачу не потрібно буде надсилати попередній запит для наступних подібних запитів в межах вже наданих дозволів.
222222

223223
![](xhr-preflight.svg)
224224

@@ -239,7 +239,7 @@ let response = await fetch('https://site.com/service.json', {
239239
- `Content-Type` не є одним із: `application/x-www-form-urlencoded`, `multipart/form-data`, `text/plain`.
240240
- "Небезпечний" заголовок `API-Key`.
241241

242-
### Крок 1 (попередній запит)
242+
### Крок 1 (попередній(preflight) запит)
243243

244244
Перед надсиланням такого запиту браузер самостійно надсилає попередній запит, що виглядає так:
245245

@@ -368,15 +368,15 @@ Access-Control-Allow-Credentials: true
368368
**Для безпечних запитів:**
369369

370370
- → Браузер надсилає заголовок `Origin` з джерелом.
371-
- ← Для запитів без облікових даних (не надсилаються за замовчуванням), сервер повинен встановити:
371+
- ← Для запитів без облікових даних (типово не надсилаються), сервер повинен встановити:
372372
- `Access-Control-Allow-Origin` на `*` або те саме значення, що й `Origin`
373373
- ← Для запитів з обліковими даними сервер повинен встановити:
374374
- `Access-Control-Allow-Origin` на те саме значення, що й `Origin`
375375
- `Access-Control-Allow-Credentials` на `true`
376376

377377
Крім того, щоб надати JavaScript доступ до будь-яких заголовків відповіді, окрім `Cache-Control`, `Content-Language`, `Content-Type`, `Expires`, `Last-Modified` або `Pragma`, сервер повинен перерахувати дозволені у заголовку `Access-Control-Expose-Headers`.
378378

379-
**Для небезпечних запитів попередній запит "preflight" видається перед запитом:**
379+
**Для небезпечних запитів попередній запит "preflight" виконується перед фактичним запитом:**
380380

381381
- → Браузер надсилає запит `OPTIONS` на ту саму URL-адресу із заголовками:
382382
- `Access-Control-Request-Method` містить метод, що запитується.

0 commit comments

Comments
 (0)