\documentclass[a4paper,10pt]{article} \usepackage{myXsim} \usepackage{minted} \author{Benjamin Bertrand} \title{Interaction client/serveur - Cours} \date{janvier 2023} \pagestyle{empty} \begin{document} \maketitle \section{Protocole HTTP} \begin{definition}[HTTP] \texttt{HTTP} est un protocole qui permet de récupérer des ressources telles que des documents HTML, les feuilles CSS, les images... Il est à la base de tout échange de données sur le Web. C'est un protocole de type client-serveur, ce qui signifie que les \textbf{requêtes} sont initiées par le client (qui est généralement un navigateur web) et attendent une \textbf{réponse} du serveur. \end{definition} \paragraph{Remarques:} pour obtenir une page web complète, il faut la plupart du temps faire plusieurs \textbf{requêtes} HTTP vers plusieurs serveurs. \begin{center} \includegraphics[scale=0.2]{./fig/fetching_a_page} \end{center} \section{Requêtes HTTP} \begin{propriete}[Requête] Une requête est l'un des deux types de message que l'on peut s'échanger dans le protocole HTTP. Elle est constituée des éléments suivants \begin{multicols}{3} \begin{itemize} \item Une méthode \item un chemin \item la version du protocole \item d'une entête \item d'un corps \end{itemize} \end{multicols} \end{propriete} Le protocole HTTP propose différentes méthodes pour faire des requêtes: \begin{definition}[requêtes GET] Les requêtes GET permettent de demander l'accès à des ressources au serveur. \end{definition} \paragraph{Utilisation d'une requête GET} \begin{itemize} \item En tapant \colorbox{highlightbg}{http://monsite.fr/fichier}, le navigateur réalise la requête suivante : \begin{center} \colorbox{highlightbg}{ \begin{minipage}{0.5\linewidth} GET /fichier HTTP/2 \\ \\ Host: monsite.fr \\ User-Agent: Mozilla/5.0 ... \\ Accept-Language: fr,fr-FR \end{minipage} } \end{center} \item Il est possible de passer des paramètres à une requête GET en les ajoutant après un ? dans l'URL. En tapant \colorbox{highlightbg}{http://monsite.fr/fichier?age=12\&nom=bob}, le navigateur réalise la requête suivante : \begin{center} \colorbox{highlightbg}{ \begin{minipage}{0.5\linewidth} GET /fichier?age=12\&name=jkl HTTP/2 \\ \\ Host: monsite.fr \\ User-Agent: Mozilla/5.0 ... \\ Accept-Language: fr,fr-FR \end{minipage} } \end{center} Comme ces paramètres sont écrits directement dans l'URL, il n'est pas conseillé de l'utiliser pour transmettre des informations confidentielles ou nombreuses. \end{itemize} \end{document}