Récupérer les entêtes d'un serveur web

Publié le 30 décembre 2013 par Aymen |eon|
Récupérer la réponse d'un serveur web/site web et analyser les entêtes (headers) peut être utile .
Exemple : "Comment connaitre le nom de mon serveur web ?".
C'est un commentaire que j'ai reçu sur ce blog, et je vais essayer d'y répondre dans ce billet .

Pour les utilisateur de GNU/Linux


C'est très simple, il suffit d'utiliser les bonnes commandes :
curl -I  www.webzerone.com

Réponse :

HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Expires: Mon, 30 Dec 2013 10:17:51 GMT
Date: Mon, 30 Dec 2013 10:17:51 GMT
Cache-Control: private, max-age=0
Last-Modified: Mon, 30 Dec 2013 10:16:09 GMT
ETag: "58ecd593-31a0-4cbf-958a-b42bd1aed7f5"
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Content-Length: 0
Server: GSE
Alternate-Protocol: 80:quic,80:quic
Il suffit de voir ce que "Server" indique. Dans ce cas c'est : GSE .
 curl -I  www.duckgogo.com

Réponse :
HTTP/1.1 200 OK
Date: Mon, 30 Dec 2013 10:41:18 GMT
Server: Apache/2.2.22 (Ubuntu)
X-Powered-By: PHP/5.3.10-1ubuntu3.9
Set-Cookie: uid=www52c14dced43510.32313279; expires=Wed, 29-Jan-2014 10:41:18 GMT
Vary: Accept-Encoding
Connection: close
Content-Type: text/html
Set-Cookie: WEBUK=; Expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/

Et dans ce cas c'est : Apache 2.2.22 (Ubuntu) .
Curl permet même de voir les liens qui se cachent derrière les URLs raccourcis (comme bit.ly) .
curl -I  bitly.com/1dOvYUZ

Réponse :
HTTP/1.1 301 Moved
Server: nginx
Date: Mon, 30 Dec 2013 10:21:54 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Set-Cookie: _bit=52c14942-00069-0479e-241cf10a;domain=.bitly.com;expires=Sat Jun 28 10:21:54 2014;path=/; HttpOnly
Cache-control: private; max-age=90
Location: http://webzerone.com/
MIME-Version: 1.0
Content-Length: 113

Une autre alternative : wget .
wget -S http://webzerone.com

Réponse :
--2013-12-30 11:22:33--  http://webzerone.com/
Resolving webzerone.com (webzerone.com)... 173.194.68.121, 213.186.33.5
Connecting to webzerone.com (webzerone.com)|173.194.68.121|:80... connected.
HTTP request sent, awaiting response...
  HTTP/1.1 301 Moved Permanently
  Location: http://www.webzerone.com/
  Date: Mon, 30 Dec 2013 10:22:33 GMT
  Content-Type: text/html; charset=UTF-8
  Server: ghs
  Content-Length: 222
  X-XSS-Protection: 1; mode=block
  X-Frame-Options: SAMEORIGIN
  Alternate-Protocol: 80:quic
HTTP request sent, awaiting response...
Location: http://www.webzerone.com/ [following]
[...]
  HTTP/1.1 200 OK
  Content-Type: text/html; charset=UTF-8
  Expires: Mon, 30 Dec 2013 10:22:33 GMT
  Date: Mon, 30 Dec 2013 10:22:33 GMT
  Cache-Control: private, max-age=0
  Last-Modified: Mon, 30 Dec 2013 10:22:11 GMT
  ETag: "139ed979-e565-456c-b4a0-62928833e11c"
  X-Content-Type-Options: nosniff
  X-XSS-Protection: 1; mode=block
  Server: GSE
  Alternate-Protocol: 80:quic,80:quic
  Transfer-Encoding: chunked
Length: unspecified [text/html]
Par contre si vous êtes seulement intéressé par les entêtes :
wget --server-response --spider http://webzerone.com

Lynx est une autre commande qui peut faire le même boulot, il suffit de taper :
lynx -head -dump http://webzerone.com
Réponse :
HTTP/1.1 302 Moved Temporarily
Set-Cookie: rd=R3047007403; path=/; expires=Wed, 01-Jan-2014 22:44:08 GMT
Server: nginx
Date: Mon, 30 Dec 2013 10:27:49 GMT
Content-Type: text/html
Content-Length: 154
Connection: close
Location: http://www.webzerone.com



Pour les utilisateurs d'autres  systèmes

Il existe d'autres moyens comme l'extension Live HTTP Headers pour firefox, ou HTTP Headers pour Chrome/Chromuim .
Il suffit de voir ce que "Server" indique.