Techno web serveur Flashcards

1
Q

Avantages du modèle client/serveur d’HTTP ?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

C’est quoi être sans état pour un serveur ?

A

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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Avantages d’être sans état ?

A
  • 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)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Inconvénients d’être sans états ?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

C’est quoi le cache ?

A

On garde une copie des données pour éviter de refaire une requête plus tard.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Avantages du cache ?

A
  • Gain d’efficacité
  • Moins de charge pour le serveur
  • Réduit la latence.
  • Gain de robustesse (Resistance aux pannes)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Quel est l’inconvhéniant du cache ?

A

Baisse de fiabilité (Pas de mise à jour en temps réel possible)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Que permet l’Interface Uniforme HTTP ?

A
  • Découplage service/ implémentation
  • Evolution indépendante
  • Evite d’écrire des méthodes spécifique à chaque application.
  • Utilisation du pipe and filter
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

C’est quoi le pipe and filter ?

A

Unités autonomes (les filtres) qui effectuent des transformations sur des informations transmises par un réseau de connexions (les tubes).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Code status HTTP ?

A

1XX Info
2XX Succès
3XX Redirection
4XX Erreur client
5XX Erreur serveur

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Quel est l’avantage d’un serveur applicatif plutôt que statique ?

A

Cela permet de créer une passerelle, de faire des calculs, manipuler la ressource, créer des portail.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

C’est quoi l’architecture 3-tiers ?

A

C’est une divisions du serveur applicatif en trois couche :
- Donné
- Traitement
- Présentation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

C’est quoi un CGI ?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Quel est le but du CGI ?

A

Mettre a disposition des programmes plutôt que des documents

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Quel sont les avantages du CGI ?

A
  • 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)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Quels sont les inconvénients du CGI ?

A
  • 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)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Comment une requête communique avec le CGI ?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

A quoi servent les bibliothéques CGI ?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

C’est quoi un langage embarqué ?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Quels avantages des langage embarqué ?

A
  • Pas de sous-processus
  • Accès direct aux variables (Php le fait pas ex)
  • Ajout de fonction utilitaire
  • Plus performant qu’un CGI
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Inconvenient des langages embarqués ?

A

Pas d’isolation
Dépendant du couple architecture/langage

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

C’est quoi un fastCGI ?

A

La requête est analysé par le serveur web et lui dit quel daemon (serveur fastCGI) contacter. Ils communique en fastCGI.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Quels avantages d’un fastCGI ?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

