Séance 2 : formats de données§
Pierre-Antoine Champin & Michael Mrissa
Département Informatique, IUT Lyon 1Ce travail est sous licence Creative Commons Attribution-ShareAlike 3.0 France.
Pierre-Antoine Champin & Michael Mrissa
Département Informatique, IUT Lyon 1Ce travail est sous licence Creative Commons Attribution-ShareAlike 3.0 France.
Lors de la séance précédente, vous avez utilisé des expressions régulières pour analyser le contenu des pages.
Il existe une taxonomie standard des formats de données, appelés types de contenu (media types).
Ces types de contenu ont une structure à deux niveaux ; exemples :
text/html
text/plain
image/png
audio/mpeg
video/H264
application/pdf
Tout message HTTP qui comporte un contenu doit spécifier son format,
à l’aide de l’en-tête Content-Type
.
Content-Type: text/html; charset=utf-8
Dans la requête,
le client peut indiquer au serveur les types de contenu qu’il est capable de traiter,
à l’aide du champs Accept
.
Accept: text/html,application/xhtml+xml,
application/xml;q=0.9,*/*;q=0.8
HEAD
§Lorsqu’on est intéressé uniquement par les en-têtes, et pas par le contenu,
on peut utiliser le verbe HEAD
au lieu du verbe GET
.
text/html
§Format documentaire, surtout destiné à l’affichage.
Sauf pour les serveurs qui ne fournissent que ce format, on lui préférera des formats plus adaptés au traitement automatique.
Bibliothèque Jsoup (installation maven).
application/xml
§Peut être vu comme une extension de HTML, autorisant n’importe quelle balise :
<commande no="12345">
<client no="678-789"/>
<articles>
<article code="ab12">
<quantité>2</quantité>
<prix>10.10</prix>
</article>
<article code="cd34">
<quantité>7</quantité>
<prix>42.00</prix>
</article>
</articles>
</commande>
Disponible en standard : javax.xml.parsers.
DocumentBuilder db =
DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc = db.parse(inputStream, urlString);
Sous-ensemble de Javascript, limité à la description de données :
{
"no_commande": "12345",
"no_client": "678-789",
"articles": [
{
"code": "ab12",
"quantite": 2,
"prix": 10.10
},
{
"code": "cd34",
"quantite": 7,
"prix": 42.10
}
]
}
Bibliothèque GSON (installation maven).
Améliorez le programme de la séance précédente :
HEAD
(au lieu de GET
)
pour vérifier la validité des liens ;text
, image
, audio
…).