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