Plan Général Prévisionnel (1/2) Internet et Outils L1/IO2 2007-2008. François Armand. Plan Général Prévisionnel (2/2) Plan. Cours Internet et Outils:

Documents pareils
Plan Général Prévisionnel (1/2) Internet et Outils L1/IO François Armand. Plan Général Prévisionnel (2/2) Unix, Réseau: Plan

L3 informatique TP n o 2 : Les applications réseau

L3 informatique Réseaux : Configuration d une interface réseau

Introduction. Adresses

Présentation du modèle OSI(Open Systems Interconnection)

Couche application. La couche application est la plus élevée du modèle de référence.

Services Réseaux - Couche Application. TODARO Cédric

Introduction aux Technologies de l Internet

Divers éléments. Protocoles d'applications. Un agent Utilisateur. MUA - Agents Utilisateurs de Courriel. Simple Mail Transfer Protocol

Protocoles Applicatifs

Chapitre VII : Principes des réseaux. Structure des réseaux Types de réseaux La communication Les protocoles de communication

Réseaux et protocoles Damien Nouvel

Plan. Programmation Internet Cours 3. Organismes de standardisation

II/ Le modèle OSI II.1/ Présentation du modèle OSI(Open Systems Interconnection)

FTP & SMTP. Deux applications fondamentales pour le réseau Internet.

Réseaux IUP2 / 2005 DNS Système de Noms de Domaine

Cours CCNA 1. Exercices

Les applications Internet

Dans l'épisode précédent

(structure des entêtes)

Programmation Internet Cours 4

Culture informatique. Cours n 9 : Les réseaux informatiques (suite)

Le réseau Internet.

18 TCP Les protocoles de domaines d applications

Exemple d application: l annuaire DNS Claude Chaudet

Chapitre : Les Protocoles

Serveurs de noms Protocoles HTTP et FTP

Présentation du ResEl

Les commandes relatives aux réseaux

Protection des protocoles

Développement Web. Les protocoles

Réseaux Locaux. Objectif du module. Plan du Cours #3. Réseaux Informatiques. Acquérir un... Réseaux Informatiques. Savoir.

GENERALITES. COURS TCP/IP Niveau 1

Intérêt du NAT (Network Address Translation) Administration Réseau Niveau routage. Exemple d Intranet. Principe NAT

Tunnels et VPN. 22/01/2009 Formation Permanente Paris6 86

Devoir Surveillé de Sécurité des Réseaux

Applications. Applications. Le système de nommage d Internet: Domain Name System. Applications. service de noms

Internets. Informatique de l Internet: le(s) Internet(s) Composantes de l internet R3LR RENATER

TIC. Réseau informatique. Historique - 1. Historique - 2. TC - IUT Montpellier Internet et le Web

Quelques protocoles et outils réseaux

LE RESEAU GLOBAL INTERNET

Figure 1a. Réseau intranet avec pare feu et NAT.

Gilles.Roussel univ-mlv.fr HTTP/1.1 RFC 2068

Outils de l Internet

SYSTEME DE GESTION DES ENERGIES EWTS EMBEDDED WIRELESS TELEMETRY SYSTEM

Cisco Certified Network Associate

Réseaux. 1 Généralités. E. Jeandel

Services sur réseaux. Trois services à la loupe. Dominique PRESENT Dépt S.R.C. - I.U.T. de Marne la Vallée

SSH, le shell sécurisé

Les services usuels de l Internet

M1101a Cours 4. Réseaux IP, Travail à distance. Département Informatique IUT2, UPMF 2014/2015

1.Introduction - Modèle en couches - OSI TCP/IP

Rappels réseaux TCP/IP

Application Web et J2EE

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Linux LTE 2 - ISSBA. Année universitaire Linux Réseau et Archivage. Jean-Michel RICHER Faculté des Sciences, H206 1

Rappel: Le routage dans Internet. Contraintes. Environnement et contraintes. La décision dans IP du routage: - Table de routage:

Plan du Travail. 2014/2015 Cours TIC - 1ère année MI 30

