Web and HTTP - PowerPoint PPT Presentation

About This Presentation
Title:

Web and HTTP

Description:

C'est la m thode la plus courante pour demander une ressource. ... HEAD BODY CENTER H1 La date courante sur le serveur est /H1 $tmp /CENTER ... – PowerPoint PPT presentation

Number of Views:260
Avg rating:3.0/5.0
Slides: 66
Provided by: JimKurosea243
Category:
Tags: http | courante | web

less

Transcript and Presenter's Notes

Title: Web and HTTP


1
Web and HTTP
  • First some jargon
  • Web page consists of objects
  • Object can be HTML file, JPEG image, Java applet,
    audio file,
  • Web page consists of base HTML-file which
    includes several referenced objects
  • Each object is addressable by a URL
  • Example URL

2
HTTP, Php
  • (compléments)

3
HTTP overview
  • HTTP hypertext transfer protocol
  • Webs application layer protocol
  • client/server model
  • client browser that requests, receives,
    displays Web objects
  • server Web server sends objects in response to
    requests
  • HTTP 1.0 RFC 1945
  • HTTP 1.1 RFC 2068

HTTP request
PC running Explorer
HTTP response
HTTP request
Server running Apache Web server
HTTP response
Mac running Navigator
4
HTTP overview (continued)
  • HTTP is stateless
  • server maintains no information about past client
    requests
  • Uses TCP
  • client initiates TCP connection (creates socket)
    to server, port 80
  • server accepts TCP connection from client
  • HTTP messages (application-layer protocol
    messages) exchanged between browser (HTTP client)
    and Web server (HTTP server)
  • TCP connection closed

aside
  • Protocols that maintain state are complex!
  • past history (state) must be maintained
  • if server/client crashes, their views of state
    may be inconsistent, must be reconciled

5
HTTP connections
  • Nonpersistent HTTP
  • At most one object is sent over a TCP connection.
  • HTTP/1.0 uses nonpersistent HTTP
  • Persistent HTTP
  • Multiple objects can be sent over single TCP
    connection between client and server.
  • HTTP/1.1 uses persistent connections in default
    mode

6
Nonpersistent HTTP
(contains text, references to 10 jpeg images)
  • Suppose user enters URL www.someSchool.edu/someDep
    artment/home.index
  • 1a. HTTP client initiates TCP connection to HTTP
    server (process) at www.someSchool.edu on port 80

1b. HTTP server at host www.someSchool.edu
waiting for TCP connection at port 80. accepts
connection, notifying client
2. HTTP client sends HTTP request message
(containing URL) into TCP connection socket.
Message indicates that client wants object
someDepartment/home.index
3. HTTP server receives request message, forms
response message containing requested object, and
sends message into its socket
time
7
Nonpersistent HTTP (cont.)
4. HTTP server closes TCP connection.
  • 5. HTTP client receives response message
    containing html file, displays html. Parsing
    html file, finds 10 referenced jpeg objects

time
6. Steps 1-5 repeated for each of 10 jpeg objects
8
Response time modeling
  • Definition of RRT time to send a small packet to
    travel from client to server and back.
  • Response time
  • one RTT to initiate TCP connection
  • one RTT for HTTP request and first few bytes of
    HTTP response to return
  • file transmission time
  • total 2RTTtransmit time

9
Persistent HTTP
  • Persistent without pipelining
  • client issues new request only when previous
    response has been received
  • one RTT for each referenced object
  • Persistent with pipelining
  • default in HTTP/1.1
  • client sends requests as soon as it encounters a
    referenced object
  • as little as one RTT for all the referenced
    objects
  • Nonpersistent HTTP issues
  • requires 2 RTTs per object
  • OS overhead for each TCP connection
  • browsers often open parallel TCP connections to
    fetch referenced objects
  • Persistent HTTP
  • server leaves connection open after sending
    response
  • subsequent HTTP messages between same
    client/server sent over open connection

10
HTTP request message
  • two types of HTTP messages request, response
  • HTTP request message
  • ASCII (human-readable format)