C’est quoi un Daemon ?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
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
25
Desavantage du serveur d'application ?
Très lourd
26
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)
27
Avantage d'une application autonome ?
- Répartition des charges (Reverse proxy) - Approche SOA
28
Que veut dire SOA ?
Service Oriented Architecture
29
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é
30
Que permet de faire le coookie ?
Cela permet au client de maintenir l'état et non le serveur pour respecter HTTP
31
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
32
Exemple d'utilisation d'un session ?
- Authentification - Préférence - Panier de commande
33
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
34
Solution aux problèmes des sessions ? (A passer)
idk?????
35
C'est quoi un cookie tiers ?
- Cookie dans la réponse d'un serveur tier (pub, image)
36
Quels sont les problèmes de sécurité des cookies tiers ?
- Dangereux pour la vie privée (Blocage/suppression) - Autorité globale (Si authentification) = CSRF (Cross-site request forgery) (Faire une requête à la place du client et non voulu par le client) - Données en clair : Session hijacking, replay (Donc on ajoute un horodatage + chiffrement + signature) - Faible intégrité
37
C'est quoi une CSRF ?
- Cross-site request forgery - Faire une requête à la place du client et non voulu par le client
38
C'est quoi le modèle MVC ?
- Modèle : Données et règle métier - Vue : Présentation et formatage - Contrôleur : Interaction et connexion Modèle/Vue
39
C'est quoi le routage ?
Mapping (methode, url) au Controleur Configuration tel méthode sur tel url je vais exécuter tel contrôleur
40
C'est quoi un DAO ?
Data Access Object qui encapsule l'accès aux données BDD
41
C'est quoi un micro-framework/framework ?
Fournis la manière de recoller les morceaux entre les Vue/Controle/Modèle Mini = fournis le strict minimum
42
C'est quoi un controleur ?
- Le contrôleur gère l'orchestration du système - **Capture les exceptions et retourne un code** d'erreur HTTP au client si il y a eu un problème. --- - A partir de l'url / en-tête il choisit le modèle qu'il faut instancier à l'aide du DAO - En fonction du verbe il choisit l'opération à effectuer Il va extraire les données du modèles pour les donner à la vue pour découpler les deux - A partir de l'url / en-tête il va choisir la vue et générer une réponse)
43
Comment le framework regroupe le controleur/modèle/vue ?
- Du code avec des appels explicite d'API / Métadonnées (annotation) - Via des fichier de configuration - Ou des conventions dans les nommages
44
Comment fonctionne le modèle de donné ?
- C'est lui qui se charge des règles métiers - Il est chargé de l'accès aux données et de leur persistance - Pas de dépendance avec le contrôleur - Pas de dépendance/notion avec la vue
45
C'est quoi l'Impedance Mismatch ?
Différence de concepts entre modèles objet et relationnel Objet | Relationnel (BDD) Référence | Type scalaire Impératif |Déclaratif Identité | Egalite
46
Comment contrer l'impedance Mismatch ?
Pour contrer ce mismatch on va utiliser un DAO (Data Access Object) afin d'encapsuler l'accès aux données pour que notre modèle n'ait pas en s'en soucier.
47
C'est quoi le DTO ?
Le Data Transfert Object encapsule les données qui proviennent de la base de donnée, c'est une structure pure (Boite d'attributs). Il donc utilisé pour les transferts.
48
C'est quoi l'ORM ? Quels sont les cas difficile ?
L'Object-Relational Mapper permet déviter d'écrire le DAO (Eviter d'écrire du SQL) Il suffit de configurer le framework Cas difficile : - Many to many (Jointure) - Synchronisation
49
C'est quoi une template ? Que fait il ?
C'est un moteur de formatage / printf sous stéroïde - Génération de textes - Il agit comme un patron (Modèle) qui va fournir la forme générale - Le moteur de template prend le patron + les données et génère le résultat
50
Différence entre template Illimité/Limité
Illimité : - Langage complet (Hôte) - Traitement quelconque - ❌Peut modifier le modèle Limité : - Langage spécifique - Peut uniquement lire des valeurs
51
Quels sont les modes de fonctionnement des tempalte ?
Pull (Donné a la demande) : Vue > Données Push (Donné a priori) : Contrôleur > Template
52
C'est quoi une template callback ? Quels sont les inconvenient ?
- Mélange code/template (Donc on a du changement de contexte) - Appel de code natif - Mode Pull - ❌Mélange logique et présentation - ❌Plusieurs représentation = Duplication
53
C'est quoi une template pipeline ? C'est quoi les avantages ?
- Patron externe - Interprété (Pas besoin de recompiler si on recompile le fichier de données) - Mode Push - Langage spécifique - ✅Sépare logique et présentation - ✅Affichage cohérent même sans exécuter la logique métier - ✅On ne duplique que la présentation
54
C'est quoi MVCR (Renderer) ?
Model Vue Controller Renderer toString sous stéroide Conversions de valeurs (Date, nombre à virgule) en chaine de caractère.
55
C'est quoi l'interface Uniforme HTTP ?
Ensemble des "verbes" dans les requêtes et code retour.
56
Qui utilise le renderer ?
- Le contrôleur pour fournir à la vue que des chaines de caractères - Le moteur de template directement
57
C'est quoi l'internationalisation ? On le fait combien de fois ?
C'est le fait de rendre le code adaptable = Tout doit être adaptable en fonction de la locale. C'est ce que fait le renderer (Une fois pour toute)
58
C'est quoi la localisation ? On le fais combien de fois ?
C'est le fait de traduire le code, les locales, faire des styles css (différents pour chaque langue.)
59
Que défini la locale ?
Cela défini : - Langue - Sans d'écriture - Ordre alphabétique - Formatages des nombres - Formatages des dates - Formatage des monnaies - Règles typographiques
60
C'est quoi la négociation HTTP ?
Le client donne une liste de préférence et le serveur va donner une représentation de la ressource qui correspond le mieux.
61
C'est quoi un caractère ?
C'est un élement abstrait qui "décrit un symbole"
62
C'est quoi un jeu de caractères / Charmap ?
Bijection entre caractère et code numérique
63
C'est quoi un encodage ? Donner un exemple
Représentation du code d'un jeu de caractère (nb de bits..) Exemple : UTF-8
64
C'est quoi une fonte ?
Lien entre caractère et glyphe
65
C'est quoi un glyphe ?
Dessin d'un caractères = Représentation d'un caractère dans une fonte
66
C'est quoi le BOM ?
Byte order mark permet de savoir où est le bit de poids fort (Petit/gros boutiste) pour UTF-16/32
67
Quels sont les 3 parties de gestions de l'accès à une ressource ?
- Identification - Authentification - Autorisation
68
C'est quoi l'identification ?
- Associer une identité / un identifiant à l'utilisateur - Pas forcément un compte - Pas forcément une identité physique
69
Donner des exemples d'identification
- Recherches récentes > Recommandations - Caddie - Statistiques comportementales - Corrélation de requêtes
70
Comment on peut implémenter une identification ?
- Une en-tête - Un cookie - Implicite (Comportemental)
71
C'est quoi une authentification ?
C'est le fait de garantir l'identité
72
Donner des exemples d'authentification
- Mot de passe (HTTP, sessions) - Jeton
73
C'est quoi une autorisation ? Qu'utilise t'elle ?
Défini ce que l’utilisateur peut faire. Elle utilise les ACL
74
C'est quoi un ACL ?
(Access control list) qui définit ce que chaque utilisateur à le droit de faire
75
Quels sont les deux moyen pour faire remonter le mot de passe au serveur ?
- Formulaire et sessions - HTTP Natif
76
Points positif/négatif des formulaire et sessions pour faire remonter le mot de passe au serveur ?
- ✅ Formulaire personnalisé - ✅ Page oubli / création - 😕 Authentification persistante - ❌ Automatisation - ❌ Cookie (On peut voler le cookie) - ❌ Le mdp passe en clair (TLS) - ❌ Vol de session - ❌ **Créer un état sur le serveur**
77
Points positif/négatif de l'HTTP natif pour faire remonter le mot de passe au serveur ?
- ✅ Standard - ✅ générique - ✅ Automatisation - ✅ Sans état - 😕 Oubli / Création (Page 401/403 personnalisé) - ❌Formulaire natif pas beau (Donc pas ouf pour une SPA)
78
Quels sont les différents type d'authentification en HTTP natif ?
- Basic : mdp en clair (Même jeton tout le temps) - Digest : mdp chiffré (Jeton à usage unique en md5 (Ne pose pas problème ici car le jeton est unique par défaut)) - Bearer : Opaque
79
C'est quoi un jeton/token ?
C'est une suite de caractère unique qui permet d'authentifier l'utilisateur
80
Si on créer son propre système pour la connexion on viole quels principe ?
- ❌ Don't reinvent the wheel - ❌ Don't repeat yourself - ❌ Intégration, portail, SSO (Single Sign-On) - ❌ SécuritéS
81
Comment doit on stocker les mots de passe ?
- Le mdp doit être - Salé / Poivré - Chaîne quelconque (Unique par utilisateur et par service) - Appli ou utilisateur - Stockée à part - Concaténé au mdp avant de le haché - Haché - "Unique" - **Non reversible** - ❌ MD5 - ❌ SHA1 - ✅ SHA256
82
C'est quoi TLS ?
- Historiquement SSL (Secure Socket Layer) - TLS (Transport Layer Security) (Entre HTTP et TCP) - Permet de faire du https - Indépendant de l'algo - ❌Pas d'intermédiaire (Mort pour les caches partagé)
83
C'est quoi un chiffrement symétrique ?
Principe : 2 clés - Clé publique : Peut être divulguée sert à coder le message - Clé privée : Gardée secrète (mot de passe) set à décoder le message Pour chiffrer un message: On chiffre avec la clef publique de l'autre et l'autre déchiffre avec sa clef privé
84
C'est quoi les but du chiffrement symérique ?
But : - Authentification du serveur > **Le serveur qui envoie la réponse a bien le certificat du nom de domaine.** - Chiffrement des communications - Intégrité des données - Authentification du client
85
C'est quoi une signature ?
Signature : Garantir l'expéditeur et contenu (Intégrité et non répudiation)
86
Comment fonctionne une signature ?
On hash et on chiffre avec sa clef privé puis on l'envoie. L'autre déchiffre avec la clef publique de l'expéditeur.
87
C'est quoi un chiffrement symetrique ?
- Plus rapide que l’asymétrique - Clé secrète qui chiffre et déchiffre
88
C'est quoi un certificat ?
- Clé publique - Méta-données - Signé par une CA (Certification authority) PKI (Private Key Infrastructure)
89
C'est quoi les desaventage des certificats ?
- 😕 Certificats auto-signés - ❌ Certaines CA fournissent à d'autre gens (NSA) des certificats root (Racine)