Do ponto de vista do cliente, se você tem um programa C / C ++ e deseja usá-lo para conversar com a Internet, usaria libcurl. É praticamente uma biblioteca padrão (e abrangente) para conectar-se a URLs http para enviar e receber dados. Existem várias outras bibliotecas - a Microsoft possui algumas, existem várias de código aberto.
Agora, isso é para URLs antigas simples sobre http (ou SMTP, FTP ou Gopher, ou ... libcurl é muito abrangente!) Se você estiver tentando consumir serviços da Web sobre SOAP, poderá usar uma de muitas outras bibliotecas, como gsoap.
Para o lado do servidor, você precisa de um servidor da web ou estrutura que exponha seu código C ++. Novamente, existem várias maneiras de fazer isso - os programas Web mais antigos eram todos em C / C ++, escritos como programas CGI, nos quais o servidor Web chamava seu aplicativo usando uma forma de IPC. Desde então, temos Wt, Qt, cppCMS, ffead e todos os da Microsoft (ISAPI, ATLServer e agora Casablanca).
Eu acho que a razão pela qual a on-onne realmente usa C ++ para a programação da Web é porque as outras linguagens vêm pré-empacotadas com essas bibliotecas. Em C ++ (como sempre), você precisa encontrar uma biblioteca para usar, enquanto o PHP vem pronto para usar a web.