This allows simpler server-side code, and a failure part-way through sending won't require restarting from the beginning next time.