httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From yosh...@apache.org
Subject cvs commit: httpd-docs-1.3/htdocs/manual cgi_path.html.fr cgi_path.html.html cgi_path.html
Date Mon, 28 May 2001 09:12:41 GMT
yoshiki     01/05/28 02:12:41

  Added:       htdocs/manual cgi_path.html.fr cgi_path.html.html
  Removed:     htdocs/manual cgi_path.html
  Log:
  New French translation.
  Submitted by:	Herve Dumont <hdumont@club-internet.fr>
  
  Revision  Changes    Path
  1.1                  httpd-docs-1.3/htdocs/manual/cgi_path.html.fr
  
  Index: cgi_path.html.fr
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
  <!--Traduction anglais 1.7 -->
  <html><head>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  <title>Modification de PATH_INFO dans l'environnement CGI</title>
  </head>
  
  <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
  <BODY
   BGCOLOR="#FFFFFF"
   TEXT="#000000"
   LINK="#0000FF"
   VLINK="#000080"
   ALINK="#FF0000"
  >
  <!--#include virtual="header.html" -->
  <h1 ALIGN="CENTER">Modification de PATH_INFO dans l'environnement CGI </h1>
  
  <hr>
  
  <h2><a name="over">Vue d'ensemble</a></h2>
  
  <p>Telle qu'elle était implémentée dans les versions antérieures à la 
  version 1.1.1 d'Apache (comprise), la méthode utilisée par Apache pour
   créer la variable PATH_INFO dans l'environnement CGI était loin d'être
    intuitive, et pouvait conduire à certaines défaillances dans certains
  	 cas. A partir de la version 1.2 d'Apache, cette méthode a été 
  	 modifiée. Bien que ces modifications puissent conduire à certaines 
  	 incompatibilités avec certaines applications CGI, le comportement
  	 d'Apache 1.2 reste toujours compatible avec la spécification CGI/1.1,
  	  et les scripts CGI restent facilement modifiables (<a
  href="#compat">voir ci-dessous</a>).
  
  <h2><a name="prob">Le Problème</a></h2>
  
  <p>Les versions d'Apache jusqu'à 1.1.1 construisaient les variables 
  d'environnement CGI PATH_INFO et SCRIPT_NAME en inspectant les noms 
  de fichiers, et non les URL. Bien que cette technique conduise à des 
  valeurs correctes dans la plupart des cas, il pouvait arriver que le 
  chemin défini par le système de fichiers soit surchargé par une 
  redéfinition, laquelle conduisait à une mauvaise interprétation lors 
  de la constitution des variables. Par exemple, si la ligne suivante 
  apparaissait dans un fichier de configuration :
  <pre>
       Alias /cgi-ralph /usr/local/httpd/cgi-bin/user.cgi/ralph
  </pre>
  <p>Dans ce cas, <code>user.cgi</code> désigne le script CGI, la chaîne
"/ralph"
  est une information à passer au CGI. Si cette configuration était en 
  place, et qu'une requête vers "<code>/cgi-ralph/script/</code>" était 
  reçue, le code du serveur aurait constitué une variable PATH_INFO de valeur 
  "<code>/ralph/script</code>", et SCRIPT_NAME de valeur "<code>/cgi-</code>".

  Il est évident de constater que la deuxième variable est fausse. Dans
   certains cas, cela aurait même pu conduire à un arrêt du serveur.</p>
  
  <h2><a name="solution">La Solution</a></h2>
  
  <p>Les versions postérieures à 1.2 d'Apache définissent maintenant les 
  variables SCRIPT_NAME et PATH_INFO en inspectant directement l'URL, et 
  en déterminant quelle portion de l'URL est modifiable par le client. 
  PATH_INFO est initialisé à cette partie modifiable. Pour réexploiter 
  l'exemple ci-dessus, PATH_INFO prendrait maintenant la valeur 
  "<code>/script</code>", et SCRIPT_NAME la valeur correcte 
  "<code>/cgi-ralph</code>". Il n'y a plus de problème de comportement du
   serveur dans ce cas. Cela permet en outre de garantir l'accessibilité 
   de l'URL <code>http://$SERVER_NAME:$SERVER_PORT$SCRIPT_NAME$PATH_INFO</code>"
  laquelle pointe sur le script courant. Ce n'était pas nécesairement vrai 
  dans les versions précédentes d'Apache.
  
  <p>Toutefois, l'information "<code>/ralph</code>" de la directive
   <code>Alias</code> est perdue. Nous pensions que l'utilisation du système
    de fichiers pour faire passer ce genre d'information n'était pas une 
  	méthode recommandée, et un script utilisant ce principe était de 
  	toutes façons à éviter. Nous avons ajouté malgré tout à partir de la 
  	version 1.2b3 d'Apache une façon de <a href="#compat">contourner</a> 
  	cette restriction.
  
  <h2><a name="compat">Compatibilité avec des serveurs plus anciens</a></h2>
  
  <p>Il se peut que certains scripts écrits pour des versions antérieures
   d'Apache ou pour d'autres serveurs aient besoin d'exploiter les informations
    données dans l'ancien modèle de variable PATH_INFO. A cet effet,
  	 la version 1.2 d'Apache (1.2b3
  et postérieures) proposent une variable supplémentaire, appelée FILEPATH_INFO.
   Cette nouvelle variable d'environnement contient la valeur qui était 
   précédemment inscrite dans PATH_INFO par la version 1.1.1 d'Apache.</p>
  
  <p>Un script désirant être compatible avec toutes les versions d'Apache
   peut simplement tester l'existence de la variable FILEPATH_INFO, et
    utiliser cette variable si besoin est. Autrement, il récupérera ses 
  	informations dans la variable PATH_INFO. Par exemple, en Perl, on pourra 
  	écrire :
  <pre>
      $path_info = $ENV{'FILEPATH_INFO'} || $ENV{'PATH_INFO'};
  </pre>
  
  <p>Par cette écriture, un script fonctionnera avec tous les serveurs 
  conformes à la spécification CGI/1.1, incluant par là même toutes les 
  versions d'Apache.</p>
  
  <!--#include virtual="footer.html" -->
  </BODY>
  </HTML>
  
  
  
  
  
  1.1                  httpd-docs-1.3/htdocs/manual/cgi_path.html.html
  
  Index: cgi_path.html.html
  ===================================================================
  <!--#include virtual="cgi_path.html.en" -->
  
  
  

Mime
View raw message