Cours Web : Introduction Catherine Letondal letondal@pasteur.fr Institut Pasteur Cours Web IEB 2005 p.1/??
Pourquoi un cours Web? le Web : c est stratégique en biologie c est un bon exemple de système informatique complexe c est facile de faire n importe quoi c est difficile de faire le tri Cours Web IEB 2005 p.2/??
Structure du cours Web comment ça marche? comment créer des documents? comment créer des applications interactives? comment créer des applications scriptables? comment créer un (petit) site correctement? Cours Web IEB 2005 p.3/??
Le Web, c est quoi pour vous...? Cours Web IEB 2005 p.4/??
Un système réparti hypertexte c est le H de Http Html... un texte non-lineaire : en fait un réseau de textes reliés par des liens Cours Web IEB 2005 p.5/??
Un système réparti hypertexte les documents sont n importe où sur l Internet Cours Web IEB 2005 p.6/??
Un système réparti hypertexte les documents sont n importe où sur l Internet les documents ont une adresse unique dans l Internet (un espace de nommage géant) Cours Web IEB 2005 p.6/??
Un client hypertexte interactif affichage graphique (multi-media) Cours Web IEB 2005 p.7/??
Un client hypertexte interactif navigation interactive... : pour la navigation d un document à l autre on n a pas toujours besoin de savoir où ils sont Cours Web IEB 2005 p.7/??
Architecture client serveur Cours Web IEB 2005 p.8/??
3 langages pour refaire le monde... un langage pour adresser des documents (url) Cours Web IEB 2005 p.9/??
3 langages pour refaire le monde... un langage pour adresser des documents (url) un langage pour communiquer entre client et serveur (un protocole) (http) Cours Web IEB 2005 p.9/??
3 langages pour refaire le monde... un langage pour adresser des documents (url) un langage pour communiquer entre client et serveur (un protocole) (http) un langage pour décrire la structure et la forme des documents, et pour relier des documents entre eux (html) Cours Web IEB 2005 p.9/??
Adresser des documents protocol name resource path http://www.someserver.com:80/directory_1/directory_2/somedocument.html domain name port number document name Cours Web IEB 2005 p.10/??
Adresser des documents http://www.someserver.com:80/directory_1/my_app.py?arg1=value1&arg2=value2 application et parametres Cours Web IEB 2005 p.10/??
Communiquer entre client et serveur CLIENT SERVEUR connexion requete reponse temps temps Cours Web IEB 2005 p.11/??
Connexion telnet giacomo.sis.pasteur.fr http Trying 157.99.60.66... Connected to giacomo.sis.pasteur.fr. Escape character is ˆ]. Cours Web IEB 2005 p.12/??
Communiquer entre client et serveur GET Cours Web IEB 2005 p.13/??
GET : requête GET /IEB/page1.html HTTP/1.0 Cours Web IEB 2005 p.14/??
GET : réponse (1) HTTP/1.1 200 OK Date: Tue, 01 Mar 2005 09:00:24 GMT Server: Apache/1.3.33 (Darwin) Last-Modified: Mon, 28 Feb 2005 19:05:07 ETag: "14365f-8d-42236b63" Accept-Ranges: bytes Content-Length: 141 Connection: close Content-Type: text/html Cours Web IEB 2005 p.15/??
GET : réponse (2) <html> <head> <title>a sample Web page</title> </head> <body> <h1>a first header</h1> And some text... </body> </html> Cours Web IEB 2005 p.16/??
Fin connexion Connection closed by foreign host. Cours Web IEB 2005 p.17/??
Transaction complète Connexion Requête client : Method Uri HTTP-Version Headers Body Réponse serveur : HTTP-Version Status-code Reason-phrase Headers Body Déconnexion Cours Web IEB 2005 p.18/??
GET : erreurs GET /IEB/page3.html HTTP/1.0 HTTP/1.1 404 Not Found Date: Tue, 01 Mar 2005 09:15:54 GMT Server: Apache/1.3.33 (Darwin) Connection: close Content-Type: text/html; charset=iso-885 Cours Web IEB 2005 p.19/??
GET : erreurs (suite) <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML <HTML><HEAD> <TITLE>404 Not Found</TITLE> </HEAD><BODY> <H1>Not Found</H1> The requested URL /IEB/page3.html was no <HR> <ADDRESS>Apache/1.3.33 Server at giacomo </BODY></HTML> Cours Web IEB 2005 p.20/??
GET : requêtes dynamiques GET /cgi-bin/get_hel.py?id=np_0010 HTTP/ Cours Web IEB 2005 p.21/??
GET : requêtes dynamiques (suite) <html>... <pre> MASIPALTDELESVSSELHA VDIQIQELTERQHELLQRKS VLTKRIKQCLEDSAAEASGD CDTSPAAWSKEDFPWSGK... </pre> </html> Cours Web IEB 2005 p.22/??
GET : en-têtes (1) GET /IEB/page1.html HTTP/1.0 Connection: Keep-Alive... GET /IEB/page3.html HTTP/1.0... Connection closed by foreign host. Cours Web IEB 2005 p.23/??
GET : en-têtes (2) GET /IEB/page1.html HTTP/1.0 Referer: http://www.pasteur.fr/ieb.html User-Agent: Firefox/1.0 If-Modified-Since: Mon, 28 Feb 2005 19:0 Cookie:... Cours Web IEB 2005 p.24/??
Communiquer entre client et serveur GET POST Cours Web IEB 2005 p.25/??
POST : requêtes dynamiques POST /cgi-bin/get_helicase.py HTTP/1.0 Content-type: application/x-www-form-urlencoded Content-length: 22 prot_id=np_001012098.1 Cours Web IEB 2005 p.26/??
Communiquer entre client et serveur GET POST HEAD Cours Web IEB 2005 p.27/??
HEAD HEAD /IEB/page1.html HTTP/1.0 HTTP/1.1 200 OK Date: Tue, 01 Mar 2005 17:07:45 GMT Server: Apache/1.3.33 (Darwin) Last-Modified: Mon, 28 Feb 2005 19:05:07 ETag: "14365f-8d-42236b63" Content-Length: 141 Content-Type: text/html Connection closed by foreign host. Cours Web IEB 2005 p.28/??
Dans l âme du client... import httplib connexion = httplib.http(server) connexion.putrequest( GET, /IEB/page1.html ) connexion.putheader(...) connexion.endheaders() stat, msg, head = connexion.getreply() Cours Web IEB 2005 p.29/??
Dans l âme du serveur... from BaseHTTPServer import * class myhandler(basehttprequesthandler): def do_get(self): self.printcustomhttpresponse(200) self.wfile.write("<html>\n") self.wfile.write("<body>\n") self.wfile.write("<p>get string: " + self.path + "</p>" ) self.wfile.write("</body>\n") self.wfile.write("</html>\n") Cours Web IEB 2005 p.30/??
Décrire les documents demain! Cours Web IEB 2005 p.31/??
Structure du cours Web comment ça marche? comment créer des documents? comment créer des applications interactives? comment créer des applications scriptables? comment créer un (petit) site correctement? Cours Web IEB 2005 p.32/??
Ce qu on ne verra pas comment administrer un serveur Web Flash JSP PHP DreamWeaver les CMS... Cours Web IEB 2005 p.33/??