% CVSId: $Id: adulau.tex,v 1.1 2003/02/07 17:51:53 adulau Exp adulau $
%
%
%     Copyright (c)  2001,2002,2003  Alexandre Dulaunoy <adulau@foo.be>
%     Permission is granted to copy, distribute and/or modify this document
%     under the terms of the GNU Free Documentation License, Version 1.2
%     or any later version published by the Free Software Foundation;
%     with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
%     A copy of the license is included in the section entitled "GNU
%     Free Documentation License".
\documentclass[%
pdf,
%nocolorBG,
colorBG,
slideColor,
%slideBW,
%draft,
frames
%azure
%contemporain
%nuancegris
%troispoints
%lignesbleues
%darkblue
%alienglow
%autumn
]{prosper}
\usepackage{amsmath}
\usepackage[T1]{fontenc}
\usepackage{pslatex}
\usepackage[french,english]{babel}
%\usepackage{listings}

\begin{document}
\title{Sécurité en ingénierie du Logiciel}
\subtitle{Le cadre des Web Services \\ {\em Partie 2 : Introduction HTTP}}
\author{Alexandre Dulaunoy}
\email{adulau@foo.be}
\maketitle

\begin{slide}{Agenda}
\begin{itemize}
\item Introduction
\item Fonctionnement HTTP
\item Code de retour
\item Structure des messages HTTP
\item Serveurs
\item HTTP et Services Web
\end{itemize}
\end{slide}

\begin{slide}{Introduction}

HTTP - HyperText Transfert Protocol (RFC1945 / RFC2068)
(Tim Berners-Lee fin 89 - début 90)
\begin{itemize}
\item Protocole de communication client/serveur (utilisant TCP/IP),
\item Simple pour le récupération de documents (GET, HEAD),
\item Simple pour la transmission de données (GET, POST),
\item Standard et largement utilisé,
\item Protocole utilisé par les Web Services,
\item HTTP/1.0 à HTTP/1.1,
\end{itemize} 
\end{slide}

\begin{slide}{Fonctionnement}
\begin{itemize}
\item Connexion du client vers le serveur,
\item Demande d'un document via une méthode GET,
\item Renvoi du document, erreur ou information sur le document,
\item Déconnexion
\end{itemize}
La version HTTP/1.1 permet le KeepAlive (ç-à-d garder la communication maintenue).
HTTP peut être encapsulé dans SSL/TLS.
\end{slide}

\begin{slide}{Code de retour}
\begin{itemize}
\item 1xx : Information
\item 2xx : Succès
\item 3xx : Redirection
\item 4xx : Erreurs (p.ex. 404)
\item 5xx : Erreurs venant du serveur HTTP
\end{itemize}
\end{slide}

\begin{slide}{Méthodes}
\begin{itemize}
\item GET (p.ex. récupération d'un document)
\item GET ou POST (p.ex. soumission d'un formulaire)
\item PUT, DELETE, LINK, UNLINK (p.ex. gestion d'un site -> WebDav)
\item HEAD (p.ex. récupération d'informations sur un document)
\end{itemize}
\end{slide}


\begin{slide}{Structure HTTP - Client}
{\tt\tiny
\begin{verbatim}
GET /img/logos/logo_univ.gif HTTP/1.1
Host: www.mim.univ-metz.fr
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.5b) Gecko/20030827
Accept: image/png,image/jpeg,image/gif;q=0.2,*/*;q=0.1
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://www.mim.univ-metz.fr/
\end{verbatim}
}
\end{slide}

\begin{slide}{Structure HTTP - Serveur}
{\tt\tiny
\begin{verbatim}
HTTP/1.0 200 OK
Date: Thu, 02 Oct 2003 21:29:36 GMT
Server: Apache-AdvancedExtranetServer/1.3.22 (Mandrake Linux/10.1mdk) mod_perl/1.26
Last-Modified: Tue, 11 Mar 2003 13:55:05 GMT
ETag: "48ca-3d0-3e6deab9"
Accept-Ranges: bytes
Content-Length: 976
Content-Type: image/gif

GIF89a....
\end{verbatim}
}
\end{slide}

\begin{slide}{Structure HTTP}
\begin{itemize}
\item POST avec upload de fichiers (Multipart) RFC1867,
\item Plusieurs parties dans la requête,
\item Le serveur peut répondre en multipart,
\item Type mime.
\end{itemize}
\end{slide}

\begin{slide}{Serveurs HTTP}
\begin{itemize}
\item NCSA HTTP Serveur (mort), 
\item Apache (A Patchy Server sur NCSA),
\item Jetty (Java),
\item IIS (WIN32),
\item Sun ONE HTTP Server,
\item ...
\end{itemize}
\end{slide}

\begin{slide}{HTTP et Services Web}
HTTP est le transport de prédilection pour les services Web.
{\tt\tiny
\begin{verbatim}
POST /StockQuote HTTP/1.1
Host: www.stockquoteserver.com
Content-Type: text/xml; charset="utf-8"
Content-Length: nnnn
SOAPAction: "Some-URI"

<SOAP-ENV:Envelope
  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
  SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
   <SOAP-ENV:Body>
       <m:GetLastTradePrice xmlns:m="Some-URI">
           <symbol>DIS</symbol>
       </m:GetLastTradePrice>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
\end{verbatim}
}

\end{slide}

\begin{slide}{Q\&R}
\begin{itemize}
\item adulau@foo.be
\item http://www.foo.be/cours/securite-webservices/
\item 3B12 DCC2 82FA 2931 2F5B  709A 09E2 CD49 44E6 CBCD
\end{itemize}
\end{slide}

\end{document}

%%% Local Variables: 
%%% mode: latex
%%% TeX-master: t%%% End: 