wiki.ipfire.org The official documentation for IPFire - An Open Source Firewall Solution Outils

Manuel des logiciels de transferts de fichiers File Delivery Services

Réseaux. DNS (Domaine Name System) Master Miage 1 Université de Nice - Sophia Antipolis. (second semestre )

SIP. Plan. Introduction Architecture SIP Messages SIP Exemples d établissement de session Enregistrement

Informatique Générale Les réseaux

Mr. B. Benaissa. Centre universitaire Nâama LOGO

MISE EN PLACE DU FIREWALL SHOREWALL

Programmation Réseau. ! UFR Informatique ! Jean-Baptiste.Yunes@univ-paris-diderot.fr

Réseaux. Moyens de sécurisation. Plan. Evolutions topologiques des réseaux locaux

Présentation Internet

Configurer le Serveur avec une adresse IP Statique (INTERFACE :FastEthernet) : et un masque

FTP & SMTP. File Transfert Protocol. Deux applications fondamentales pour le réseau Internet. Un protocole d échange de fichier «au dessus» de TCP :

Plan. Le système de transfert de fichiers d'internet. Introduction aux systèmes de transfert de fichiers Le protocole FTP.

Ch2 La modélisation théorique du réseau : OSI Dernière maj : jeudi 12 juillet 2007

Protocoles IP (2/2) M. Berthet. Les illustrations sont tirées de l ouvrage de Guy Pujolle, Cours réseaux et Télécom Contributions : S Lohier

Université Pierre Mendès France U.F.R. Sciences de l Homme et de la Société Master IC²A. TP réseau firewall

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

webmestre : conception de sites et administration de serveurs web 42 crédits Certificat professionnel CP09

Résolution de noms. Résolution de noms

HTTP 1.1. HyperText Transfer Protocol TCP IP ...

Environnements informatiques

Domain Name System. F. Nolot

RX3041. Guide d'installation rapide

ETI/Domo. Français. ETI-Domo Config FR

NOTIONS DE RESEAUX INFORMATIQUES

Internet et Programmation!

RFC 7230 : Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing

Applications en réseau

//////////////////////////////////////////////////////////////////// Administration systèmes et réseaux

Adresse directe fichier : Adresse url spécifique sur laquelle le lien hypertext du Client doit être

Services Réseau SSH. Michaël Hauspie. Licence Professionnelle Réseaux et Télécommunications

DHCP et NAT. Cyril Rabat Master 2 ASR - Info Architecture des réseaux d entreprise

VoIP et "NAT" VoIP et "NAT" 1/ La Traduction d'adresse réseau. 1/ La traduction d'adresse réseau. 1/ La traduction d'adresse réseau

Fonctionnement d Internet

FTPS AVEC UNE APPLIANCE FAST360 EN COUPURE. Table des matières

TAGREROUT Seyf Allah TMRIM

HTTP HTTP. IUT1 dpt SRC L Isle d Abeau Jean-françois Berdjugin. Introduction et architecture Messages Authentification Conclusion

Cours d'informatique «Internet» Session 1

TP Sur SSH. I. Introduction à SSH. I.1. Putty

TARMAC.BE TECHNOTE #1

1. Fonctionnement de l Internet 2. Protocoles applicatifs 3. Programmation réseau

Transcription:

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO2 2007-2008 S2-IO2 et compléments Cours Internet et Outils: [1/12] Intro, Internet, Web, XHTML (2H) [2/12] XHTML(2H) [3/12] CSS (2H) [4/12] PHP (2H) [5/12] PHP suite (2H) armand@informatique.univ-paris-diderot.fr [6/12] Introduction MySQL, Table simple (2H) [7/12] Partiel (2H) 15 Mars 08 14H-16H Amphis 2A et 8C 1 2 Plan Général Prévisionnel (2/2) (non contractuel) Plan Bases de données [8/12] Tables multiples, Schémas (2H) [9/12] Concepts un peu plus avancés (2H) [10/12] Introduction aux réseaux(2h) [11/12] et compléments (2H) [12/12] Révisions (2H) Rappels, précisions Problèmes, adresses, nommage, routage Ftp, telnet, ssh Courrier électronique Protocole HTTP RSS Ce qu'il faut retenir 3 4

