1. A method for creating efficient updates to a previously stored file, said method comprising: (a) receiving, by an appliance intermediary to a client and a server, a first file comprising a first plurality of sequences of data; (b) receiving, by the appliance, a second file comprising a second plurality of sequences of data; (c) creating, by a hash engine of the appliance, a hash table having a plurality of entries, each of the plurality of entries corresponding to a respective one of the first plurality of sequences, and wherein at least two of said entries correspond to overlapping sequences of data; (d) computing, by the hash engine, hash values for said second plurality of sequences of data; (e) comparing, by the hash engine, each of the second plurality of sequences of data with sequences from the first plurality of sequences having the same hash value to determine a first sequence of data and a second sequence of data present in both the first file and the second file; (f) storing, by the appliance, representations of lengths and locations of the first sequence of data and the second sequence of data present in both the first and second files; and (g) creating, by the appliance, a third file comprising sequences of data from the second file and a representation of a location and a length of the first sequence of data, the representation of the location identifying a number of bytes between a last byte of the first sequence of data and a byte preceding a first byte of the second sequence of data, the length identifying a number of matching bytes of the first sequence of data.