Что лучше всего захватить Etag и использовать его в последующих запросах, установленных в заголовке If-None-Match?
Я вижу много других вопросов по этому вопросу, но поскольку Node.js является языком серверной стороны, "поддержка Etag", по-видимому, относится к приложению nodejs, создающему, отправляющему и обрабатывающему какой код возвращать своему клиенту. В моем случае я запрашиваю и не отправляю ресурсы и сохраняю все 200 ответов в моей базе данных firebase для мобильных пользователей, чтобы использовать и обновлять, когда я получаю еще 200 ответов (а не 304), когда я сопоставляю значение Etag с If-None-Match
заголовок для отправки обратно для дополнительных запросов, чтобы увидеть, есть ли изменения в ресурсе.
Кроме того, какова правильная терминология в этом случае. Являюсь ли я клиентом, а пользователи моего мобильного приложения - моим клиентом, то есть клиентом клиента?
Я использовал reqest, и мне было интересно, если есть более простой способ, чем установка местного etag
переменная, проверьте, если она установлена, если нет, то используйте один набор заголовков один без пустых 'If-None-Match'
и еще один с ним, и использовать его, когда вы берете его в ответ захватить, как это так
function callback(error, response, body) {
if (!error && response.statusCode == 200) {
var info = body;
var etag = headers.etag;
returnEtag(etag)
затем нужно схватить и вернуть его в returnEtag()
функционировать и использовать его во втором наборе заголовков и так далее.
Это становится грязным, не говоря уже о том, что мне придется делать это через все мое приложение, чтобы управлять каждым etag
для каждого отдельного запроса существует более простой / легкий способ. Есть ли модуль с поддержкой для обработки этого из коробки?
В документации говорится, что я должен сделать следующее
Все ответы возвращают заголовок HTTP Cache-Control. Его содержание указывает, как долго кэшированный ответ может использоваться для уменьшения ненужных запросов API. Клиенты, обращающиеся к этому API, ДОЛЖНЫ учитывать эту информацию.
Кроме того, каждый ответ возвращает заголовок HTTP ETag. Это содержимое должно использоваться в последующих запросах к тому же ресурсу в заголовке HTTP If-None-Match. Затем API вернет код состояния 304 Не изменен, если кэшированная информация все еще действительна. Клиенты, получающие доступ к этому API, ДОЛЖНЫ использовать этот метод, также известный как условный GET.
Я использую свой собственный сервер для доступа к этому API, а затем сохраняю эти данные в базе данных, к которой мои пользователи могут получить доступ в мобильном приложении (храня ключи приложения в других компаниях api вдали от пользователей мобильного приложения).