Ce que vous allez découvrir Accès à des fichiers «distants» sans utiliser de commande de transfert Structure des courriers, échange des courriers Différence entre POP et IMAP HTTP: Requêtes et réponses Créér un «flux RSS» et Topologie Connexions point à point: Entre une machine et une autre En général via un lien physique dédié Seules les 2 machines connectées peuvent utiliser ce lien. OIE Exemple typique: Ligne série et modem, CANARD POULE DINDE Media Media Media 5 6 et Topologie Diffusion: Historiquement: Ethernet et réseau locaux LAN: Local Area Network Cablâge simplifié, chaque machine (contrôleur Ethernet) voit passer les trames et transmet à la machine celles qui lui sont destinées et Topologie Diffusion: Permet de diffuser efficacement un message (copie unique) destiné à plusieurs récipiendaires Broadcast (tous), multicast (un sous-groupe) Diffusion de vidéo, audio,... OIE CANARD POULE DINDE OIE CANARD POULE DINDE A Dinde??? A Dinde A Dinde??? A Dinde 7 8

et Topologie Ethernet: On a remplacé le cable coaxial par un boitier et des connexions filaires (paire torsadée) point à point entre les ordinateurs et le boitier Le boitier «reproduit» le comportement de diffusion, mais peut aussi être plus efficace. Switch, Routeur Ethernet Big-Endian 0x 256 Échanges entre machines Media 01 00 0x 00000001 00000000 Little-Endian 1 00 01 00000000 00000001 Les petits-boutistes (little endian) et les gros boutistes (big-endian) ne rangent pas les octets en mémoire dans le même ordre! Quand on transmet plus d'un octet=> problème. Les protocoles causent en big-endian Les applications sont libres. 9 10 Adresses IP Chaque machine a en principe: une adresse unique (dite adresse IP) Ex (IPv4) : 192.168.1.1, 127.0.0.1 est une adresse particulière: moi-même, présente sur toutes les machines ou plusieurs En fait, les adresses sont affectées aux «interfaces», points d'attache de la machine au(x) réseau(x) Adresses IP La machine A «appartient» à deux réseaux: Réseau comprenant A et B Réseau comprenant A et C A aura deux adresses IP Pour que C et B puissent communiquer, les messages doivent être relayés par A: Les messages C->B doivent être lus par A sur réseau 2 et transmis sur réseau 1 A est un «routeur» Réseau N 1 A Réseau N 2 B C 11 12

Adresses IP v4 Adresses IPV6 Risque d'épuisement des adresses disponibles! Solution(s): «cacher les adresses» Ex: réseau domestique, seul le routeur/modem connecté au fournisseur d'accès a une adresse IP visible par le reste du monde. Les autres machines ont des adresses seulement utilisées en interne => souvent 192.168.1.xx Le routeur/modem effectue des conversions substitutions d'adresses sur tour le trafic. NAT: Network Address Translation 13 16 octets 10 24 adresses par mètre carré! En affectant 1 million adresses / seconde épuisement dans 10 20 ans! Notation hexadécimale pointée ::1 / 128 (loopback) fe80::203:baff:fe12:d43a / 10 2001:660:3301:8070:203:baff:fe12:d43a / 64 14 IUP2 Paris7 05: Couche réseau IUP2 Paris7 05: Couche réseau Architecture d'un Internet Vues externes et internes sous-jacents Réseau N 1 Réseau N 2 Réseau N 3 Routeur Routeur Un internet s hôtes Routeurs FA/TR-05-06 Mars 2005 15 FA/TR-05-06 Mars 2005 16

