Github API указывает два заголовка, которые могут использоваться в условных запросах, Last-Modified
и ETag
. Что является более надежным при запросе API?Что более надежно для условных запросов API Github, ETag или Last-Modified?
В контексте: при использовании API-интерфейсе конечной точки GET /repos/:owner/:repo/git/trees/:sha
на каждый подкаталоге большого репо, каждый ответ содержит такое же значение last-modified
(даже если репо на GitHub показывает различные даты), автор в то время как значение etag
для каждого отличается. Мне интересно, является ли ETag
более подробным представлением состояния состояния репо (для целей кэширования).
Спасибо - кажется, что заголовок 'ETag' показывает правильное изменение состояния, а заголовок' Last-Modified' - относительно всего репо (при использовании github api). – unboundev
Я думал, что есть ошибка, потому что я получал 304 каждый раз, когда получаю ссылку, даже когда появились новые коммиты. Обновление для использования etag вместо последнего модифицированного исправлено проблема – Abby
В случае использования 'ETag' в сочетании с заголовком' Authorization', отправляющим токен, запрос с одним токеном будет отвечать 304 каждый раз, если документ не будет но если вы отправите тот же ETag, но используя другой токен, конечная точка ответит 200, не имеет значения, изменился ли документ или нет. Итак, есть ли способ узнать, изменился ли документ, но без передачи в токен, отправленный? Принимая во внимание, что заголовок «Last-Modified» недоступен (отсутствует в заголовке ответа) для всех конечных точек github api. – p1nox