cours:intro_web_web_service_si3_2016_2017
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| cours:intro_web_web_service_si3_2016_2017 [2017/04/12 11:47] – [Frequently Asked Quastions: FAQ] tigli | cours:intro_web_web_service_si3_2016_2017 [2019/02/06 06:13] (Version actuelle) – [Cours d'Introduction aux Web et Services Web] tigli | ||
|---|---|---|---|
| Ligne 5: | Ligne 5: | ||
| Cet ensemble de cours se déroule dans le prolongement de cours sur les protocoles UDP et TCP over IP. | Cet ensemble de cours se déroule dans le prolongement de cours sur les protocoles UDP et TCP over IP. | ||
| Il s' | Il s' | ||
| - | [[http:// | + | [[http:// |
| ||| | ||| | ||
| Ligne 19: | Ligne 19: | ||
| ---- | ---- | ||
| - | === Cours d' | + | ==== Cours d' |
| {{: | {{: | ||
| Ligne 25: | Ligne 25: | ||
| - | === Travaux pratiques : Mon premier serveur web dans mon serveur TCP/IP Socket === | + | ==== Travaux pratiques : Mon premier serveur web dans mon serveur TCP/IP Socket |
| ||| | ||| | ||
| {{: | {{: | ||
| Ligne 59: | Ligne 59: | ||
| ---- | ---- | ||
| - | === Cours sur le Web Dynamique et le protocole HTTP === | + | ==== Cours sur le Web Dynamique et le protocole HTTP ==== |
| ||| | ||| | ||
| {{: | {{: | ||
| - | === Travaux pratiques : Serveur de pages Web Dynamiques === | + | ==== Travaux pratiques : Serveur de pages Web Dynamiques |
| ||| | ||| | ||
| {{: | {{: | ||
| Ligne 69: | Ligne 69: | ||
| ---- | ---- | ||
| - | === Cours d' | + | ==== Cours d' |
| ||| | ||| | ||
| {{: | {{: | ||
| - | === Travaux pratiques : Introduction aux Web Services === | + | ==== Travaux pratiques : Introduction aux Web Services |
| ||| | ||| | ||
| {{: | {{: | ||
| Ligne 111: | Ligne 111: | ||
| ===== Frequently Asked Quastions: FAQ ===== | ===== Frequently Asked Quastions: FAQ ===== | ||
| - | == Comment écrire un chemin de fichier indépendant de l' | + | [[cours: |
| - | on dispose également de la fonction os.path.join( chemin1, chemin2) qui permet de concaténer | + | |
| - | < | ||
| - | chemin=os.getenv(' | ||
| - | chemin=os.path.join(chemin,' | ||
| - | print (chemin) | ||
| - | / | ||
| - | </ | ||
| - | == Comment utiliser les pipes en python ?== | ||
| - | * Le module os (import os) en python vous permet d' | ||
| - | < | ||
| - | os.fork() | ||
| - | pipein, pipeout = os.pipe() | ||
| - | ... = os.read(pipein, | ||
| - | os.write(pipeout, | ||
| - | os.close(pipein) | ||
| - | os.close(pipeout) | ||
| - | </ | ||
| - | |||
| - | * Python permet aussi d' | ||
| - | < | ||
| - | si on veut pouvoir envoyer des données sur le stdin du process, il faut faire : myPopen = subprocess.Popen([' | ||
| - | |||
| - | si on veut pouvoir récupérer des données de la sortie standard et de la sortie d' | ||
| - | < | ||
| - | myPopen = subprocess.Popen([' | ||
| - | </ | ||
| - | |||
| - | myPopen.stdin, | ||
| - | | ||
| - | Exemple : | ||
| - | | ||
| - | < | ||
| - | import subprocess | ||
| - | s = subprocess.Popen([' | ||
| - | ... | ||
| - | s.stdin.write(cmde+' | ||
| - | s.stdin.flush() | ||
| - | res = s.stdout.readline() | ||
| - | print " | ||
| - | | ||
| - | s.stdin.close() | ||
| - | s.stdout.close() | ||
| - | | ||
| - | </ | ||
| - | |||
| - | == Commment puis-je détecter le type d' | ||
| - | L' | ||
| - | |||
| - | == Commment savoir que le message HTTP à lire est fini ? == | ||
| - | Le test de fin se basera sur la taille du message qui se trouve dans un champ d' | ||
| - | |||
| - | == Comment accéder aux variables d’environnement en Python ? == | ||
| - | Tout cgi-bin doit pouvoir s’appuyer sur les paramètres qui lui sont destinés et qui ont été collectés dans la variable d’environnement QUERY_STRING. | ||
| - | En conséquence le serveur doit être capable de préparer des variables d’environnement avant de lancer le cgi-bin. | ||
| - | Pour obtenir une variable d' | ||
| - | < | ||
| - | import os | ||
| - | ... | ||
| - | if os.environ.has_key(' | ||
| - | print os.environ[' | ||
| - | </ | ||
| ===== Compléments de Cours et de TD ===== | ===== Compléments de Cours et de TD ===== | ||
| - | {{ : | + | [[cours:SI3:FAQ:complement_cours_Web_WS|Page sur des compléments |
| - | ||| | + | ===== Archives |
| - | == Quelques Cours et Tutoriels sur Python == | + | |
| - | + | ||
| - | + | ||
| - | ||| | + | |
| - | + | ||
| - | * [[https:// | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | == Exemple Gestion de Chaines de caractères == | + | |
| - | + | ||
| - | * [[https:// | + | |
| - | + | ||
| - | + | ||
| - | == Exemple de code Python d'un client / Serveur | + | |
| - | + | ||
| - | * [[https:// | + | |
| - | + | ||
| - | * Code Python d'un client et d'un serveur TCP/IP {{: | + | |
| - | * Attention : les méthodes send, recv sur les sockets manipulent des bytes. Vous ne pouvez donc envoyer et recevoir directement des chaines de caractères. La méthode ** encode ** sur une chaine pour récupérer une liste de bytes et ** decode ** sur une liste de bytes pour récupérer la chaine de caractères correspondantes | + | |
| - | * Attention ce code est prévu pour Python <= 2.x. En python 3.x il faudar faire quelques modifications comme print à réécrire comme une fonction en print(). | + | |
| - | + | ||
| - | == Autre == | + | |
| - | + | ||
| - | *{{: | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | === ARCHIVES | + | |
| [[cours: | [[cours: | ||
cours/intro_web_web_service_si3_2016_2017.1491997631.txt.gz · Dernière modification : 2017/04/12 11:47 de tigli