request line (GET, POST, HEAD commands)
GET /somedir/page.html HTTP/1.1 Host
www.someschool.edu User-agent
Mozilla/4.0 Connection close Accept-languagefr
(extra carriage return, line feed)
header lines
Carriage return, line feed indicates end of
message
11
HTTP request message general format
12
Uploading form input
  • Post method
  • Web page often includes form input
  • Input is uploaded to server in entity body
  • URL method
  • Uses GET method
  • Input is uploaded in URL field of request line

www.somesite.com/animalsearch?monkeysbanana
13
Method types
  • HTTP/1.0
  • GET
  • POST
  • HEAD
  • asks server to leave requested object out of
    response
  • HTTP/1.1
  • GET, POST, HEAD
  • PUT
  • uploads file in entity body to path specified in
    URL field
  • DELETE
  • deletes file specified in the URL field

14
Exemple POST
  • POST /path/script.cgi HTTP/1.0
  • From frog_at_jmarshall.com
  • User-Agent HTTPTool/1.0
  • Content-Type application/x-www-form-urlencoded
  • Content-Length 32
  • homeCosbyfavoriteflavorflies

15
POST
  • dans une requête POST il n'y a pas qu'un entête
    les données sont dans le corps du message
  • les données définissent des variables qui seront
    utilisées par le CGI
  • l'url requise est normalement un programme
  • la réponse HTTP est normalement la sortie d'un
    programme

16
HTTP response message
status line (protocol status code status phrase)
HTTP/1.1 200 OK Connection close Date Thu, 06
Aug 1998 120015 GMT Server Apache/1.3.0
(Unix) Last-Modified Mon, 22 Jun 1998 ...
Content-Length 6821 Content-Type text/html
data data data data data ...
header lines
data, e.g., requested HTML file
17
HTTP response status codes
In first line in server-gtclient response
message. A few sample codes
  • 200 OK
  • request succeeded, requested object later in this
    message
  • 301 Moved Permanently
  • requested object moved, new location specified
    later in this message (Location)
  • 400 Bad Request
  • request message not understood by server
  • 404 Not Found
  • requested document not found on this server
  • 505 HTTP Version Not Supported

18
Trying out HTTP (client side) for yourself
  • 1. Telnet to your favorite Web server

Opens TCP connection to port 80 (default HTTP
server port) at cis.poly.edu. Anything typed in
sent to port 80 at cis.poly.edu
telnet cis.poly.edu 80
2. Type in a GET HTTP request
By typing this in (hit carriage return twice),
you send this minimal (but complete) GET request
to HTTP server
GET /ross/ HTTP/1.1 Host cis.poly.edu
3. Look at response message sent by HTTP server!
19
Méthodes http
  • GET
  • C'est la méthode la plus courante pour demander
    une ressource. Une requête GET est sans effet sur
    la ressource, il doit être possible de répéter la
    requête sans effet.
  • HEAD
  • Cette méthode ne demande que des informations sur
    la ressource, sans demander la ressource
    elle-même.
  • POST
  • Cette méthode doit être utilisée lorsqu'une
    requête modifie la ressource.
  • OPTIONS
  • Cette méthode permet d'obtenir les options de
    communication d'une ressource ou du serveur en
    général.
  • CONNECT
  • Cette méthode permet d'utiliser un proxy comme un
    tunnel de communication.
  • TRACE
  • Cette méthode demande au serveur de retourner ce
    qu'il a reçu, dans le but de tester et effectuer
    un diagnostic sur la connexion.
  • PUT
  • Cette méthode permet d'ajouter une ressource sur
    le serveur.
  • DELETE
  • Cette méthode permet de supprimer une ressource
    du serveur.