IUP2 Paris7 05: Couche réseau Réseau N 1 Routage: Problèmes Réseau N 2 Réseau N 3 Top Level domains Espace de noms DNS domaines géographiques ISO 3166 arpa edu gov mil com net int org biz us fr jp uk de Message pour 187.234.64.32 Routeur??? sun virtuallogix sales France www virtuallogix univ-paris-diderot www pps informatique ac co Le routeur doit déterminer sur quelle liaison transmettre ce message entrant FA/TR-05-06 Mars 2005 17 foo nivose Pas de correspondance avec la topologie physique du réseau DNS: Domain Name System 18 Résolution des Noms Numéros de Port La conversion des noms en adresse est prise en charge par des serveurs de nommage Chaque serveur connaît une petite partie de l'ensemble des noms Les serveurs coopèrent entre eux pour convertir un nom en adresse 19 Sur une même machine, chaque application attendant des requêtes du réseau est identifiée par un numéro, dit numéro de port. ftp : 21; ssh : 22; telnet : 23; http : 80 tftp : 69; time: 37 Le numéro de port permet au système de remettre les messages reçus à la bonne application Il y a des numéros bien connus (statiques), Et des numéros attribués dynamiquement. 20

Transferts de Fichiers Session Distante: telnet FTP : File Transfer Protocol telnet [[hôte] port] Suppose l'existence d'un démon sur la cible (ftdp ou in.ftpd) Invocation: --> ftp [-option] [hôte] option: -i : interactif, -v mode bavard, -g, -n S'appuie sur le protocole TCP/IP sftp: idem mais protocole de transfert sécurisé (chiffrement de ssh) neon --> telnet fluor Trying 134.157.168.9... Connected to fluor.pps.jussieu.fr. Escape character is '^]'. login: armand Password:**** fluor--> 21 22 Session Distante : ssh Session Distante : ssh ssh version sécurisée de rsh Exécute un shell interactif sur une machine distante via une connexion sécurisée Comme telnet, rsh ou rlogin, nécessite d'être un utilisateur connu sur la machine distante. ssh [-l nom] hôte [commande] Si -l nom n'est pas précisé, la demande de connexion se fait pour l'utilisateur courant. Si commande n'est pas précisé, un shell interactif est exécuté, sinon seul commande est exécuté. Connexion autorisée immédiatement si : machine initiale apparaît dans /etc/hosts.equiv ou /etc/ssh/shosts.equiv Nom utilisateur identique des deux côtés Ou bien machine initiale et utilisateur apparaissent dans $HOME/.rhosts ou $HOME/.shosts sur machine cible Déconseillé, voire inhibé par administration système 23 24

Session Distante : ssh Session Distante : ssh On peut aussi indiquer les machines connues (en fait leur clé de cryptage) /etc/ssh/ssh_known_hosts $HOME/.ssh/ssh_known_hosts Configuration possible Paramètres d'exécution de ssh /etc/ssh/ssh_config, $HOME/.ssh/ssh_config Paramètres du shell lancé par ssh sur la cible /etc/ssh/sshrc, $HOME/.ssh/rc Autoriser les applications graphiques (X) à ouvrir des fenêtres sur la machine locale via la connexion ssh ssh [-l nom] -X hôte 25 26 Environnement graphique Environnement graphique Afficher une fenêtre sur une machine distante Variable d'environnement $DISPLAY: Ex: DISPLAY=dvorak:27.0; xterm xterm chopin Serveur X11 dvorak chopin> Autoriser une machine distante à ouvrir une fenêtre graphique localement xhost [[+-]hôte...] Permet d'afficher la liste des hôtes autorisés (pas argument) d'autoriser un hôte, plusieurs ou tous +toto, +toto titi, + d'interdire un hôte, plusieurs ou tous -toto, -toto titi, - 27 28

Plan Rappels, précisions Problèmes, adresses, nommage, routage Ftp, telnet, ssh Courrier électronique Protocole HTTP RSS Ce qu'il faut retenir Accès à des fichiers distants, sans ftp: mais avec cp, ls, mv... Quelques systèmes de fichiers répartis: NFS: Network File System (monde Unix / Linux) essentiellement utilisé sur des réseaux locaux, accès aux fichiers d'un serveur depuis un poste client comme si les fichiers étaient locaux. SambaFS (monde Windows) WebDAV Utilisé pour accéder à des fichiers via Internet, comme si il s'agissait de fichiers locaux. 29 30 Plan Rappels, précisions Problèmes, adresses, nommage, routage Client Serveur Ftp, telnet, ssh Réseau Courrier électronique / mnt Accès depuis la machine client: home armand foo.txt Protocole HTTP RSS Ce qu'il faut retenir -> cat /mnt/home/armand/foo.txt 31 32

