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
Q

C’est quoi un serveur d’applications ?

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

Desavantage du serveur d’application ?

A

Très lourd

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

C’est quoi une application autonome ?

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

Avantage d’une application autonome ?

A
  • Répartition des charges (Reverse proxy)
  • Approche SOA
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

Que veut dire SOA ?

A

Service Oriented Architecture

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

C’est quoi un cookie ?

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

Que permet de faire le coookie ?

A

Cela permet au client de maintenir l’état et non le serveur pour respecter HTTP

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

C’est quoi une session ?

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

Exemple d’utilisation d’un session ?

A
  • Authentification
  • Préférence
  • Panier de commande
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q

Quels sont les problèmes des sessions ?

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

Solution aux problèmes des sessions ? (A passer)

A

idk?????

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

C’est quoi un cookie tiers ?

A
  • Cookie dans la réponse d’un serveur tier (pub, image)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
36
Q

Quels sont les problèmes de sécurité des cookies tiers ?

A
  • 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
Q

C’est quoi une CSRF ?

A
  • Cross-site request forgery
  • Faire une requête à la place du client et non voulu par le client
38
Q

C’est quoi le modèle MVC ?

A
  • Modèle : Données et règle métier
  • Vue : Présentation et formatage
  • Contrôleur : Interaction et connexion Modèle/Vue
39
Q

C’est quoi le routage ?

A

Mapping (methode, url) au Controleur

Configuration tel méthode sur tel url je vais exécuter tel contrôleur

40
Q

C’est quoi un DAO ?

A

Data Access Object qui encapsule l’accès aux données BDD

41
Q

C’est quoi un micro-framework/framework ?

A

Fournis la manière de recoller les morceaux entre les Vue/Controle/Modèle

Mini = fournis le strict minimum

42
Q

C’est quoi un controleur ?

A
  • 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
Q

Comment le framework regroupe le controleur/modèle/vue ?

A
  • Du code avec des appels explicite d’API / Métadonnées (annotation)
  • Via des fichier de configuration
  • Ou des conventions dans les nommages
44
Q

Comment fonctionne le modèle de donné ?

A
  • 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
Q

C’est quoi l’Impedance Mismatch ?

A

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
Q

Comment contrer l’impedance Mismatch ?

A

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
Q

C’est quoi le DTO ?

A

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
Q

C’est quoi l’ORM ? Quels sont les cas difficile ?

A

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
Q

C’est quoi une template ? Que fait il ?

A

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
Q

Différence entre template Illimité/Limité

A

Illimité :
- Langage complet (Hôte)
- Traitement quelconque
- ❌Peut modifier le modèle

Limité :
- Langage spécifique
- Peut uniquement lire des valeurs

51
Q

Quels sont les modes de fonctionnement des tempalte ?

A

Pull (Donné a la demande) : Vue > Données
Push (Donné a priori) : Contrôleur > Template

52
Q

C’est quoi une template callback ? Quels sont les inconvenient ?

A
  • 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
Q

C’est quoi une template pipeline ? C’est quoi les avantages ?

A
  • 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
Q

C’est quoi MVCR (Renderer) ?

A

Model Vue Controller Renderer

toString sous stéroide

Conversions de valeurs (Date, nombre à virgule) en chaine de caractère.

55
Q

C’est quoi l’interface Uniforme HTTP ?

A

Ensemble des “verbes” dans les requêtes et code retour.

56
Q

Qui utilise le renderer ?

A
  • Le contrôleur pour fournir à la vue que des chaines de caractères
  • Le moteur de template directement
57
Q

C’est quoi l’internationalisation ? On le fait combien de fois ?

A

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
Q

C’est quoi la localisation ? On le fais combien de fois ?

A

C’est le fait de traduire le code, les locales, faire des styles css (différents pour chaque langue.)

59
Q

Que défini la locale ?

A

