The simple answer is yes.
It’s possible to encode or tunnel anything over any protocol.
The next question is why isn’t it done more?
- http has basically become the defacto internet protocol for all media content. This has resulted in a lot of other protocols from becoming blocked due lack of support or due to firewall rules.
- efficiency. http (and all the other protocols it runs atop) have become highly optimized for doing what it does. To layer something like http over another protocol, would certainly be possible but it would likely be slower, less responsive and lack a lot of the niceties that make http work as well as it does.
For the above reasons it’s actually more common to see other protocols run on top of http. This is especially common to prevent blocking and censorship by making the traffic look like normal http traffic when it may actually be private messaging apps, file transfers, VPN, etc.
This needs a “reticulating splines” step.