110 likes | 218 Views
Delta Encoding for HTTP/1.1. Sloutsky Alexander Fink Dmitry Supervised by Lavy Libman. d. Project Goals. Reduce network bandwidth Be transparent to users Server side: module for Apache Web Server Client side: modification of Squid Proxy. Description.
E N D
Delta Encoding for HTTP/1.1 Sloutsky Alexander Fink Dmitry Supervised by Lavy Libman d
Project Goals • Reduce network bandwidth • Be transparent to users • Server side: • module for Apache Web Server • Client side: • modification of Squid Proxy
Description • Web Server stores several versions of the same document. • Server updates DB as document changes. • Client indicates what version of document it has. • Only change between versions is sent (delta encoding) Project Home Page: http://comnet.technion.ac.il/~cn33s00 FOR MORE INFO...
Details: Apache Delta module • Highly configurable module: • types of delta encoding per HTTP type • storing method of files in database • depth of database • modularity for future enchanting: Delta Main Module Delta database manager text image binary Sub-Delta modules
Database: Apache Delta module • Main Database structure: • Latest version (LV) of document • Differences of previous versions (PV) to LV • Only differences are stored to save space • Storing method can be configured • Deltas Database: • For each version: • difference between LV and PV
Algorithm: Apache Delta module • Receive HTTP request • If (document was changed since last time) • unpack versions of document • update main database • signal to Sub-Delta module to recalculate all deltas for this document • pack the database • Signal to Sub-delta module to select an appropriate delta
Summary: Apache Delta module • Achievements: • Significantly decreases networking load on server • Reduces the time user waits for document • Payment: • Disk space (depends on database depth) • CPU cycles on document update (rare)
Details: Squid Proxy • Modifying existing product • The change includes: • New field (eTag) is added to every cache entry • Support of new fields and parameters both in request and reply HTTP headers • New HTTP status (226 Delta) and its handler
Algorithm: Squid Proxy • If the requested document resides in cache but needs revalidation, then: • Include Delta information in the outgoing request • If the reply is a Delta (status: 227), then: • Apply the Delta to the cached version • Save the new version and discard the old • Send the latest version to the client
Technologies used • Extension to existing HTTP protocol • Transparent to non-compatible parties • Based on IETF internet draft • draft-mogul-http-delta-04.txt • Makes use of Apache module API • Client’s cache is based on squid caching mechanisms
Other resources • Delta encoding IETF Internet draft • http://www.ietf.org/internet-drafts/draft-mogul-http-delta-04.txt • Delta-encoding research at COMPAQ (Digital) • http://www.research.digital.com/wrl/techreports/abstracts/97.4.html • HTTP 1.1 standard (RFC 2616) • ftp://ftp.isi.edu/in-notes/rfc2616.txt • Apache server and Squid proxy • http://www.apache.orghttp://www.squid-cache.org