Since it is difficult to get MSDeploy to work through a proxy server, I made the process more obvious just by using a huge file (750 MB).
For the agent service ( http://localhost:80/MsDeployAgentService ) I can confirm that it does not download the entire package. If I delete the file from the server (localhost), the deployment will take ~ 25 seconds. Once the file already exists, the deployment happens almost instantly. Given my machine specifications, at that time it did not transfer 750 MB to memory (not to mention transferring over HTTP).
Update . I can also confirm the same behavior when deploying to a remote (albeit the same network) MsDeploy.axd service. The initial deployment was 50 seconds, the next deployment was <1 second.
Update 2 Christina Olson from the IIS team confirmed this in her comment :
Web Deploy performs incremental synchronization in 2 parts, so in the first part it sends only metadata about the contents of the file in the package to determine which files really need updating, so in the second part only these incremental update files are sent by wire. Basically, metadata about each file (such as name, size, recording time) is sent via cable, but the actual contents of the file are missing if the file does not need updating
Richard Szalay
source share