This is for playlist only. There is another mechanism to check continuously for new media content. This is discussed in the cache mechanism section of this tutorial.
How Refresh Request is sent
Digital signage player in a network regularly point to a http-address which has the index. To do this as efficient as possible, there are two types of requests:
HEAD-Requests
GET-Requests
On each refresh cycle, the player sends HEAD request first.
The HEAD-Request
The HEAD request only asks for the HTTP header with an empty body to save bandwidth and server resources. The server should send an HTTP "Etag", “Last-Modified:” and a “Content-Length:” in his header. Due to this information, the player can decide to send a GET-Request to get a new SMIL index or not.
Garlic player will sand following HEAD-Request, if he asks for a file he did not fetch before.
HEAD /index.smil HTTP/1.1
Host: content-url.com
If the file is already fetched garlic-player will add If-None-Match and If-Modified-Since as fallback.
HEAD /index.smil HTTP/1.1
Host: example.com
If-None-Match: "a1b2c3d4e5f6"
If-Modified-Since: Wed, 15 Nov 2023 12:30:45 GMT
Reaction on Server Response
When the server sends back a 304 Not modified response after HEAD request, garlic player will not send a GET request. This will happen only on a 200 OK.
With this way we ensure, that the client/server communication is as efficient as possible.
Have in mind that the priority is to check etag (If-None-Match), as If-Modified-Since is not accurate enough.