Skip to content

Commit 1e3ef47

Browse files
author
Metre-Ray
committed
feat: add translation files for fetch-crossorigin
1 parent deb7ea7 commit 1e3ef47

File tree

3 files changed

+407
-0
lines changed

3 files changed

+407
-0
lines changed
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
Нам нужен `Origin`, потому что иногда `Referer` отсутствует. Например, когда мы `fetch` (запрашиваем) HTTP-страницу с HTTPS (менее безопасный доступ с более безопасного), то `Referer` нет.
2+
3+
[Content Security Policy](http://en.wikipedia.org/wiki/Content_Security_Policy) (политика безопасности содержимого) может запретить отправление `Referer`.
4+
5+
Как мы увидим, у `fetch` тоже есть опции, которые предотвращают отправку `Referer` и даже позволяют изменять его (в пределах того же сайта).
6+
7+
Согласно спецификации `Referer` является необязательным HTTP-заголовком.
8+
9+
Именно потому что `Referer` ненадёжен, был изобретён `Origin`. Браузер гарантирует наличие правильного `Origin` при cross-origin запросах.
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
importance: 5
2+
3+
---
4+
5+
# Почему нам нужен Origin?
6+
7+
Как вы, вероятно, знаете, существует HTTP-заголовок `Referer`, который обычно содержит url страницы, которая инициировала сетевой запрос.
8+
9+
Например, при запросе (fetch) `http://google.com` с `http://javascript.info/some/url`, заголовки выглядят так:
10+
11+
```
12+
Accept: */*
13+
Accept-Charset: utf-8
14+
Accept-Encoding: gzip,deflate,sdch
15+
Connection: keep-alive
16+
Host: google.com
17+
*!*
18+
Origin: http://javascript.info
19+
Referer: http://javascript.info/some/url
20+
*/!*
21+
```
22+
23+
Как вы можете видеть, присутствуют и `Referer`, и `Origin`.
24+
25+
Вопросы:
26+
27+
1. Почему нужен `Origin`, если `Referer` содержит даже больше информации?
28+
2. Возможно ли отсутствие `Referer` или `Origin`, или это неправильно?

0 commit comments

Comments
 (0)