Courrier électronique Courriel Message composé de Utilisateur émetteur Utilisateur récepteur Interface Utilisateur "Spoule" (spool) pour courrier sortant Boîte aux lettres pour courrier entrant Client (Transfert en arrière-plan) Serveur (acceptant le courrier) Réseau Réseau Entête avec un format prédéfini (RFC) Texte (peut aussi comprendre du [X]HTML) Pièces jointes (quelconques, format MIME) Expédié à destination de: armand@ufr-info-p7.jussieu.fr ufr-info-p7.jussieu.fr : ordinateur où doit se faire la remise du mail. En pratique, un nom de domaine, plutôt qu'une machine précise. armand : boîte aux lettres où déposer le mail. En pratique, le nom de "login" de l'utilisateur auquel est destiné le mail. 33 34 Extrait d'un source de courriel Extrait d'un source de courriel Return-Path: romainxxx@fournissseur.fr Received: from isis.lip6.fr (isis.lip6.fr [132.227.60.2]) by conejo.ufr-info-p7.jussieu.fr (8.8.3/8.6.9-bis) with ESMTP id PAA13520 for <armand@ufr-info-p7.jussieu.fr>; Tue, 20 Mar 2007 15:02:09 +0100 (MET) Received-Date: Tue, 20 Mar 2007 15:02:09 +0100 (MET) Received: from bay0-omc1-s36.bay0.fournisseur.com xxxx [65.54.246.108]) by isis.lip6.fr (8.13.5.20060614/lip6) with ESMTP id l2ke27ro019637 for <armand@ufr-info-p7.jussieu.fr>; Received: from mail pickup service by fournisseur.com with Microsoft SMTPSVC; Tue, 20 Mar 2007 07:01:41-0700 Message-ID: <BAY15- F14A4B7C1A04D07A0ADC74787750@phx.gbl> Received: from 81.194.16.132 by by15fd.bay15.fournisseur.msn.com with HTTP; Tue, 20 Mar 2007 14:01:37 GMTFrom: "romain" <romainxxx@fournisseur.fr> To: armand Subject: Au sujet du partiel Date: Tue, 20 Mar 2007 15:01:37 +0100 Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1; format=flowed Tue, 20 Mar 2007 15:02:08 +0100 (CET) 35 36

Courriel MIME Multipurpose Internet Mail Extensions Les mails peuvent: Être adressés à des "alias": Un nom pour un autre Des listes de diffusions (les vendeurs, les développeurs...) Être redirigés: Vers une autre machine Vers une autre boîte aux lettres En gardant ou pas une copie, localement Recevoir une réponse automatique "Désolé, je suis en vacances, jusqu'à la Saint-Glin-Glin, en cas d'urgence, adressez-vous à..." 37 Permet de transférer des courriels: Dans des jeux de caractères autres que US-ASCII Avec des pièces jointes non textuelles Composés de plusieurs parties Utilisation d'une entête: Content-Type: (valeur spécifique de ce qui suit) text/plain multipart/mixed etc Définit un "arbre" 38 Exemple de contenu "MIME" Courrier sortant Mime-Version: 1.0 (Apple Message framework v752.3) Content-Type: multipart/mixed; boundary=apple-mail- 12 683477088... --Apple-Mail-12--683477088 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=iso-8859-1; format=flowed Bonsoir =E0 tous,... --Apple-Mail-12--683477088 Content-Transfer-Encoding: base64 Content-Type: application/zip; x-unix-mode=0644; name=tprevisions.zip Les courriers sortants sont gérés par un serveur qui coopère avec des serveurs identiques pour acheminer le courrier à destination: Protocole SMTP Simple Mail Transfert Protocol De type "push" (par opposition à "pull") Nécessité de définir un "serveur SMTP" quand on configure un compte de courrier Outlook, Thunderbird ou autres 39 40