20
entêtes
  • Host
  • Permet de préciser le site Web concerné par la
    requête, ce qui est nécessaire pour un serveur
    hébergeant plusieurs sites à la même adresse IP
    (name based virtual host, hôte virtuel basé sur
    le nom). (Obligatoire)
  • Referer
  • Indique l'URI du document qui a donné un lien sur
    la ressource demandée. Cet en-tête permet aux
    webmasters d'observer d'où viennent les
    visiteurs.
  • User-Agent
  • Indique le logiciel utilisé pour se connecter. Il
    s'agit généralement d'un navigateur Web ou d'un
    robot d'indexation.
  • Connection
  • connection persistante ou non
  • Accept
  • Cet en-tête liste les types MIME de contenu
    acceptés par le client. Le caractère étoile
    peut servir à spécifier tous les types /
    sous-types.
  • Accept-Charset
  • Spécifie les encodages de caractères acceptés.
  • Accept-Language
  • Spécifie les langages acceptés.

21
Réponses
  • Date
  • Moment auquel le message est généré.
  • Server
  • Indique quel modèle de serveur HTTP répond à la
    requête.
  • Content-Length
  • Indique la taille en octets de la ressource.
  • Content-Type
  • Indique le type MIME de la ressource.
  • Expires
  • Indique le moment après lequel la ressource
    devrait être considérée obsolète permet aux
    navigateurs Web de déterminer jusqu'à quand
    garder la ressource en mémoire cache.
  • Last-Modified
  • Indique la date de dernière modification de la
    ressource demandée.

22
Lets look at HTTP in action
  • telnet example
  • Ethereal example

23
CGI
  • Common Gateway Interface
  • exécuter du code du côté serveur
  • Passage de paramètre par la méthode POST ou la
    méthode GET
  • Variables d'environnement

24
Exemple
  • en shell date.cgi
  • !/bin/sh
  • tmp/bin/date
  • cat ltlt ! Content-type text/html
    ltHTMLgtltHEADgtltTITLEgtScript Cgilt/TITLEgtlt/HEADgt
    ltBODYgt ltCENTERgt ltH1gtLa date courante sur le
    serveur estlt/H1gt tmp lt/CENTERgt lt/BODYgt lt/HTMLgt
  • !
  • l'URL affichera la date

25
Avec un formulaire
  • ltHTMLgtltHEADgtltTITLEgtFormulaire simplelt/TITLEgtlt/HEAD
    gt
  • ltBODYgt
  • ltH2gtRépondez aux questions suivanteslt/H2gt
  • ltFORM ACTION"http//www.monsite.com/cgi-bin/treat
    .pl" METHODGETgt
  • Prénom ltINPUT TYPE"text" NAMEprenom
    SIZE20gtltBRgt
  • Nom ltINPUT TYPE"text" NAMEnom SIZE20gtltBRgt
  • Age ltSELECT NAMEagegt
  • ltOPTIONgt- de 18 ans
  • ltOPTIONgt19 à 40 ans
  • ltOPTIONgt41 à 60 ans
  • ltOPTIONgt de 60 ans
  • lt/SELECTgtltBRgt
  • ltINPUT TYPEsubmit VALUE"Envoyer"gt ltINPUT
    TYPEreset VALUE"Remettre
  • à zéro"gt
  • lt/FORMgt
  • lt/BODYgt

26
Résultat
  • par la méthode get codage des paramètres
  • prenomHuguesnomFauconnierage41E060ans
  • le navigateur génère l'url
  • http//www.monsite.com/cgi-bin/treat.pl?prenomHug
    uesnomFauconnierage41E060ans
  • Avec la méthode POST
  • http//www.monsite.com/cgi-bin/treat.pl
  • prenomHuguesnomFauconnierage41

27
Traitement en perl
  • fichier perl

28
Paramètres
  • Les paramètres sont accessibles par
    l'intermédiaire de la variable d'environnement
    QUERY_STRING

29
Variables d'environnement
  • SERVER_SOFTWARE
  • Le nom et la version du serveur HTTP répondant à
    la requête. (Format nom/version)
  • SERVER_NAME
  • Le nom d'hôte, alias DNS ou adresse IP du
    serveur.
  • GATEWAY_INTERFACE
  • La révision de la spécification CGI que le
    serveur utilise. (Format CGI/révision)

