\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}