Cela défini :
- Langue
- Sans d’écriture
- Ordre alphabétique
- Formatages des nombres
- Formatages des dates
- Formatage des monnaies
- Règles typographiques

60
Q

C’est quoi la négociation HTTP ?

A

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
Q

C’est quoi un caractère ?

A

C’est un élement abstrait qui “décrit un symbole”

62
Q

C’est quoi un jeu de caractères / Charmap ?

A

Bijection entre caractère et code numérique

63
Q

C’est quoi un encodage ? Donner un exemple

A

Représentation du code d’un jeu de caractère (nb de bits..)

Exemple : UTF-8

64
Q

C’est quoi une fonte ?

A

Lien entre caractère et glyphe

65
Q

C’est quoi un glyphe ?

A

Dessin d’un caractères

Représentation d’un caractère dans une fonte

66
Q

C’est quoi le BOM ?

A

Byte order mark permet de savoir où est le bit de poids fort (Petit/gros boutiste) pour UTF-16/32

67
Q

Quels sont les 3 parties de gestions de l’accès à une ressource ?

A
  • Identification
  • Authentification
  • Autorisation
68
Q

C’est quoi l’identification ?

A
  • Associer une identité / un identifiant à l’utilisateur
  • Pas forcément un compte
  • Pas forcément une identité physique
69
Q

Donner des exemples d’identification

A
  • Recherches récentes > Recommandations
  • Caddie
  • Statistiques comportementales
  • Corrélation de requêtes
70
Q

Comment on peut implémenter une identification ?

A
  • Une en-tête
  • Un cookie
  • Implicite (Comportemental)
71
Q

C’est quoi une authentification ?

A

C’est le fait de garantir l’identité

72
Q

Donner des exemples d’authentification

A
  • Mot de passe (HTTP, sessions)
  • Jeton
73
Q

C’est quoi une autorisation ? Qu’utilise t’elle ?

A

Défini ce que l’utilisateur peut faire. Elle utilise les ACL

74
Q

C’est quoi un ACL ?

A

(Access control list) qui définit ce que chaque utilisateur à le droit de faire

75
Q

Quels sont les deux moyen pour faire remonter le mot de passe au serveur ?

A
  • Formulaire et sessions
  • HTTP Natif
76
Q

Points positif/négatif des formulaire et sessions pour faire remonter le mot de passe au serveur ?

A
  • ✅ 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
Q

Points positif/négatif de l’HTTP natif pour faire remonter le mot de passe au serveur ?

A
  • ✅ 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
Q

Quels sont les différents type d’authentification en HTTP natif ?

A
  • 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
Q

C’est quoi un jeton/token ?

A

C’est une suite de caractère unique qui permet d’authentifier l’utilisateur

80
Q

Si on créer son propre système pour la connexion on viole quels principe ?

A
  • ❌ Don’t reinvent the wheel
  • ❌ Don’t repeat yourself
  • ❌ Intégration, portail, SSO (Single Sign-On)
  • ❌ SécuritéS
81
Q

Comment doit on stocker les mots de passe ?

A
  • 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
Q

C’est quoi TLS ?

A
  • 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
Q

C’est quoi un chiffrement symétrique ?

A

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
Q

C’est quoi les but du chiffrement symérique ?

A

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
Q

C’est quoi une signature ?

A

Signature : Garantir l’expéditeur et contenu (Intégrité et non répudiation)

86
Q

Comment fonctionne une signature ?

A

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
Q

C’est quoi un chiffrement symetrique ?

A
  • Plus rapide que l’asymétrique
  • Clé secrète qui chiffre et déchiffre
88
Q

C’est quoi un certificat ?

A
  • Clé publique
  • Méta-données
  • Signé par une CA (Certification authority)

PKI (Private Key Infrastructure)

89
Q

C’est quoi les desaventage des certificats ?

A
  • 😕 Certificats auto-signés
  • ❌ Certaines CA fournissent à d’autre gens (NSA) des certificats root (Racine)