A method comprising: receiving, by a caching proxy device, a first request message of a respective client device, the first request message requesting a current content segment from a sequence of data segments of a data file for a current streaming data session of the client device; determining that a NewVideoFlag indicates that the sequence of data segments of the data file for the current streaming data session associated with the first request message has not previously been identified and mapped to one or more respective global IDs; forwarding the first request message to a content server, and receiving a first response message in response to the first request message, the first response message including the requested current content segment; determining whether a Segment ID of the received current content segment matches a Segment ID of any of a plurality of cached content segments stored in a cache storage; in a case where it is determined that the Segment ID of the received current content segment does not match the Segment ID of any of the plurality of cached content segments, the method further comprises (i) setting the NewVideoFlag to indicate that the sequence of data segments of the data file for the current streaming data session has now been identified and mapped to the one or more respective global IDs, (ii) generating a new global video file ID to identify the data file for the current streaming data session, (iii) storing the current content segment in the cache storage, and updating cache bookkeeping data to associate a video file ID of the current content segment now stored in the cache with the new global video file ID, and (iv) providing the first response message to the client device in response to the first request message; and in a case where it is determined that the Segment ID of the received current content segment matches the Segment ID of a one of the plurality of cached content segments, the method further comprises determining, based on a result from a hash function applied to data content of the current content segment, whether the hash result matches a result of the hash function applied to any of the cached content segments. receiving, by a caching proxy device, a first request message of a respective client device, the first request message requesting a current content segment from a sequence of data segments of a data file for a current streaming data session of the client device; determining that a NewVideoFlag indicates that the sequence of data segments of the data file for the current streaming data session associated with the first request message has not previously been identified and mapped to one or more respective global IDs; forwarding the first request message to a content server, and receiving a first response message in response to the first request message, the first response message including the requested current content segment; determining whether a Segment ID of the received current content segment matches a Segment ID of any of a plurality of cached content segments stored in a cache storage; in a case where it is determined that the Segment ID of the received current content segment does not match the Segment ID of any of the plurality of cached content segments, the method further comprises (i) setting the NewVideoFlag to indicate that the sequence of data segments of the data file for the current streaming data session has now been identified and mapped to the one or more respective global IDs, (ii) generating a new global video file ID to identify the data file for the current streaming data session, (iii) storing the current content segment in the cache storage, and updating cache bookkeeping data to associate a video file ID of the current content segment now stored in the cache with the new global video file ID, and (iv) providing the first response message to the client device in response to the first request message; and in a case where it is determined that the Segment ID of the received current content segment matches the Segment ID of a one of the plurality of cached content segments, the method further comprises determining, based on a result from a hash function applied to data content of the current content segment, whether the hash result matches a result of the hash function applied to any of the cached content segments.