I know there are ways to fake it, polling (or long polling) but is there any way to have the server contact the browser to push out information?
Either polling option wastes resources on the server and depending on the server can lock it up (apache and iis for example).
Seems like a lot of sites are using long polling to fake a server-side push mechanism over http. Wouldn't it just be better to have a true push protocol built into a browser?
What options are there that are server friendly to push (fake or otherwise) information to web browsers?
I would think WebSockets (see http://en.m.wikipedia.org/wiki/WebSocket) is real push, so the answer would be: it depends upon the browser. If you need wide compatibility, the best you can do today is JavaScript libraries that will choose the best available protocol for the browser it's running in (e.g. https://github.com/ffdead/jquery-graceful-websocket). But you wanted server-friendly, and supporting multiple protocols is not server friendly. The current state-of-the-art is that doing cool stuff that works across browsers is engineering-intensive.