Exercices#

Exercice 1#

On donne la capture des en-têtes d’une requête HTTP effectuée par un navigateur.

  • Requête envoyée par le client:

    image

    Entête d’une requête HTTP#

  • Réponse envoyée par le serveur:

    image

    Entête de la réponse#

  1. Quelle est la méthode utilisée par cette requête HTTP ?

  2. Quelle est la ressource demandée dans cette requête ?

  3. Cette requête a été exécutée par un navigateur. Quelle url a été saisie ?

  4. La ressource demandée a-t-elle été renvoyée par le serveur ? Justifier.

  5. Quel est le type de données envoyées par le serveur pour cette ressource?

Exercice 2#

Dans un navigateur, on saisit une url : https://interstices.info/intelligence-artificielle-intelligence-humaine/

Le navigateur envoie une requête HTTP au serveur qui héberge la page WEB demandée.

  1. Pour cette requête, quel.le est :

    1. la méthode utilisée par cette requête ?

    2. la ressource demandée ?

    3. le destinataire de la requête ?

  2. Saisir l’url dans un navigateur. Sur la page web affichée, faire un clic droit et sélectionner inspecter dans le menu contextuel. L’écran se divise en deux avec une nouvelle fenêtre appelée développement web.

    1. Sélectionner l’onglet réseau ou network puis actualiser la page web.

    2. Sélectionner la ressource intelligence-artificielle-intelligence-humaine.

    3. Sélectionner l’onglet en-tête ou headers.

    4. Donner la méthode, la ressource et l’host de la requête http.

Exercice 3#

Les navigateurs proposent des outils de développement qui permettent aux développeurs de comprendre ce qui se passe réellement pour l’affichage d’une page web.

On y accède par le menu contextuel (clic droit de souris) en sélectionnant l’entrée inspecter et qui ouvre une fenêtre contenant de nombreux outils.

  1. Aller sur le site interstices.infos puis effectuer une recherche sur le mot internet.

    1. Relever l’url affichée dans la barre d’adresse du navigateur.

    2. Que peut-on en déduire sur la requête HTTP effectuée ?

    3. Afficher l’en-tête de la requête dans le navigateur en utilisant les outils de développement.

    4. Quelles sont la méthode, la ressource et les paramètres affichés ?

  2. Modifier l’url précédente pour effectuer une requête HTTP correspondant à une recherche sur le mot turing ?

  3. Comment réaliser une recherche sur les mots turing et internet en même temps en modifiant l’url précédente ?

Exercice 4#

Le module requests de Python permet de réaliser des requêtes HTTP.

On utilisera principalement les méthodes suivantes:

  • get et post pour effectuer nos requêttes HTTP: rep=requests.get('url_du_site') ou rep=requests.post('url_du_site')

  • text permet de récupérer le contenu renvoyé par le serveur : print(rep.text) affiche le contenu.

  • headers donne le contenu de l’en-tête de la réponse HTTP renvoyé par le serveur : print(rep.headers) affiche l’en-tête de la réponse HTTP.

  • status_code contient la valeur du code de status de la requête : rep.status_code renvoie un entier.

Nous allons effectuer les mêmes requêtes que l’exercice précédent en Python.

  1. Importer le module requests dans votre feuille de programmes.

  2. Réaliser une première requêtte HTTP sur le site interstices.info avec la méthode get. La réponse de la requête sera enregistrée dans la variable rep.

    1. Comment peut-on afficher le code d’état ou le statut de la requête ?

    2. Comment peut-on afficher l’en-tête de la réponse à cette requête serveur.

  3. La variable page doit contenir le contenu de la page web retournée par le serveur. On donne ci-dessous une fonction qui écrit dans un fichier le contenu d’une variable.

    image
    1. Recopier cette fonction sur votre feuille de programmes.

    2. Créer le fichier ma_page.html avec le contenu de la variable page puis vérifier qu’elle s’affiche correctement dans un navigateur.

  4. Effectuer une requête GET en passant en paramètre le mot internet. Afficher le code d’état de la réponse HTTP.

    1. Enregistrer dans la variable page le contenu de la réponse du serveur.

    2. Afficher dans le navigateur le contenu de la variable page.

  5. On peut affiner la recherche sur le site en utilisant plus de paramètres. Les paramètres disponibles sont :

    • s pour la recherche d’un mot

    • fwp_themes pour le domaine de recherche

    • fwp_type pour le type de ressource recherchée

    • fwp_sort pour l’ordre chronologique d’affichage (date_desc ou date_asc)

    Les valeurs des paramètres sont prédéfinies par le site.

    Pour ajouter plusieurs paramètres dans une requête en python, on peut les inclure dans l’url ou alors utiliser une variable p qui contient les paramètre et les valeurs. Dans ce cas, on utilise un dictionnaire qui se note entre accolades : { 'paramètre 1':'valeur', 'parametre 2': 'valeur', 'parametre 3': 'valeur'}.

    La variable qui contient les paramètres sera placée dans l’appel de la requête, juste après l’url du site, séparé par une virgule : rep=requests.get('url du site',params = p)

    On va effectuer une recherche approfondie sur le mot internet, sur le thème algorithmes et comme des articles et rangés par ordre chronologique décroissant.

    1. Effectuer cette recherche sur le site puis relever le nombre de résultats et la date du premier article affiché.

    2. Effectuer la même requete en Python puis enregistrer le contenu de la réponse dans le fichier ma_page.html

    3. Afficher dans un navigateur ma_page.html puis comparer avec la recherche faite sur le site.

Exercice 5#

Le site www.httpbin.org permet de réaliser une requête avec la méthode POST grace à un formulaire. On va observer l’envoi des données par ce formulaire et réaliser le même envoi en Python.

  1. Compléter le formulaire puis le soumettre avec le bouton placé en bas de page.

  2. Quelle est l’url d’envoi de ce formulaire ? Est-elle modifiée ?

  3. Relever le nom des différents paramètres utilisé pour l’envoi de ce formulaire.

  4. En python, créer une variable p contenant les paramètres du formulaire et leurs valeurs.

  5. Créer votre requête avec la méthode POST et enregistrer le résultat dans la variable rep.

  6. Quel est le type de contenu renvoyé par le serveur. Quelle commande Python permet de le savoir.

  7. Créer un fichier contenant le résultat de la requête puis l’afficher dans le navigateur.