<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>php-experts.org - développement php et internet &#187; protocoles</title>
	<atom:link href="http://www.php-experts.org/tag/protocoles/feed" rel="self" type="application/rss+xml" />
	<link>http://www.php-experts.org</link>
	<description>Ressources sur le développement internet, PHP/MySQL, Ajax, marketing online, référencement...</description>
	<lastBuildDate>Sun, 27 Jun 2010 23:09:22 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>erreur 404, redirection 301: headers et codes de réponse HTTP courants</title>
		<link>http://www.php-experts.org/developpement-web/php-developpement-web/erreur-404-redirection-301-headers-et-codes-de-reponse-http-courants-24</link>
		<comments>http://www.php-experts.org/developpement-web/php-developpement-web/erreur-404-redirection-301-headers-et-codes-de-reponse-http-courants-24#comments</comments>
		<pubDate>Fri, 05 Sep 2008 09:47:44 +0000</pubDate>
		<dc:creator>Didier</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[headers]]></category>
		<category><![CDATA[HTTP]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[protocoles]]></category>
		<category><![CDATA[redirections]]></category>

		<guid isPermaLink="false">http://www.php-experts.org/?p=24</guid>
		<description><![CDATA[Lorsqu&#8217;on se connecte à une page Web, le client (navigateur) envoie une requête, auquel le serveur qui traite la réponse, en suivant le protocole HTTP, renvoie un code de traitement à 3 chiffres.
Ce code se situe sur la première ligne de la réponse, et est de la forme :



HTTP/1.1 200 OK



. En php, la fonction [...]]]></description>
			<content:encoded><![CDATA[<p>Lorsqu&#8217;on se connecte à une page Web, le client (navigateur) envoie une requête, auquel le serveur qui traite la réponse, en suivant le protocole HTTP, renvoie un code de traitement à 3 chiffres.<br />
Ce code se situe sur la première ligne de la réponse, et est de la forme :</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">HTTP/<span class="nu0">1.1</span> <span class="nu0">200</span> OK</div>
</li>
</ol>
</div>
<p>. En php, la fonction php header() permet, depuis vos scripts, d&#8217;adapter le code que le serveur renvoie, afin de &#8220;forcer&#8221; le comportement du navigateur client.<br />
Petit tour d&#8217;horizon des codes les plus répandus.<br />
<span id="more-24"></span></p>
<h2>200 OK</h2>
<p>Le code 200, c&#8217;est le Nirvana. Tout s&#8217;est bien passé, rien à signaler. C&#8217;est le code par défaut.</p>
<h2>301 Moved Permanently (aka Redirect Permanent)</h2>
<p>Le code 301 ou &#8220;redirection permanente&#8221; est très utilisé en référencement. Il signale au client (navigateur ou crawler de moteur de recherche) que la ressource demandée (document, image, etc) a été déplacée de manière définitive.<br />
Imaginons que je renomme un dossier. En l&#8217;état, les moteurs de recherche enverront les internautes vers des pages qui n&#8217;existent plus (ils recevront donc une erreur 404 &#8211; document not found), et les éventuels liens entrants dont bénéficiaient mes pages sont perdus puisqu&#8217;ils pointent aussi dans le vide.<br />
Avec une redirection permanente, les moteurs étant prévenus que le document a été déplacé, mettront leur index à jour pour envoyer les visiteurs directement sur la bonne URL. Dans le même temps, la popularité amenée par les liens entrant sera reportée sur les nouvelles pages.</p>
<h2>302 Moved Temporarily</h2>
<p>Proche de la Redirection 301, le code 302 indique qu&#8217;un document a été déplacé temporairement. Moteurs comme navigateurs téléchargeront donc le document à sa nouvelle adresse, mais les références futures se feront à l&#8217;URL habituelle.</p>
<h2>304 Not Modified</h2>
<p>Quand ils ont un document dans le cache, les navigateurs envoient un entête If-Modified-Since, qui comprend la date à laquelle ils ont téléchargé le document pour la dernière fois. Si le document n&#8217;a pas été modifié depuis, le serveur envoie un code de réponse 304, &#8220;non modifié&#8221;, afin que le navigateur évite de retélécharger un contenu qui est à jour dans son cache.</p>
<h2>404 Not Found</h2>
<p>Le document auquel l&#8217;utilisateur essaye d&#8217;accéder a été déplacé, supprimé, ou l&#8217;URL fournie est simplement incorrecte. Le serveur n&#8217;a donc rien à renvoyer. On peut configurer Apache, au niveau du Virtual Host (ou d&#8217;un .htaccess) pour qu&#8217;il renvoie, dans ce cas, un document précis, grâce à la directive ErrorDocument 404 /fichier.html . En cas d&#8217;erreur 404, c&#8217;est fichier.html qui sera servi. Cela peut (et devrait toujours) servir à envoyer une page 404 personnalisée, qui comprend au minimum un mini-plan du site, afin que l&#8217;internaute puisse continuer sa visite sur le site.</p>
<h2>500 Internal Server Error</h2>
<p>Le code 500, c&#8217;est la fin du monde. Le serveur n&#8217;a pas pu répondre à la requête, très souvent à cause d&#8217;une erreur de configuration. Donc, vérifiez d&#8217;abord votre .htaccess, il suffit d&#8217;un point-virgule qui traine pour que le serveur ne s&#8217;en sorte plus.</p>
<h2>Fonction header</h2>
<p>La fonction header() en PHP permet d&#8217;envoyer un code de réponse autre que le 200 habituel. Vu qu&#8217;elle modifie les entêtes, elle doit être utilisée AVANT qu&#8217;un caractère imprimable soit envoyé au client. Dans le cas contraire, un warning &#8220;headers already sent&#8221; sera généré. Voici, pour exemple, la syntaxe complète de l&#8217;utilisation de la fonction header() pour envoyer une redirection 301 propre:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><a href="http://www.php.net/header"><span class="kw3">header</span></a><span class="br0">&#40;</span><span class="st0">&quot;HTTP/1.1 301 Moved Permanently&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><a href="http://www.php.net/header"><span class="kw3">header</span></a><span class="br0">&#40;</span><span class="st0">&quot;Location: http://www.nouvelle-url.com/&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><a href="http://www.php.net/exit"><span class="kw3">exit</span></a>;</div>
</li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.php-experts.org/developpement-web/php-developpement-web/erreur-404-redirection-301-headers-et-codes-de-reponse-http-courants-24/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
