See
https://incompleteness.me/blog/2006/09/05/2-articles-on-reverse-ajax/