89 lines
2.9 KiB
TeX
89 lines
2.9 KiB
TeX
\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}
|