Могу ли я использовать принудительный механизм сервера HTTP2 для обновления уже отправленного ресурса?

#http #http2 #spdy

#http #http2 #spdy

Вопрос:

могу ли я использовать принудительный механизм сервера HTTP2 для обновления ресурса, который уже известен клиенту?

Пример:

У меня есть некоторый ресурс под https://myserver.org/myresource.json , который возвращает {"state": "off"}

Как только состояние изменит форму «выкл.» на «вкл.», я хочу отправить запрос {"state": "on"} клиенту по тому же URL (т.Е. https://myserver.org/myresource.json ).

Спасибо за вашу поддержку!

Комментарии:

1. Кстати: для тех, кому интересно, почему я спрашиваю: я хотел избавиться от дополнительного канала WebSocket в w3.org/Submission/2016/SUBM-viwi-protocol-20161213

Ответ №1:

Вы можете отправить его, но это только обновит кэш клиентов и ничего не изменит на веб-странице. Для этого вам нужно, чтобы клиент повторно извлек ресурс (через XHR / fetch), который может использовать значение непосредственно из кэша.

Вы можете найти несколько примеров по этому поводу здесь: https://www.igvita.com/2013/06/12/innovating-with-http-2.0-server-push / в главе Клиентские уведомления для принудительного доступа сервера.

Лично я не нашел ему особого применения и предпочел бы отправлять обновленный контент напрямую через websockets или SSE.

Комментарии:

1. Хм .. это немного разочаровывает. Но почему-то я ожидал чего-то подобного, причина этого, безусловно, заключается в его назначении для предварительного кэширования ресурсов для веб-страниц