sábado, 16 de junio de 2012

¿Qué servidor hay detrás de una web?

Detrás de cualquier sitio web hay un servidor web, como Apache, IIS, etc. Una forma de saber esto es mirar el campo Server de la cabecera HTTP en la respuesta del sitio web en cuestión.

Por ejemplo, hagamos una lista de sitios web en un archivo de texto ( webs.txt ):

www.microsoft.com
www.google.com
www.apple.com
www.wikipedia.org
www.yahoo.com
www.facebook.com
www.twitter.com

Y ahora utilicemos el siguiente script de Powershell ( webserver.ps1 ) en la misma carpeta que el archivo webs.txt:

# webserver.ps1 - servidores web desde urls

function servidor_web($url)
{
  if ( $url -ne "" )
  {
    $solicitud=[system.Net.HttpWebRequest]::Create("http://"+$url)
    $cabecera = $solicitud.getresponse()
    $cabecera.Close()
    if ( $cabecera.Server ) { write-host $url "->" $cabecera.Server }
    else { write-host $url "-> no especificado" }
  }
}

$urls = get-content ./webs.txt

foreach ( $url in $urls) { servidor_web($url) }


El resultado es el siguiente:

www.microsoft.com -> Microsoft-IIS/8.0
www.google.com -> gws
www.apple.com -> Apache/2.2.3 (Oracle)
www.wikipedia.org -> Apache
www.yahoo.com -> YTS/1.20.10
www.facebook.com -> no especificado
www.twitter.com -> tfe

Y las conclusiones son interesantes:
  • Los servidores web de Google, Yahoo y Twitter son de desarrollo propio ( gws es Google Web Server, YTS es Yahoo Traffic Server y tfe sólo lo sabrán los ingenieros de Twitter ).
  • Facebook no da a conocer el campo Server en su cabecera (no especificado).
  • Apple y Wikipedia apuestan por Apache.