30
Variables
  • SERVER_PROTOCOL
  • Le nom et la révision du protocole dans lequel la
    requête a été faite (Format protocole/révision)
  • SERVER_PORT
  • Le numéro de port sur lequel la requête a été
    envoyée.
  • REQUEST_METHOD
  • La méthode utilisée pour faire la requête. Pour
    HTTP, elle contient généralement GET ou
    POST .
  • PATH_INFO
  • Le chemin supplémentaire du script tel que donné
    par le client. Par exemple, si le serveur héberge
    le script /cgi-bin/monscript.cgi et que le
    client demande l'url http//serveur.org/cgi-bin/
    monscript.cgi/marecherche , alors PATH_INFO
    contiendra marecherche .
  • PATH_TRANSLATED
  • Contient le chemin demandé par le client après
    que les conversions virtuel ? physique aient été
    faites par le serveur.

31
Variables
  • SCRIPT_NAME
  • Le chemin virtuel vers le script étant exécuté.
    Exemple /cgi-bin/script.cgi
  • QUERY_STRING
  • Contient tout ce qui suit le ? dans l'URL
    envoyée par le client. Toutes les variables
    provenant d'un formulaire envoyé avec la méthode
    GET sera contenue dans le QUERY_STRING sous
    la forme var1val1var2val2... .
  • REMOTE_HOST
  • Le nom d'hôte du client. Si le serveur ne possède
    pas cette information (par exemple, lorsque la
    résolution DNS inverse est désactivée),
    REMOTE_HOST sera vide.
  • REMOTE_ADDR
  • L'adresse IP du client.
  • AUTH_TYPE
  • Le type d'identification utilisé pour protéger le
    script (sil est protégé et si le serveur
    supporte l'identification).

32
Variables
  • AUTH_TYPE
  • Le type d'identification utilisé pour protéger le
    script (sil est protégé et si le serveur
    supporte l'identification).
  • REMOTE_USER
  • Le nom d'utilisateur du client, si le script est
    protégé et si le serveur supporte
    l'identification.
  • REMOTE_IDENT
  • Nom d'utilisateur (distant) du client faisant la
    requête. Le serveur doit supporter
    l'identification RFC 931. Cette variable
    devraient être utilisée à des fins de journaux
    seulement.
  • CONTENT_TYPE
  • Le type de contenu attaché à la requête, si des
    données sont attachées (comme lorsqu'un
    formulaire est envoyé avec la méthode POST ).
  • CONTENT_LENGTH
  • La longueur du contenu envoyé par le client.

33
Variables
  • HTTP_ACCEPT
  • Les types de données MIME que le client accepte
    de recevoir.
  • Exemple  text/, image/jpeg, image/png, image/,
    /
  • HTTP_ACCEPT_LANGUAGE
  • Les langages dans lequel le client accepte de
    recevoir la réponse.
  • Exemple  fr_CA, fr
  • HTTP_USER_AGENT
  • Le navigateur utilisé par le client.
  • Exemple  Mozilla/5.0 (compatible Konqueror/3
    Linux)

34
User-server state cookies
  • Many major Web sites use cookies
  • Four components
  • 1) cookie header line of HTTP response message
  • 2) cookie header line in HTTP request message
  • 3) cookie file kept on users host, managed by
    users browser
  • 4) back-end database at Web site
  • Example
  • Susan access Internet always from same PC
  • She visits a specific e-commerce site for first
    time
  • When initial HTTP requests arrives at site, site
    creates a unique ID and creates an entry in
    backend database for ID

35
Cookies keeping state (cont.)
server creates ID 1678 for user
entry in backend database
access
access
one week later
36
Cookies (continued)
aside
  • Cookies and privacy
  • cookies permit sites to learn a lot about you
  • you may supply name and e-mail to sites
  • search engines use redirection cookies to
    learn yet more
  • advertising companies obtain info across sites
  • What cookies can bring
  • authorization
  • shopping carts
  • recommendations
  • user session state (Web e-mail)

37
Web caches (proxy server)
Goal satisfy client request without involving
origin server
  • user sets browser Web accesses via cache
  • browser sends all HTTP requests to cache
  • object in cache cache returns object
  • else cache requests object from origin server,
    then returns object to client