Courrier Entrant Plan Le courrier entrant est déposé dans une boîte aux lettres en attendant que l'utilisateur lise / relève ce courrier depuis son outil de lecture du courrier-. Dialogue régit par un des 2 protocoles: POP3 (Post Office Protocol) Ne permet pas de créer de dossiers (folders) sur le serveur. IMAP4 (Internet Message Access Protocol) Permet de créer des dossiers sur le serveur Rappels, précisions Problèmes, adresses, nommage, routage Ftp, telnet, ssh Courrier électronique Protocole HTTP RSS Ce qu'il faut retenir 41 42 HTTP HyperText Transfer Protocol Message HTTP Fonctionne au niveau applicatif Suppose l'existence d'un transport fiable, orienté connexion (TCP) Modèle de type requête / réponse Sans état: chaque requête est indépendante de la précédente Transfert bi-directionnel Négociation d'options Les messages HTTP sont composés de lignes de texte: 1 Ligne de requête / réponse Lignes optionnelles d'entête (0 ou plus) Header: valeur Une ligne vide Un corps de message (optionnel) Possibilité de "cache" 43 44

Requêtes HTTP Entêtes HTTP METHODE Path Version GET /~armand/index.html HTTP/1.1 Méthodes principales: GET: demande une ressource HEAD: idem, mais seule l'entête de la réponse est envoyée par le serveur au navigateur POST: envoie des données au serveur PUT: envoie une ressource du navigateur au serveur DELETE: demande au serveur de détruire une ressource OPTIONS: demande au serveur quelles options (auels services) il supporte. Host: identifie la machine cliente User-Agent: identifie le navigateur Last-Modified: date de modification de la ressource If-Modified-Since: requête conditionnelle Content-Length: la taille du corps du message HTTP Content-Type: Type Mime de la ressource Etc... HTTP/1.1 définit 46 "entêtes" 45 46 Réponses HTTP Erreurs HTTP/1.1 code chaîne 200 OK, 201 Created, 202 Accepted 1XX: informationnel 2XX: code de succès 301 Moved Permanently, 302 Found, 303 See Other... 3XX: redirection sur une autre URL 4XX: erreur de la part du client 5XX: erreur de la part du serveur + URI: Le serveur indique au navigateur de s'adresser à un autre URI 400 Bad Request 401Unauthorized, 403 Forbidden 404 Not Found 500 Internal Server Error 47 48

Plan RSS Rappels, précisions Problèmes, adresses, nommage, routage Ftp, telnet, ssh Courrier électronique Protocole HTTP RSS Ce qu'il faut retenir Permet de «publier» des mises à jour (news) Et de les consulter «facilement» Utile pour les sites fréquemment mis à jour Signification: Rich Site Summary (RSS 0.91) RDF Site Summary (RSS 0.9, 1.0, 1.1) Really Simple Syndication (RSS 2.0) http://www.rssboard.org/ RDF: Resource Description Framework (W3C) 49 50 RSS Structure d'un fichier RSS 50 % des sites RSS en RSS 0.91 25 % en RSS 1.0 25 % en 0.9x et RSS 2.0 RSS 0.91 et RSS 2.0 plus simples Le site http://www.pps.jussieu.fr/~armand utilise RSS 2.0 51 <?xml version="1.0" encoding="iso-8859-15"?> <rss version="2.0"> <channel> <title>annonces...internet et Outils</title> <link>http://www.pps.jussieu.fr/~armand/</link> <description>cours...par Francois Armand</description> <item> <!-- Voir plus loin --> </item> </channel> </rss> 52

Structure d'un fichier RSS Dans le fichier XHTML <item> <title>l1io2 - Huitième support de cours</title> <link>http://.../l1_io2/index.html#majio2160308</link> <description>le 8ème support... est disponible</description> </item> <item> <title>l1io2 - Neuvième support de cours</title> <link>http://.../l1_io2/index.html#majio2240308</link> <description>le 9ème support... est disponible</description> </item> <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html...l1/dtd/xhtml1-strict.dtd"> <html xmlns="http://www...html" xml:lang="fr" lang="fr"> <head> <link rel="alternate" title="io2" type="application/rss+xml" href="io2.rss.xml" /> </head> Fera apparaître une icône RSS dans la barre URL du navigateur On peut mettre plusieurs <link> sur des flux RSS différents On peut aussi mettre un lien sur une icône RSS dans la page 53 54 Aggrégateur: Thunderbird Aggrégateur: Firefox 55 56

