Progress bar for http request

I want to make a progress bar directive for my angular app, which shouldn't be too bad. However, how would I determine the progress of http requests? Would I need to restructure the existing server code for this?

I have one progress bar that works relatively well right now and its because the angular-file-upload plugin I am using for that one case has a progress api.

For my other cases I'm using an interval to increase the progress and just let it idle at 50% until my request comes back. This works but is hacky since it'll have a huge jump from 50-100. Is there a way I can just get the actual progress of these requests?

EDIT: actually, this probably isn't possible because the progress events are for the actual requests right? It won't be the progress of the tasks being completed on the server. Would I have to keep sending back to my angular app from the server? Like after I parse some data i'll send 10% progress back then another update after the next task in the series of task is done? Is this some kind of pub/sub?