Vous êtes sur la page 1sur 22

Programmation Web

Grme Canals Gerome.canals@univ-nancy2.fr

Introduction
7 semaines 1h cours + 2h Tds puis 4h Tds

1 DS + 1 TP/mini projet + 1 surprise

Objectifs
Comprendre les bases de l'architecture et du dveloppement des applications web Les mettre en oeuvre en utilisant un langage spcialis : PHP

Contenus
Structure des applications web et technologies fondamentales les bases du langage PHP Pattern d'Accs aux donnes Interaction avec un client java Scurisation des changes

Introduction : le Web

Une application web : une application rpartie dont l'infrastructure d'xecution est constitue :
d'un navigateur web pour l'interaction avec l'utilisateur d'un serveur web tendu pour la ralisation des services ventuellement, d'autres serveurs pour la ralisation de services spcialiss : sgbd, annuaire, authentification ...

Architecture Client/Serveur
Les clients (navigateurs) envoient des requtes un serveur Le serveur retourne une rponse le serveur peut lui-mme tre client d'un autre serveur

request response

programmes

serveur
ressources

sgbd

Web clients

Web server

html/css

php/jsp/asp/ruby/python

SQL

Amlioration : service offert par plusieurs serveurs


serveur
programmes

ressources

serveur

serveur

programmes

ressources

sgbd

serveur

programmes

ressources

Web clients Web server

Evolution actuelle :
client riche , requtes asynchrones
Web clients programmes
request response

Web server

data

programmes

programmes

serveur

...

ressources

sgbd

programmes

html/css Javascript Ajax Java + GWT

php/jsp/asp/ ruby/python framework : cake, symphony rails, struts,

SQL XML

Applications web : volution


Au dpart : publication de contenu statique Puis : contenu dynamique

page dynamique, connexion BD

ensuite : services en ligne


interaction avec un systme d'information banque, commerce, rservation

tendance actuelle :
plateforme de dveloppement d'applications : googleDocs ... participation des internautes : rseaux sociaux, web 2.0

Caractristiques des Applications Web


Les services en ligne deviennent un des modes les plus courant de dveloppement d'applications Offrent en gnral au moins 2 vues principales
FrontOffice : interface fonctionnelle BackOffice : interface d'administration

Sont organises autour d'une Base de Donnes stockant :


Les donnes applicatives Des donnes d'administration Des donnes sur le site

Intrts, Inconvnients de la plateforme web


Portabilit de la partie cliente Dploiement des applications facilit accs massif potentiel scurit : 1 seule protocole, port 80

Difficile mettre au point et tester Scurit

Pourquoi a marche ? Les standards du Web


Diffrents logiciels serveur : Apache (62%), IIS (30%) Nombreux logiciel clients : IE, Firefox, Chrome, Safari Opera, Amaya, Konqueror, Camino, lynx .... 97,932,447 sites en octobre 2006 (source Netcraft) Fonctionne grce des technologies standardises

Les technologies de base


Un protocole d'change entre clients et serveurs standardis : HTTP Un mcanisme de nommage uniforme et extensible : URLs Un langage de description des ressources uniforme, standardis et ouvert : HTML RFC : Request For Comment
http://www.rfc-editor.org/ : site original http://abcdrfc.free.fr/ : rfc traduites en franais

Html : www.w3c.org/markUp

Standardis et publi :
Norme dfinie et rendue publique par W3C Les documents HTML peuvent tre valids pour s'assurer de leur conformit la norme : http://validator.w3.org On peut construire un interprte de documents html

HTML est ouvert de nouveaux formats de documents ou donnes

Les URLs : nommage et adressage

URL : mcanisme de dsignation des ressources sur Internet Mcanisme Unique et partag par les diffrentes applications Mcanisme uniforme : dsigne tous types de ressources de manire homogne
Chemin sur le host

<scheme>://<authority><path>?<query>
protocole: http, file Hostname, username paramtres

Exemples :
http://www.w3c.org/MarkUp/xhtml-roadmap/
scheme authority path

http://www.google.com/search?q=proxy
scheme authority path query

http://152.81.144.16/ mailto:canals@loria.fr
scheme authority

ftp://canals@clotaire.iuta.univ-nancy2.fr/

URLs et @IP
Dans les URLs : noms symboliques de machines Le protocole IP : adresses numriques

<id_rseau>.<id_machine>

DNS : Systme gnral de conversion :


Hostname -> @IP de l'hte Domain -> @IP du serveur de mail pour ce domaine

HTTP : Le Protocole d'echange


HyperText Transfer Protocol

HTTP : protocole applicatif Dfini les rgles d'change entre clients et serveurs
Structure, type et contenu des requtes Structure, type et contenu des rponses http/1.0 : RFC 1945 http/1.1 : RFC 2616

server

ressources

Requtes HTTP :
GET method : requte d'accs simple une ressource POST method :requte contenant des donnes fournies par le client, par exemple provenant d'un formlaire

Une requte = 3 parties :


Method + rfrence + protocole Une liste de headers donnant des infos supplmentaires propos de la requte (browser,date, cookies..) Un corps contenant les donnes POST

Rponses HTTP : Status line : protocole + code + phrase


200 OK ; 403 Forbidden ; 404 Not Found; 500 Server Internal Error ; 301 Moved permanently Header:

Infos supplmentaires sur la rponse

Date: Mon, 16 Oct 2000 18:05:22 GMT Server: Apache/1.3.14 (Unix) Last-Modified: Mon, 16 Oct 1999 21:20:33 GMT Content-length: 157 Content-type: text/html

Body:

le contenu de la rponse (texte html)

Requtes & Rponses HTTP


http://www.nytimes.com/pages/world/index.html

tcp connect
www.nytimes.com:80

GET pages/world/index.html HTTP/1.1 User-Agent: Mozilla/4.5

http server

Droot/ pages/ world/ Index.htm l

HTTP/1.1 200 OK Server: Apache/1.3.14 (Unix) Content-length: 157 Content-type: text/html

www.nytimes.com
<html> Hello World ... </html>

Remarques

HTTP est pull based :


Les changes se produisent l'initiative du client Le serveur ne peut pas notifier les clients

HTTP est stateless


Chaque requte est traite indpendamment des autres Pas d'information conserve entre 2 requtes successives

HTTP est un protocole Textuel :


Requtes et rponses sont lisibles

Vous aimerez peut-être aussi