Plan Ce qu'il faut retenir Rappels, précisions Problèmes, adresses, nommage, routage Ftp, telnet, ssh Courrier électronique Protocole HTTP RSS Ce qu'il faut retenir Réseau: problèmes et solutions Adresses IP, hétérogénéïté, nommage, routage Accès à des ordinateurs distants: telnet, ssh,... Accès à des fichiers distants: ftp, scp, rsync,... Courrier électronique protocoles smtp, pop, imap 57 58 Ce qu'il faut retenir Réseau: Plan Protocole HTTP Quelaues requêtes et réponses RSS: Comment créer un flux, Comment publier une annonce Ce que vous allez découvrir Courrier électronique Protocole HTTP Ce qu'il faut retenir Correction Partiel Règles de programmation (style) Quelques maladresses 59 60

Règles de programmation Indentation Buts: Améliorer la clarté et la lisibilité Réduire les sources d'erreur Améliorer la «portabilité» Réduire les coûts de maintenance Modifications de programmes: Utiliser les règles existantes (adaptation au style local) Programmes «neufs» Vos règles, ou des règles déjà établies 61 Indentation 2 ou 4 ou 8,... if (i!= 0) { echo $i; Aligner les accolades pour une meilleure lisibilité Facilite le contrôle visuel sur les fermetures Les systèmes Linux et BSD utilisent des indentations différentes 62 Aération Lignes trop longues Pas d'espace entre nom de fonction et ( strcmp($str1, $str2); Pas d'espace avec opérateurs unaires: $i++ Espaces avec opérateurs binaires $i!= $j Espaces après mots clés: Espaces entre paramètres, avant {, etc... if ($i == 0) { En général: Ligne limitée à 80 caractères (historique) Replier les lignes trop longues, Indentation spécifique if (strcmp($tab[$i], strtolower($nom)) {... 63 64

Noms Noms Des noms significatifs Noms composés: var1, var2... concis mais pas lisible LireFichierDesUtilisateurs() Anglais ou Français, ou... lire_fichier_des_utilisateurs() tailmsg En Français: taille de message lirefichierdesutilisateurs() FichierDesUtilisateursLire(); En Anglais: queue de message fichier_des_utilisateurs_lire() Constantes en général: utilisation de majuscules 65 66 Efficace? Logique? if (strlen($_request["nom"]) >= 2)){ echo "Au moins 2";... if ((strlen($_request["nom"]) < 2) (strlen($_request["nom"]) > 60)){ echo " Trop court ou Trop long ";... 67 $nom= $_REQUEST["nom"];... if (strlen($nom) < 2) { echo "Votre nom est trop court";... if (!isset($_request["nom"])) { echo "vous avez oublie..."; 68

Peut-on faire mieux? Est-ce bien ce que l'on veut? for ($i=0; $i < $max; $i++) { if (strlen($nom) < 2) { if (strcmp($tab[$i], echo "nom trop court"; strtolower($nom)) { elseif (strlen($prenom) < 2) { echo "Noms identiques"); echo "prenom trop court"; break; elseif (!strcmp($nom, $prenom)) { echo "nom et prenom identiques"; 69 70 Bonne idée? Peut-on simplifier? $liste=lirefichier(); $user=$nom.$prenom; if (!strcmp($user, $liste)) { echo "Utilisateur deja venu";... if (strchr($user, $liste)) { echo "Utilisateur deja venu"; $b1=true; $b2=true; if (empty($_request["nom"]) { $b1=false; echo "nom manquant"; if (empty($_request["prenom"]) { $b2=false; echo "prenom manquant"; if ($b1 && $b2) {... 71 72