Outils pour utilisateurs

Outils du site


cours:intro_web_web_service_si3_2016_2017

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
Dernière révisionLes deux révisions suivantes
cours:intro_web_web_service_si3_2016_2017 [2017/04/12 11:47] – [Frequently Asked Quastions: FAQ] tiglicours:intro_web_web_service_si3_2016_2017 [2017/04/12 12:12] – [Frequently Asked Quastions: FAQ] tigli
Ligne 19: Ligne 19:
 ---- ----
  
-=== Cours d'introduction : du Web au Web services ===+==== Cours d'introduction : du Web au Web services ====
  
 {{:cours:des_sockets_aux_web_services_intro_si3_cours_1.pdf| Transparents surpport du cours 1 : du Web au Web services}} {{:cours:des_sockets_aux_web_services_intro_si3_cours_1.pdf| Transparents surpport du cours 1 : du Web au Web services}}
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 ====
 ||| |||
 {{:cours:td1_web_statique_et_http_si3_2017.pdf| Support de Travaux Pratiques : Web Statique}} {{:cours:td1_web_statique_et_http_si3_2017.pdf| Support de Travaux Pratiques : Web Statique}}
Ligne 59: Ligne 59:
 ---- ----
  
-=== Cours sur le Web Dynamique et le protocole HTTP ===+==== Cours sur le Web Dynamique et le protocole HTTP ====
 ||| |||
 {{:cours:protocole_http_si3_et_web_dynamique_cours_2.pdf|Cours protocole HTTP et Pages Web Dynamiques}} {{:cours:protocole_http_si3_et_web_dynamique_cours_2.pdf|Cours protocole HTTP et Pages Web Dynamiques}}
  
-=== Travaux pratiques : Serveur de pages Web Dynamiques ===+==== Travaux pratiques : Serveur de pages Web Dynamiques ====
 ||| |||
 {{:cours:td2_web_dynamique_et_http_si3_2017.pdf|Support de Travaux Pratiques : Web Dynamique}} {{:cours:td2_web_dynamique_et_http_si3_2017.pdf|Support de Travaux Pratiques : Web Dynamique}}
Ligne 69: Ligne 69:
 ---- ----
  
-=== Cours d'introduction aux Services Web ===+==== Cours d'introduction aux Services Web ====
 ||| |||
 {{:cours:cours_intro_services_web_rest_et_soap_si3_2016-2017.pdf|Cours sur Les principes des Services Web et des WS REST et SOAP}} {{:cours:cours_intro_services_web_rest_et_soap_si3_2016-2017.pdf|Cours sur Les principes des Services Web et des WS REST et SOAP}}
  
-=== Travaux pratiques : Introduction aux Web Services ===+==== Travaux pratiques : Introduction aux Web Services ====
 ||| |||
 {{:cours:td3a_formulaire_web_pour_tester_un_post_dans_un_browser_web2017.pdf| TD Utilisation d'un formulaire HTML pour générer des requêtes GET et POST}} {{:cours:td3a_formulaire_web_pour_tester_un_post_dans_un_browser_web2017.pdf| TD Utilisation d'un formulaire HTML pour générer des requêtes GET et POST}}
Ligne 111: Ligne 111:
  
 ===== Frequently Asked Quastions: FAQ ===== ===== Frequently Asked Quastions: FAQ =====
-== Comment écrire un chemin de fichier indépendant de l'OS  ? == +[[cours:SI3:FAQ:FAQ_Web_WS| Page des FAQ "du Web aux Web Services en Python"]]
-on dispose également de la fonction os.path.join( chemin1, chemin2) qui permet de concaténer des chemins simplement en respectant les convention de l'OS de support : +
  
-<code> 
-chemin=os.getenv('HOME') 
-chemin=os.path.join(chemin,'Bureau') 
-print (chemin) 
-/home/user/Bureau 
-</code> 
  
