Publié le 02/09/2010
Auteur axel
Réseaux sociaux
0 partages
0 tweets
0 plus
0 commentaires

Charger l'entete d'un fichier via le protocole HTTP

La communication avec un serveur via HTTP fonctionne sur principe du client qui envoie une demande au serveur puis du serveur qui répond à notre requete. La réponse du serveur contient toujours une entete pour en apprendre d'avantage sur le contenu à télécharger et de vérifier que tout s'est bien passé.

Lire le header d'un ficher via Http

Le header du contenu est la première réponse que le serveur envoie à une requete. L'entete contient un élement important à savoir le status du document: 200 le document est prêt à etre chargé, un autre code oups !
En JAVA, la commande getHeaderFields retourne les informations concernant le document à charger:
- 200 OK: status du document,
- Content-Type: type de fichier,
- Expires: date d'expiration,
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
 
/**
 * Charger l'entete d'un fichier HTML
 * http://www.fobec.com/java/988/charger-entete-fichier-via-protocole-http.html
 * @author Axel 2010
 */
public class HttpResponseHeader {
 
    public static void main(String[] args) {
        try {
            URL url = new URL("http://www.fobec.com");
            URLConnection connection = url.openConnection();
 
            Map map = connection.getHeaderFields();
            Set set = map.entrySet();
 
            Iterator iterator = set.iterator();
            while (iterator.hasNext()) {
                System.out.println(iterator.next());
            }
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Pour la page d'index du suite Fobec.com, la class renvoie les données ci-dessous:
null=[HTTP/1.0 200 OK]
Content-Language=[fr]
Date=[Wed, 25 Feb 2010 16:08:25 GMT]
Content-Length=[21827]
Expires=[Thu, 26 Feb 2010 16:08:25 GMT]
Set-Cookie=[PHPSESSID=5939f4299b71b8a3a04a83d2c30a91f6; path=/]
Connection=[keep-alive]
Content-Type=[text/html; charset=utf-8]
X-Cache=[MISS from ipcop.localdomain]
X-Powered-By=[PHP/5.5.20]
Server=[Apache]

A y regarder de plus pret, on trouve :
Content-Length: taille du document à charger,
Date: date de création du fichier,
Expires: date d'expiration de la ressource,
...
Bref toutes les informations indispensables à une communication client/serveur se trouve dans l'entete que l'on peut charger directement avec getHeaderFields() en JAVA.

Ajouter un commentaire

Les champs marqués d'un * sont obligatoires, les adresses emails se sont pas publiées.

A lire aussi

Réseaux sociaux
Présentation de l'article
Catégorie
java - sources
Mise a jour
02/09/2010
Visualisation
vu 1993 fois
Public
Internaute
Auteur de la publication
Axel
Membre junior
Auteur de 51 articles
|BIO_PSEUDO|
Commentaires récents

Publié par foufou0406 dans CMS

merci !!!

Publié par gilles dans logiciel

Bonjour,

j'utilise quotidiennement votre excellent logiciel complet et ergonomique.

Mais depuis quelques jours j'ai un probleme il recherche indefiniment resolution du nom de l'hote.

Publié par Fred dans tuto

J'suis d'accord avec Do, PHP est deja un moteur de template.
Disons que le moteur de template permet de separer le code de la vue pour les debutants qui ont besoin qu'on leur impose des bornes...

Publié par taoufik dans CMS

merci cest un bon logiciel

Publié par MeepMeep dans tuto

Attention, un petit correctif a apporter :
headerContent-type: $header_contenttype charset: UTF-8
Remplacer charset: UTF-8 par charsetUTF-8
La difference est subtile mais susceptible d'etre m...