This is a misuse of the header. An If-Modified-Since header is one that an HTTP client (browser or code) can be delivered to the server when requesting a resource. If the value is "I want resource X, but only if it has changed since T." Its purpose is to provide client-side caching of resources.
The semantics of your proposed use are: "I want updates to Collection X that have occurred since the time of T." This is a query for subset X. It doesn't seem like your motivation is to enable caching. Your client-side cached view seems to contain all of X, although a typical query returns only a small set of changes to X; that is, the answer is not that you are directly caching, so caching should take place in user-side custom logic on the client side.
The query string parameter is a much more suitable solution. Below {seq} will be something like a sequence number or timestamp.
GET /ws/schools/7/students/updates?since={seq}
On the server side. I assume that you have a sequence of updates from the beginning of your system, and a request of the above form captures the first N updates that have a sequence value greater than {seq} . That way, if the customer has ever lagged far behind and had to catch up, the results will be uploaded.
Timothy shields
source share