-== Comment utiliser les pipes en python ?== 
-  * Le module os (import os) en python vous permet d'avoir accès à une API proche de POSIX dans laquelle vous trouvez :  
-<code>  
-os.fork() 
-pipein, pipeout = os.pipe() 
-... = os.read(pipein, ...) 
-os.write(pipeout, ...) 
-os.close(pipein) 
-os.close(pipeout) 
-</code> 
- 
-  * Python permet aussi d'accéder à une struture de pipes à la création d'un processus. Voici quelques explications :  
-<code> myPopen = subprocess.Popen(['cat', '-n']) : fait l'appel système non bloquant. 
-si on veut pouvoir envoyer des données sur le stdin du process, il faut faire : myPopen = subprocess.Popen(['cat', '-n'], stdin = subprocess.PIPE). 
- 
-si on veut pouvoir récupérer des données de la sortie standard et de la sortie d'erreur du process, il faut faire :  
-<code> 
-myPopen = subprocess.Popen(['cat', '-n'], stdout = subprocess.PIPE, stderr = subprocess.PIPE). 
-</code> 
- 
-myPopen.stdin, myPopen.stdout, myPopen.stderr : les entrées et sorties standard, quand elles ont été mises a subprocess.PIPE dans le constructeur. myPopen.stdout est de la classe file. 
-     
-Exemple : 
-     
-<code>  
-    import subprocess 
-     s = subprocess.Popen(['bc','-q'],stdin = subprocess.PIPE, stdout = subprocess.PIPE, stderr = subprocess.STDOUT) 
-    ... 
-    s.stdin.write(cmde+'\n') 
-    s.stdin.flush() 
-    res = s.stdout.readline() 
-    print "Resultat:",res 
-     
-s.stdin.close() 
-s.stdout.close() 
-     
-</code> 
- 
-== Commment puis-je détecter le type d'invocation GET ou POST de mon cgi-bin ? == 
-L'information se trouve dans le champ d'entête du message HTTP. Il s'agit de RequestMethod. 
- 
-== 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'entête du message HTTP. Il s'agit de Content-Lenght.  
- 
-== 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'environnement avec Python vous pouvez utiliser le module os et la variable environ avec par exemple :  
-<code> 
-import os  
-... 
-if os.environ.has_key('nom_de_la_cle'): 
-print os.environ['nom_de_la_cle'] 
-</code> 
 ===== Compléments de Cours et de TD ===== ===== Compléments de Cours et de TD =====
-{{ :cours:book_python.jpg?direct&100|}} +[[cours:SI3:FAQ:complement_cours_Web_WS|Page sur des compléments de cours "Web aux Web Services"]] 
-||| +===== Archives =====
-== Quelques Cours et Tutoriels sur Python == +
- +
- +
-||| +
- +
-  * [[https://books.google.fr/books?id=aJQILlLxRmAC&printsec=frontcover&hl=fr&source=gbs_ge_summary_r&cad=0#v=onepage&q&f=false|Python ProgrammingAn Introduction to Computer Science Par John M. Zelle]] +
- +
- +
- +
-== Exemple Gestion de Chaines de caractères == +
- +
-  * [[https://openclassrooms.com/courses/apprenez-a-programmer-en-python/notre-premier-objet-les-chaines-de-caracteres|Cours chaines de caractères en python]] +
- +
- +
-== Exemple de code Python d'un client / Serveur == +
- +
-  * [[https://openclassrooms.com/courses/apprenez-a-programmer-en-python/le-reseau|Cours socket sous python]] +
- +
-  * Code Python d'un client et d'un serveur TCP/IP {{:cours:code_client_server_socket_python.zip|code_client_server_socket_python.zip}} +
-  * 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 ==  +
- +
-  *{{:cours:cours_annexe_web_authentification_-_suivi_de_session_-_multi_part.pdf| Web et Suivi de Session, Authentification, Contrôle d'Accès, ...}} +
- +
- +
- +
- +
-=== ARCHIVES ===+
  
 [[cours:intro_web_web_service_si3_2015_2016| Page du Cours "Du Web aux Web Services" 2016]] [[cours:intro_web_web_service_si3_2015_2016| Page du Cours "Du Web aux Web Services" 2016]]
  
  
cours/intro_web_web_service_si3_2016_2017.txt · Dernière modification : 2019/02/06 06:13 de tigli