IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Question sur les différentes manières d'envoyer des entêtes HTTP


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 71
    Points : 39
    Points
    39
    Par défaut Question sur les différentes manières d'envoyer des entêtes HTTP
    Bonjour,
    Je me demande pourquoi dans certains scripts PHP ont trouve deux têtes différentes pour envoyer un statut HTTP.

    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    header('HTTP/1.1 404 Not Found'); // Méthode classique
    header('Status: 404 Not Found'); // A quoi sert-il vraiment, et pourquoi il est pas souvent utilisé ?
    Connaissez-vous la raison pour envoyer un en-tête avec "Status:"?
    Merci

  2. #2
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    La patie HTTP... correspond au protocole du serveur.
    Généralement plus la réponse est précise et mieux c'est. Donc il est plus commun de renvoyer une réponse indiquant cette informartion qu'un simple Satatus:.
    D'ailleurs, au lieu de coder cette partie en dur, tu peux très bien la récupérer dynamiquement à partir du serveur hébergeant ton site avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SERVER['SERVER_PROTOCOL']

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 71
    Points : 39
    Points
    39
    Par défaut
    D'accord, mais est-ce vraiment obligatoire de l'indiquer pour garder une meilleure portabilité entre les différents serveurs ? Car dans beaucoup de framework et CMS, je trouve rarement l'entête Statue:

  4. #4
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Roules avec le protocole serveur au lieu de Status.
    Relis ma réponse.

  5. #5
    Membre du Club
    Profil pro
    Developpeur PHP Magento e-commerce
    Inscrit en
    Juin 2005
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Developpeur PHP Magento e-commerce
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 53
    Points : 51
    Points
    51
    Par défaut
    Il vaut mieux utiliser cette version :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header('HTTP/1.1 404 Not Found');
    Pour la bonne raison que l'en-tête Status n'est pas standard (il n'est pas présent dans les documents de l'IETF). Il y a donc des chances qu'il ne fonctionne pas sous toutes les configurations serveur

    D'autre part, ca ne sert à rien d'utiliser la variable $_SERVER['SERVER_PROTOCOL'] pour trois raisons :
    • la variable $_SERVER n'est ni sûre, ni fiable
    • cette partie de l'en-tête sert à préciser la version du protocole, mais pas le protocole utilisé
    • le client ayant envoyé une requête HTTP, il y a peu de chances qu'il espère recevoir une réponse d'un autre protocole

Discussions similaires

  1. Question sur les ascenseurs des champs
    Par 42remi42 dans le forum WinDev
    Réponses: 6
    Dernier message: 22/02/2018, 08h44
  2. Question sur les redirections et le chargement des pages
    Par Leelith dans le forum Développement Web avec .NET
    Réponses: 6
    Dernier message: 13/04/2013, 08h34
  3. Question sur les valeur min et max des types ?
    Par doommick31 dans le forum Débuter
    Réponses: 4
    Dernier message: 13/04/2010, 17h35
  4. Question sur les chemins des includes
    Par michka999 dans le forum Langage
    Réponses: 7
    Dernier message: 06/09/2006, 10h46
  5. Réponses: 2
    Dernier message: 19/04/2006, 13h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo