aboutsummaryrefslogtreecommitdiff
path: root/files/ru/web/http/headers/cache-control/index.html
diff options
context:
space:
mode:
authorFlorian Merz <me@fiji-flo.de>2021-02-11 14:51:05 +0100
committerFlorian Merz <me@fiji-flo.de>2021-02-11 14:51:05 +0100
commitc058fa0fb22dc40ef0225b21a97578cddd0aaffa (patch)
treedf20f8b4c724b61cb9c34cdb450a7ac77d690bd0 /files/ru/web/http/headers/cache-control/index.html
parent8260a606c143e6b55a467edf017a56bdcd6cba7e (diff)
downloadtranslated-content-c058fa0fb22dc40ef0225b21a97578cddd0aaffa.tar.gz
translated-content-c058fa0fb22dc40ef0225b21a97578cddd0aaffa.tar.bz2
translated-content-c058fa0fb22dc40ef0225b21a97578cddd0aaffa.zip
unslug ru: move
Diffstat (limited to 'files/ru/web/http/headers/cache-control/index.html')
-rw-r--r--files/ru/web/http/headers/cache-control/index.html173
1 files changed, 173 insertions, 0 deletions
diff --git a/files/ru/web/http/headers/cache-control/index.html b/files/ru/web/http/headers/cache-control/index.html
new file mode 100644
index 0000000000..4dd0c2de68
--- /dev/null
+++ b/files/ru/web/http/headers/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>