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

 C++ Discussion :

Créer un moteur Web C++


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Valter
    Homme Profil pro
    Analyse système
    Inscrit en
    Mars 2008
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Mars 2008
    Messages : 113
    Par défaut Créer un moteur Web C++
    Bonjour, j'aimerai créer un moteur web en C++ le problème c'est que je ne sais pas par où commencer.
    J'aimerai faire un truc simple comme Gecko, donc je me demandais comment il fallait procéder.

    Récupérer la source HTML du site et, à l'aide de regexp, l'afficher à l'écran ?
    Merci.

    Au mieux, si vous avez des sources, je suis preneur.

  2. #2
    Membre Expert
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Par défaut
    si, j'ai bien compris, tu veut refaire un interpréteur html ?

    Si le coté regexp & co, me parais sans problèmes(on peut sûrement créer une fonction générique), l'affichage risque d'être un travail long et ingrat (il faut d'abord aller chercher une liste de toutes les fonctions possibles etc...). Aussi, tu m'excusera sûrement cette question : pourquoi ?


    bonne chance (tu en aura besoin )

  3. #3
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,

    Je ne vois pas non plus vraiment le but, mais bon, pour essayer de te donner quelques pistes:

    Tu devrais t'intéresser à toute la théorie et aux bibliothèques qui ont trait au travail en réseau et aux sockets, de manière à pouvoir te connecter... au serveur.

    Tu devrais ensuite t'intéresser, au protocole HTTP (au minimum), et donc à des bibliothèques telles que Curl, car une partie des informations transmises, dans les deux sens, se fait dans ce que l'on appelle les "en-tête" (qui n'ont rien à voir avec les balises <header></header)

    A ce stade, tu sera à peine en mesure de te connecter à un serveur, de lui envoyer des requêtes et de recevoir les réponses.

    Il faudra ensuite t'intéresser au "parsers", afin de retrouver les différents noeuds qui composent la page web, au "lexers" afin de retrouver le sens de ces noeud, et donc aux DTD (Data Type Description) afin de pouvoir valider le document.

    Lors du parsing, tu rencontrera des définitions de CSS (ou des liens vers des document de type CSS), qu'il te faudra également arriver à gérer, sans oublier, bien sur, les différents média qui peuvent apparaitre sur la page HTML (image, son, video, flash,...), et les bibliothèques qui leur sont propres.

    Une fois que tu auras réussi à gérer les différents nœuds, il faudra encore arriver à faire représenter le tout d'une manière cohérente, en respectant les informations de styles.

    Je n'ai parlé ici que de l'analyse de fichiers HTML, sans certitude de ne pas avoir oublié un ou l'autre point de vue, et sans aborder les concepts plus proche du XML avec DOM (Document Object Model) ou SAX (Simple Api for Xml) et autres...

    Au final, je ne dis pas qu'il t'est impossible de "réinventer la roue" (après tout, Gecko a bien été créé par quelqu'un ), mais il faut être conscient du fait que c'est toute une équipe qui l'a mis au point, et que cela ne s'est pas fait en un jour...

    Alors, si tu envisage de faire cela "tout seul", crois tu vraiment avoir tout le temps qu'un tel projet peut nécessiter

    Es-tu sur de vouloir te "lancer" et de ne pas courir le risque d'abandonner "en cours de route" parce que, décidément, c'est un projet trop ambitieux pour une seule personne

    Je reconnais bien sur l'énorme qualité "didactique" d'un tel projet (car il t'obligera surement à te documenter sur un tas de sujets intéressants et utiles), et je m'en veux presque de me montrer pessimiste, mais un bon programmeur est - sans doute avant tout - pragmatique et honnête avec lui-même:

    Les chances que tu as d'arriver seul à un résultat ne serait-ce que passable dans un temps "raisonnable" (qui peut pourtant se compter en années) sont finalement assez limitées, surtout si, comme le laisse penser la section que tu as choisi pour poser ta question, tu débute à peine en C++...

    Si après avoir lu ces lignes, tu es toujours aussi motivé pour te lancer dans ce projet, je ne peux que te souhaiter, à l'instar de méphistopheles, beaucoup de chance et énormément de courage, car tu en auras besoin
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  4. #4
    Membre confirmé Avatar de Valter
    Homme Profil pro
    Analyse système
    Inscrit en
    Mars 2008
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Mars 2008
    Messages : 113
    Par défaut
    Tout d'abord merci de vos réponses.

    Tu devrais ensuite t'intéresser, au protocole HTTP (au minimum), et donc à des bibliothèques telles que Curl, car une partie des informations transmises, dans les deux sens, se fait dans ce que l'on appelle les "en-tête" (qui n'ont rien à voir avec les balises <header></header)
    J'hésitais justement entre cURL et les Sockets simples avec requête HTTP / Réponse HTTP mais si vous me conseillez cURL.

    Il faudra ensuite t'intéresser au "parsers", afin de retrouver les différents noeuds qui composent la page web, au "lexers" afin de retrouver le sens de ces noeud, et donc aux DTD (Data Type Description) afin de pouvoir valider le document.

    Lors du parsing, tu rencontrera des définitions de CSS (ou des liens vers des document de type CSS), qu'il te faudra également arriver à gérer, sans oublier, bien sur, les différents média qui peuvent apparaitre sur la page HTML (image, son, video, flash,...), et les bibliothèques qui leur sont propres.
    Oui, je me disais surtout que le plus dur serait de gérer Javascript & coe.

    Es-tu sur de vouloir te "lancer" et de ne pas courir le risque d'abandonner "en cours de route" parce que, décidément, c'est un projet trop ambitieux pour une seule personne

    Je reconnais bien sur l'énorme qualité "didactique" d'un tel projet (car il t'obligera surement à te documenter sur un tas de sujets intéressants et utiles), et je m'en veux presque de me montrer pessimiste, mais un bon programmeur est - sans doute avant tout - pragmatique et honnête avec lui-même:

    Les chances que tu as d'arriver seul à un résultat ne serait-ce que passable dans un temps "raisonnable" (qui peut pourtant se compter en années) sont finalement assez limitées, surtout si, comme le laisse penser la section que tu as choisi pour poser ta question, tu débute à peine en C++...
    Je pense ça aussi, mais je peux recruter des personnes intéresser.

    Merci,

  5. #5
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Citation Envoyé par Valter Voir le message
    J'hésitais justement entre cURL et les Sockets simples avec requête HTTP / Réponse HTTP mais si vous me conseillez cURL.
    Je ne parlais - à vrai dire - de cURL qu'à titre d'exemple (d'ailleurs, à choisir, ce serait plutot l'équivalent "C++": cURLpp )
    Oui, je me disais surtout que le plus dur serait de gérer Javascript & coe.
    Comme je l'ai dit, je me suis limité au HTML uniquement, la gestion du javascript est - elle aussi, et parmi d'autres - un très gros morceau (mais, l'un dans l'autre, il ne sert à rien d'arriver à gérer javascript tant que tu ne sais pas gérer correctement le HTML statique et ses associés )
    Je pense ça aussi, mais je peux recruter des personnes intéresser.
    je scinderai ma réponse en deux parties:

    D'abord, si tu débute, je te conseillerais franchement de partir sur de petits projets, pour te faire la main (quelque lignes / classes / unité de compilation / fichiers)

    Tu ne tardera pas à te rendre compte qu'il est déjà suffisemment difficile d'apprendre "par petit bouts"

    Ensuite, il est beaucoup plus facile de recruter des gens pour un projet "innovant" que pour "réinventer la roue"...

    Sans oublier le fait que, dés que l'on parle d'équipe, il faut *aussi* parler de la gestion de l'équipe, et que tout le monde n'est pas *forcément* capable de gérer une équipe (je ne veux absolument pas dire - ne te méprend pas sur ce point - que tu en es incapable: je ne te connais pas suffisemment pour te juger sur ce point )

    Maintenant, ce ne sont que les conseils "d'un vieux c", et tu en fais strictement ce que bon te semble
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

Discussions similaires

  1. Créer un site web - en quel langage ?
    Par Thierry92 dans le forum Débuter
    Réponses: 96
    Dernier message: 25/04/2024, 22h24
  2. [Spip] Combien de temps pour créer un site web ?
    Par gamerome dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 7
    Dernier message: 13/09/2008, 08h21
  3. comment créer un site web avec publisher 2003
    Par kamga dans le forum Autres
    Réponses: 3
    Dernier message: 19/01/2006, 00h18
  4. Réponses: 0
    Dernier message: 17/10/2005, 08h05

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