origin server
Proxy server
HTTP request
HTTP request
client
HTTP response
HTTP response
HTTP request
HTTP response
client
origin server
38
More about Web caching
  • Cache acts as both client and server
  • Typically cache is installed by ISP (university,
    company, residential ISP)
  • Why Web caching?
  • Reduce response time for client request.
  • Reduce traffic on an institutions access link.
  • Internet dense with caches enables poor content
    providers to effectively deliver content (but so
    does P2P file sharing)

39
Caching example
origin servers
  • Assumptions
  • average object size 100,000 bits
  • avg. request rate from institutions browsers to
    origin servers 15/sec
  • delay from institutional router to any origin
    server and back to router 2 sec
  • Consequences
  • utilization on LAN 15
  • utilization on access link 100
  • total delay Internet delay access delay
    LAN delay
  • 2 sec minutes milliseconds

public Internet
1.5 Mbps access link
institutional network
10 Mbps LAN
institutional cache
40
Caching example (cont)
origin servers
  • Possible solution
  • increase bandwidth of access link to, say, 10
    Mbps
  • Consequences
  • utilization on LAN 15
  • utilization on access link 15
  • Total delay Internet delay access delay
    LAN delay
  • 2 sec msecs msecs
  • often a costly upgrade

public Internet
10 Mbps access link
institutional network
10 Mbps LAN
institutional cache
41
Caching example (cont)
origin servers
  • Install cache
  • suppose hit rate is .4
  • Consequence
  • 40 requests will be satisfied almost immediately
  • 60 requests satisfied by origin server
  • utilization of access link reduced to 60,
    resulting in negligible delays (say 10 msec)
  • total avg delay Internet delay access delay
    LAN delay .6(2.01) secs milliseconds lt
    1.4 secs

public Internet
1.5 Mbps access link
institutional network
10 Mbps LAN
institutional cache
42
Conditional GET
server
cache
  • Goal dont send object if cache has up-to-date
    cached version
  • cache specify date of cached copy in HTTP
    request
  • If-modified-since ltdategt
  • server response contains no object if cached
    copy is up-to-date
  • HTTP/1.0 304 Not Modified

HTTP request msg If-modified-since ltdategt
object not modified
HTTP request msg If-modified-since ltdategt
object modified
HTTP response HTTP/1.0 200 OK ltdatagt
43
Compléments Javascript
  • Code qui s'exécute du côté du client
  • calcul local
  • contrôle d'une zone de saisie
  • affichage d'alerte
  • fenêtres menus etc..
  • Balise
  • ltSCRIPT languge"JavaScript1.2"gt
  • le code...
  • lt/SCRIPTgt

44
Exemple bonjour
  • ltHTMLgtltHEADgt
  • ltTITLEgtTrès facilelt/TITLEgt
  • lt/HEADgt
  • ltSCRIPT language"JavaScript1.2"gt
  • function bonjour()
  • alert ("Bonjour madame, bonjour monsieur")
  • lt/SCRIPTgt
  • ltBODY bgcolor"WHITE" onLoad"bonjour()"gt
  • ltH1gtBonjourlt/H1gt
  • lt/BODYgtlt/HTMLgt

45
Un peu plus minicalcul
  • HTMLgt
  • ltHEADgt
  • ltTITLEgtPetit calcullt/TITLEgt
  • lt/HEADgt
  • ltBODY bgcolor'WHITE'gt
  • ltscript language'JavaScript1.2'
    src'calcul.js'gtlt/scriptgt
  • ltscript language'JavaScript1.2'
    src'fenetre.js'gtlt/scriptgt
  • ltscript language'JavaScript1.2'
    src'ctrl.js'gtlt/scriptgt
  • ltCENTERgtltH1gtCalcullt/H1gtlt/CENTERgt
  • Un petit exemple de formulaire.
  • ltPgt
  • Création d'une
  • ltA href'A' onClick'afficheDoc()'gtfenêtre avec
    JavaScriptlt/Agt

