104 lines
2.7 KiB
TeX
104 lines
2.7 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
|
||
|
|
||
|
\begin{definition}[requêtes POST]
|
||
|
|
||
|
Les requêtes GET permettent d'envoyer des informations au serveur. Ces informations ne sont pas transmises via l'URL mais dans le corps de la requête. Elles peuvent donc être sécurisées.
|
||
|
|
||
|
\end{definition}
|
||
|
|
||
|
\paragraph{Construction d'une requête POST}
|
||
|
Le \textbf{formulaire} HTML est l'élément qui permet de construire des requêtes POST.
|
||
|
|
||
|
Exemple de formulaire
|
||
|
|
||
|
|
||
|
\begin{minipage}{0.8\linewidth}
|
||
|
\inputminted[bgcolor=base3,linenos]{html}{./scripts/formulaire.html}
|
||
|
\end{minipage}
|
||
|
|
||
|
Ce formulaire enverra le nom (de type texte) et si l'utilisateur est majeur (type booléen) par la méthode POST vers le fichier bonjour. Soit la requête suivante
|
||
|
|
||
|
\begin{center}
|
||
|
\colorbox{highlightbg}{
|
||
|
\begin{minipage}{0.5\linewidth}
|
||
|
GET /bonjour HTTP/2 \\
|
||
|
|
||
|
Host: monsite.fr \\
|
||
|
User-Agent: Mozilla/5.0 ... \\
|
||
|
Accept-Language: fr,fr-FR \\
|
||
|
|
||
|
nom=azert\&majeur=on
|
||
|
\end{minipage}
|
||
|
}
|
||
|
\end{center}
|
||
|
|
||
|
Type de input disponibles:
|
||
|
|
||
|
\afaire{compléter la liste}
|
||
|
|
||
|
\vspace{2cm}
|
||
|
|
||
|
\section{Réponse du serveur}
|
||
|
|
||
|
\begin{definition}[Réponse du serveur]
|
||
|
C'est l'autre type de message que l'on peut s'échanger dans le protocole HTTP.
|
||
|
|
||
|
Il est constitué des éléments suivants :
|
||
|
|
||
|
\begin{multicols}{2}
|
||
|
\begin{itemize}
|
||
|
\item La version du protocole
|
||
|
\item le code d'état (status code)
|
||
|
\item du message d'état
|
||
|
\item d'une entête
|
||
|
\end{itemize}
|
||
|
\end{multicols}
|
||
|
|
||
|
|
||
|
\end{definition}
|
||
|
|
||
|
Exemple d'une réponse
|
||
|
\begin{center}
|
||
|
\colorbox{highlightbg}{
|
||
|
\begin{minipage}{0.5\linewidth}
|
||
|
HTTP/1.1 200 OK \\
|
||
|
|
||
|
Date: Sat, 09 Oct 2010 14:28:02 GMT \\
|
||
|
Server: Apache \\
|
||
|
Last-Modified: Tue, 01 Dec 2009 20:18:22 GMT \\
|
||
|
Content-Type: text/html \\
|
||
|
... \\
|
||
|
|
||
|
<!DOCTYPE html...
|
||
|
|
||
|
\end{minipage}
|
||
|
}
|
||
|
\end{center}
|
||
|
|
||
|
\begin{propriete}[Code status]
|
||
|
Les codes status d'un serveur est un nombre à 3 chiffres auquel on associe une message.
|
||
|
|
||
|
\begin{itemize}
|
||
|
\item Code en 2..: réponse fructueuse (tout s'est bien passée)
|
||
|
\item Code en 3..: la requête a été redirigée
|
||
|
\item Code en 4..: le client a fait une erreur de requête
|
||
|
\item Code en 5..: le serveur est en erreur
|
||
|
\end{itemize}
|
||
|
|
||
|
\end{propriete}
|
||
|
|
||
|
|
||
|
\end{document}
|