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 :

socket PHP & HTTP


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2006
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 35
    Points : 24
    Points
    24
    Par défaut socket PHP & HTTP
    Bonjour,

    J'ai une petite question à vous poser concernant le protocole HTTP avec les socket PHP :

    J'utilise depuis quelque temps déjà des socket PHP pour récuperer des page internet. Pour la plupart ça marche plutot bien, mais avec certain site la page charge continuelement jusqu'à ce que le serveur me renvoi une erreur, j'utilise pourtant les même lignes HTTP que FF ou IE, que je récupère grace à Ethereal ou un plug-in de FF.
    Ma question : se pourrait-il qu'un site puisse détecter la provenance d'une requête ? et même si c'est le cas, comment sait-il que je n'utilise pas un navigateur conventionnel ? Enfin cet optique me parait bizarre, je pense donc que le problème vient surtout de la configuration du serveur qui heberge mon script.

    Quelqu'un pourrait-il m'éclairer ? et si la réponse est ma dernière supposition, existe-il un moyen de faire exécuter le script tout de même ?

    Je vous remerci d'avance pour toutes les idées que vous pourrez m'apporter

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Citation Envoyé par supers03
    Ma question : se pourrait-il qu'un site puisse détecter la provenance d'une requête ? et même si c'est le cas, comment sait-il que je n'utilise pas un navigateur conventionnel ? Enfin cet optique me parait bizarre, je pense donc que le problème vient surtout de la configuration du serveur qui heberge mon script.
    C'est possible en effet de se baser sur les entêtes que vous émettez (ou leur absence) et plus particulièrement celle qui correspond à User-Agent. C'est rarement le cas en pratique, puisqu'elles ne sont pas fiables (c'est le client qui les fournit et il peut le faire comme il l'entend). Mais peut être avez-vous reproduite à ce niveau celle d'un navigateur existant ? (dans certains cas, suivant la configuration de PHP et par défaut, il lui arrive d'en ajouter)

    Quelle erreur rencontrez-vous ? Que se passe-t-il d'anormal ?

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2006
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 35
    Points : 24
    Points
    24
    Par défaut
    Et bien en fait généralement j'utilise toutes les entête du navigateur, pour être sur que ça marche ... puis petit à petit je retire celles qui me paraissent inutiles.

    Mais là pour mon cas je met les entête de Firefox par exemple, je demande une page et le navigateur charge en boucle, et ça fini donc par une erreur 500 du serveur ... tiens ça me fait penser, j'avais eu le même problème lorsque je rajoutais une entête en particulier, il faut que je la retrouve dans mes fichiers... mais bon pour mon cas présent, cette entête n'y est pas



    Edit : je vien de retrouver la ligne qui me posait des problème, je pese pas que ça peu résoudre mon problème actuel mais bon ... :
    "Accept-Encoding: gzip, deflate\r\n"
    Donc quand je précise cette ligne, j'ai l'erreur 500 de l'hebergeur de mon script au bout d'un long chargement de la page

  4. #4
    Membre à l'essai
    Inscrit en
    Janvier 2006
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 35
    Points : 24
    Points
    24
    Par défaut
    Pour essayer de comprendre je viens de faire pas mal d'essai, et c'est la fonction socket_read qui pose problème. J'ai essayé d'afficher ce que me renvoi au fur et à mesure cette fonction, au lieu d'utiliser un buffer :

    while($buff = socket_read($socket, 2000)){
    echo $buff."\n######################################\n";
    }

    De cette manière je vois en temps réel ce que je reçois.
    Résultat : quelque soit la valeur que je met dans le socket_read, j'ai une premiere partie de la page qui s'affiche très vite, puis ça "patiente" 15 secondes avant de me donner la suite.

    julp, aurriez-vous une idée du pourquoi ?

  5. #5
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Si vous indiquez (que ce soit explicitement ou non) des entêtes que vous ne gérez pas ensuite, ça me semble normal de rencontrer certains problèmes (la compression en est un). Tenez-vous en à l'essentiel et utilisez le protocole HTTP 1.0, un peu plus limité de ce côté-là donc moins problématique à certains niveaux.

    Notez qu'il existe des clients plus évolués, l'extension cURL en est un et que l'extension sockets ne fera plus partie, prochainement, du core (elle deviendra une extension PECL).

    PS : généralement la cause d'une erreur de type 500 est indiquée dans le journal d'erreur du serveur Web ...

  6. #6
    Membre à l'essai
    Inscrit en
    Janvier 2006
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 35
    Points : 24
    Points
    24
    Par défaut
    J'ai remplacé mes HTTP1.1 par des HTTP1.0 et hop c'est bon ça marche ^_^

    Bon par contre j'aurai bien aimé comprendre un peu, mais j'imagine qu'il faudrai que je regarde n détail toute la doc du protocole 1.1

    Merci beaucoup pour ton aide

Discussions similaires

  1. [FLASH MX2004] [XMLSocket] Problème avec serveur socket php
    Par cocodunombril dans le forum Flash
    Réponses: 4
    Dernier message: 03/04/2009, 02h10
  2. Sockets SSL ( serveur HTTPS )
    Par hexadecime dans le forum Réseau/Web
    Réponses: 4
    Dernier message: 19/10/2007, 18h02
  3. [Système] Probleme Socket Php
    Par Reaggaman dans le forum Langage
    Réponses: 4
    Dernier message: 01/03/2006, 18h55
  4. Pb socket PHP
    Par bigsister dans le forum Langage
    Réponses: 3
    Dernier message: 30/01/2006, 23h35
  5. [sockets]Comment intéragir avec une socket php ?
    Par le Daoud dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 31/10/2005, 10h50

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