2022-2023/1NSI/05_Interaction_client-serveur/1B_http.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}