46
Suite
  • ltFORM ACTION'Simul.html' METHOD'POST'
    NAME'Simul'gt
  • ltCENTERgt
  • ltTABLE BORDER3gt
  • ltTRgtltTDgtArgument 1
  • ltTDgt ltINPUT TYPE'TEXT' SIZE20 NAME'arg1'
    onChange'calcul()'gtlt/TRgt
  • ltTRgtltTDgt Argument 2
  • ltTDgt ltINPUT TYPE'TEXT' SIZE20
  • NAME'arg2' onChange'calcul()'gt
  • lt/TRgt
  • ltTRgtltTDgtRésultat
  • ltTDgt ltINPUT TYPE'TEXT' SIZE20
  • NAME'res' gt
  • lt/TRgt
  • lt/TABLEgt
  • ltINPUT TYPE'BUTTON' VALUE'Vérifier'
    onClick'ctrl()'gt
  • ltINPUT TYPE'RESET' VALUE'Effacer tout'
  • onClick' if (!confirm("Vraiment vous
    voulez effacer ?")) exit'gt

47
Fichiers js
  • ctrl.js calcul
  • function ctrl()
  • if (isNaN(window.document.Simul.res.value ))
  • alert ("Valeur incorrecte "
  • document.Simul.res.value "?")
  • document.forms0.res.focus()
  • function calcul()
  • v1document.forms0.arg1.value
  • v2document.forms0.arg2.value
  • document.forms0.res.value v2v1

48
suite et fin
  • fenetre.js
  • function afficheDoc()
  • options "width300,height200"
  • fenetre window.open('','MU',options)
  • fenetre.document.open()
  • manuel "ltHTMLgtltHEADgtltTITLEgtDocumentationlt/TITL
    Egtlt/HEADgt"
  • "ltBODY bgcolor'white'gt"
  • "Il n'y a pas besoin d'aide "
  • " c'est facile."
  • " Bonne chance !lt/BODYgtlt/HTMLgt"
  • fenetre.document.write(manuel)
  • fenetre.document.close()

49
Compléments php
  • php est un langage de script pour les serveurs
    webs
  • de nombreuses fonctions permettent de traiter les
    requêtes http
  • ici on est du côté du serveur

50
Exemple simple
  • ltHTMLgt ltHEADgt
  • ltTITLEgtExemple très simplelt/TITLEgt
  • lt/HEADgt
  • ltBODYgt
  • ltH1gtExemplelt/H1gt
  • le lt?php echo Date ("j/m/Y à His") ?gt
  • ltPgt
  • lt?php
  • echo "Client " . _SERVER'HTTP_USER_AGENT'
    . "ltBRgt"
  • echo "Adresse IP client"._SERVER'REMOTE_ADDR'
    ."ltBRgt"
  • echo "Server " . _SERVER'SERVER_NAME'
  • ?gt
  • lt/BODYgtlt/HTMLgt

51
Résultat
  • Exemple
  • le 8/11/2006 à 155429 Client Mozilla/4.0
    (compatible MSIE 7.0 Windows NT 5.1 .NET CLR
    1.1.4322 InfoPath.1)
  • Adresse IP client127.0.0.1Server localhost

52
Reçu par le client
  • ltHTMLgt ltHEADgt
  • ltTITLEgtExemple très simplelt/TITLEgt
  • lt/HEADgt
  • ltBODYgt
  • ltH1gtExemplelt/H1gt
  • le 8/11/2006 à 155429
  • ltPgt
  • Client Mozilla/4.0 (compatible MSIE 7.0
    Windows NT 5.1 .NET CLR 1.1.4322
    InfoPath.1)ltBRgtAdresse IP client127.0.0.1ltBRgtServ
    er localhost
  • lt/BODYgtlt/HTMLgt

53
Php
  • On est ici côté serveur
  • les balises lt?phpgt lt?gt sont interprétées par le
    serveur (apache par exemple) et servent à générer
    la page html reçu par le client
  • Mais surtout php permet
  • d'accéder aux variables d'environnement
  • d'utiliser de nombreuses fonctionsalités
  • sessions, paramètres etc.
  • Php sert souvent d'interface pour MySql serveur
    simple de bases de données

