Techno web serveur Flashcards
Avantages du modèle client/serveur d’HTTP ?
- Permet de séparer les responsabilités
- Si le serveur fait beaucoup de traitement cela facilite la portabilité de l’interface.
- Facilite le passage à l’échelle du serveur
- Découplage fort
- Evolution indépendante
C’est quoi être sans état pour un serveur ?
Entre deux requête le serveur oublie la précédente. Une requête ne dépends donc pas des précédentes.
- Pas de contexte client sur le serveur
- Pas obligé de maintenir une connexion avec le serveur
Avantages d’être sans état ?
- Visibilité : Facile de monitorer les site (Il suffit de logger les urls)
- Fiabilité : Reprise après panne plus simple
- Évolutivité : Passage à l’échelle
- Moins gourmand pour le serveur
- Implémentation serveur plus simple
- Possibilité d’avoir des intermédiaire (cache, proxy)
Inconvénients d’être sans états ?
- Perte de consistance : Pas de moyen de forcer l’ordre des requêtes. Le serveur ne peut pas contrôler le comportement client
- Performances : Répétitions d’information
C’est quoi le cache ?
On garde une copie des données pour éviter de refaire une requête plus tard.
Avantages du cache ?
- Gain d’efficacité
- Moins de charge pour le serveur
- Réduit la latence.
- Gain de robustesse (Resistance aux pannes)
Quel est l’inconvhéniant du cache ?
Baisse de fiabilité (Pas de mise à jour en temps réel possible)
Que permet l’Interface Uniforme HTTP ?
- Découplage service/ implémentation
- Evolution indépendante
- Evite d’écrire des méthodes spécifique à chaque application.
- Utilisation du pipe and filter
C’est quoi le pipe and filter ?
Unités autonomes (les filtres) qui effectuent des transformations sur des informations transmises par un réseau de connexions (les tubes).
Code status HTTP ?
1XX Info
2XX Succès
3XX Redirection
4XX Erreur client
5XX Erreur serveur
Quel est l’avantage d’un serveur applicatif plutôt que statique ?
Cela permet de créer une passerelle, de faire des calculs, manipuler la ressource, créer des portail.
C’est quoi l’architecture 3-tiers ?
C’est une divisions du serveur applicatif en trois couche :
- Donné
- Traitement
- Présentation
C’est quoi un CGI ?
Common Gateway Interface est une spécification standardisée qui dit comment le serveur web va pouvoir parler avec un programme pour faire un traitement.
Quel est le but du CGI ?
Mettre a disposition des programmes plutôt que des documents
Quel sont les avantages du CGI ?
- Executable normal = Indépendant d’une techno
- Autonome (Pas besoin d’une grosse infrastructure)
- Déploiement (Juste copier coller l’executable au bon endroit)
- Gestion des droits (suexec) (Exécuter le CGI avec les droits de l’utilisateur qui lance la requête)
- Isolation (Chaque requête s’exécute dans un environnement d’exécution différent) (Chaque processus de CGI n’affecte pas les autre processus CGI / le serveur web)
Quels sont les inconvénients du CGI ?
- Un sous processus par requête = Coûteux, limité par le nombre de PID possible
- Pas d’état partagé entre les requêtes (C’est cool pour HTTP, mais pas cool pour une connexion BD ou un cache interne)
Comment une requête communique avec le CGI ?
- Le serveur va définir un ensemble de variable d’environement qui seront traité par le programme
- Le corps de la requête est envoyé dans stdin
- Le programme doit écrire la réponse HTTP dans stdout
A quoi servent les bibliothéques CGI ?
- Permet de faciliter l’accès au variable d’environnement
- Parsing de la query string et des formulaires
- Facilite la lecture de stdin
- Gestion plus rigoureuse des codes d’erreur
- Gestion des en-ête plus facile (Analyse d’un objet date par exemple) encodage des valeurs
C’est quoi un langage embarqué ?
C’est comme un CGI mais qui permet d’éviter de relancer l’interpeteur à chaque requête on garde juste la version compilé sur le serveur.
Quels avantages des langage embarqué ?
- Pas de sous-processus
- Accès direct aux variables (Php le fait pas ex)
- Ajout de fonction utilitaire
- Plus performant qu’un CGI
Inconvenient des langages embarqués ?
Pas d’isolation
Dépendant du couple architecture/langage
C’est quoi un fastCGI ?
La requête est analysé par le serveur web et lui dit quel daemon (serveur fastCGI) contacter. Ils communique en fastCGI.
Quels avantages d’un fastCGI ?
- Pas de sous-processus (Le Daemon tourne déjà)
- Isolation > Sécurité
- Réutilisation (Cache, connexions BD)
- Répartition de charge
- Indépendant du language et du serveur
C’est quoi un Daemon ?
Processus qui s’exécute en arrière-plan plutôt que sous le contrôle direct d’un utilisateur / déclanché par une requête.
C’est quoi un serveur d’applications ?
- C’est entre le fastCGI et le langage embarqué
- Comme le fastCGI il y a des Daemon qui tourne sur un autre serveur
- La communication entre les Daemon est faites avec des objets reponses/requêtes
- Serveur qui fait tourner pleins d’applications en même temps
- Spécifique à un couple (langage,API) > Accès facilité aux paramètres
Desavantage du serveur d’application ?
Très lourd
C’est quoi une application autonome ?
- Comme un serveur d’application mais plus léger
- Programme autonome qui embarque le système
- Permet de faire plein de micro-services (Dev par des équipes différentes à des moments différentes)
Avantage d’une application autonome ?
- Répartition des charges (Reverse proxy)
- Approche SOA
Que veut dire SOA ?
Service Oriented Architecture
C’est quoi un cookie ?
- Information envoyé par le serveur (clé, valeur) + méta
- Spécifique à l’application
- Stocké sur le client
- Renvoyé à chaque requête par le client
- Opaque pour le client
- A une durée de validité
Que permet de faire le coookie ?
Cela permet au client de maintenir l’état et non le serveur pour respecter HTTP
C’est quoi une session ?
- Structure de donnée (Identifiant => Ensemble de Clef/valeur)
- Stocké coté serveur
- On utilise un cookie qui stocke l’identifiant de session de l’agent
- Ressource non référençable (Pas d’url) donc non manipulable
Exemple d’utilisation d’un session ?
- Authentification
- Préférence
- Panier de commande
Quels sont les problèmes des sessions ?
- Etat coté serveur
- Donc les intermédiaires ne peuvent pas traiter la requête
- Donc le cache ne marche pas
- Perte de la répartition de charge
- On perd la reprise sur panne
Solution aux problèmes des sessions ? (A passer)
idk?????
C’est quoi un cookie tiers ?
- Cookie dans la réponse d’un serveur tier (pub, image)