Well the question is a bit vague but I will go ahead and get something started:
Web services(soap, rest)
- soap is secure but very verbose. rest is lightweight but lacks the security that soap offers. Though you can still encrypt using https
tcp sockets- guaranteed delivery, bigger payload than udp, cumbersome to setup for web based solutions
udp sockets- lighter payload, non guaranteed delivery, ability to broadcast to all ports listening but most routers don't like this
web request/response - pretty straightforward
But as for which one to use we really can't answer that without some context for the question. What are you trying to communicate? How many clients are we communicating to? Will this be initiated or do you need to notify?