54
Php
  • pas de typage ni de déclaration des variables
  • v est remplacé par la valeur de v (et permet
    aussi l'affectation)
  • echo "v"
  • constantes define("PI, 3.1415)
  • types des variables
  • numériques
  • i1
  • v3.14
  • chaînes de caractères (expressions régulières)
  • nom"Hugues"
  • ',",

55
php
  • tableaux
  • indicés
  • tab0"un"
  • tabarray("un","deux","trois")
  • associatifs
  • marray("un"gt"one",
  • "deux"gt"two")
  • m"trois""three"
  • next() prev() key() current
  • do
  • echo "Clékey(m).Valeur current(m)"
  • while(next(mes))
  • foreach(m as cle gtval)
  • echo "Clécle.Valeurval"

56
Php
  • structures de contrôles
  • if
  • if else
  • while
  • do while
  • for
  • foreach
  • break, continue

57
fonctions
  • function Nom(arg1, arg2, ...)
  • corps
  • passage par valeur (et pas références )
  • exemples
  • function Add(i,j)
  • somme i j
  • return somme
  • function Add(i,j,somme)
  • somme i j

58
divers
  • variables
  • automatiques (locales)
  • statiques (comme en C)
  • globales
  • classes et objets

59
Pour le serveur
  • tableaux associatifs prédéfinis
  • _SERVER environnement serveur
  • REQUEST_METHOD
  • QUERY_STRING
  • CONTENT_LENGTH
  • SERVER_NAME
  • PATH_INFO
  • HTTP_USER_AGENT
  • REMOTE_ADDR
  • REMOTE_HOST
  • REMOTE_USER
  • REMOTE_PASSWORD

60
Suite
  • Autres tableaux
  • _ENV environnement système
  • _COOKIE
  • _GET
  • _POST
  • _FILES
  • _REQUEST (variables des 4 précédents
  • _SESSION
  • GLOBALS les variables globales du scritp

61
Cookies et php
  • lt?php
  • // Est-ce que le Cookie existe ?
  • if (isSet(_COOKIE'compteur'))
  • message "Vous êtes déjà venu
    _COOKIE'compteur' fois "
  • . "me rendre visiteltBRgt\n"
  • // On incrémente le compteur
  • valeur _COOKIE'compteur' 1
  • else
  • // Il faut créer le cookie avec la valeur 1
  • message "Bonjour, je vous envoie un
    cookieltBRgt\n"
  • valeur 1
  • // Envoi du cookie
  • SetCookie ("compteur", valeur)
  • ?gt

62
Cookies et php (fin)
  • ltHTMLgtltHEADgt
  • ltTITLEgtLes cookieslt/TITLEgt
  • lt/HEADgt
  • ltBODYgt
  • ltH1gtUn compteur d'accès au site avec cookielt/H1gt
  • lt?php echo message ?gt
  • lt/BODYgtlt/HTMLgt

63
En utilisant les sessions
  • lt?php
  • // La fonction session_start fait tout le
    travail
  • session_start()
  • ?gt
  • ltHTMLgtltHEADgt
  • ltTITLEgtLes cookieslt/TITLEgt
  • lt/HEADgt
  • ltBODYgt
  • ltH1gtUn compteur d'accès au site avec Sessionlt/H1gt

64
Fin
  • lt?php
  • if (!isSet(_SESSION'cp'))
  • _SESSION'cp'1
  • echo "C'est la première fois, votre id
    est".session_id()."ltBRgt"
  • else
  • _SESSION'cp'
  • echo "C'est votre "._SESSION'cp'."
    n-ième connexion"
  • if(_SESSION'cp'gt10)
  • echo "on vous a trop vu"."ltBRgt"
  • session_destroy()
  • ?gt
  • lt/BODYgtlt/HTMLgt

65
session
  • session_start()
  • session_destroy()
  • session_id()
  • on peut associer des variables à la session par
    le tableau associatif _SESSION
  • elle sera accessible à chaque session_start()
    jusqu'au session_destroy() pour toute connexion
    qui fournit le session_id().
Write a Comment
User Comments (0)
About PowerShow.com