Server Push

There are two kinds of server pushes, which I call the true and the fake.

The Fake: I see it for Chrome to play MJPEG. It’s more of a browser feature. The server keeps sending jpg pictures and browser play video by replacing it’s picture one after another. It doesn’t need HTTP/2. Keywords: multipart x-mixed-replace boundary

The True: client receives resources without requesting. HTTP/2 required.
for Nginx, it has to be 1.13.9 and up, which was released this year 2018.


Crossdomain Access

The problem: when a web page from site A access files on site B, browser complains such as crossdomain access denied.
What it is really complaining is that browser, or plugin, doesn’t want to load resource fro site B unless B gives explicit permission.
When web based video player and video content are on different servers, this complaint happens.
Tools used for testing: JW Player 7.8.4 premium version, “primary”:”flash” vs “primary”:”html5″
The fix depends on the player mode: HTML5 vs flash.
For Flash, error message is “Cannot load M3U8: crossdomain access denied (2048)” The fix is creating /crossdomain.xml with content like:
<site-control permitted-cross-domain-policies=”all”/>
<allow-access-from domain=”*” to-ports=”*”/>
For HTML5, error message is “Cannot load M3U8: Crossdomain access denied”. The fix is adding Access-Control-Allow-Origin in the HTML header, e.g by editing nginx.conf.