Um servidor web é algo que lhe serve conteúdo usando o protocolo HTTP (S); ele recebe solicitações no formato "me dê link " e envia de volta uma resposta que pode ser uma página HTML ou qualquer outra coisa que possa ser transferida via HTTP (S); isto é, praticamente qualquer coisa (veja MIME para detalhes).
Na maioria das vezes, as páginas da Web não serão apenas arquivos de texto estáticos, mas serão geradas on-the-fly pelo servidor usando algum código do lado do servidor desenvolvido por programadores; quando um site (ou parte dele) fica complexo o suficiente, é comum defini-lo como um "aplicativo da web"; o termo é muito vago e, na verdade, significa "um site com um conteúdo gerado dinamicamente". Às vezes, o servidor da Web e o servidor de aplicativos são, na verdade, o mesmo programa (consulte IIS ou Apache com módulos); outras vezes, o servidor de aplicativos é um programa diferente (talvez até rodando em uma máquina diferente), que se comunica com o servidor web para alimentá-lo com conteúdo dinâmico enquanto o servidor web gerencia solicitações HTTP e conteúdo estático; essa é a prática padrão para sites da Web em Java.
Um serviço da web é um aplicativo da web que segue alguns padrões definidos para troca de solicitações e respostas usando XML; A idéia aqui é que o serviço web não será usado por humanos, mas será chamado por outros programas (possivelmente sendo aplicativos da web) e por isso não precisa fazer gráficos extravagantes ou qualquer outra coisa, mas apenas fornecer as informações solicitadas de forma padronizada.