We’ve been advised to send a larger number of smaller packets with HTTP/2 (as opposed to a small number of larger packets with HTTP/1), but does this negatively impact performance when using satellite internet access like in the example you gave?

Cloudflare’s Keyless SSL project enables caching whilst maintaining the integrity of the certificate served. So (if my theory is right… bear with me) you could install it on the local cache server as a way of ensuring HTTPS is still present, whilst allowing local caching (I think?).

If you’re trying to setup a shared cache, I don’t think service workers will be the right choice. From what I understand, they’re a mechanism for managing a local cache and custom behaviors on the client, especially useful in case of no or bad connectivity; moreover they only work on a single user agent (a single browser on a single computer) therefore the advantages cannot be shared across a classroom. For this use case, I don’t see them improving the situation much from what properly set HTTP caching headers already offer.

Instead, what comes to mind is IPFS which is a secure way to share resource locally (peer-to-peer) in a secure manner. Maybe this sort of use case is the killer-feature of IPFS. Worth looking into!