HTTAPI allows for direct control of the call, in dynamic and real time way, step by step (action by action), as opposed to dialplan or mod_xml_curl that define all the steps which will be executed by one extension.
When the httpapi dialplan action is executed, FreeSWITCH will make an HTTP request to a configured webserver. In this HTTP request FreeSWITCH will send to the webserver informations about the call, and other variables and parameters.
Webserver will answer to FreeSWITCH with a short XML HTTPAPI document containing what FreeSWITCH must do with/to the call.
FreeSWITCH will execute it, and then will again make a HTTP request to the webserver, like the previous one.
The cycle repeat itself until the call is hangup or transferred.