Techno web serveur - Annale Flashcards

1
Q

C’est quoi une ressource ?

A

Une ressource est un éléments abstrait d’information adressable.

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

Que sont les cookies ? Comment-fonctionnent-ils ? Quels problèmes posent-ils ?

A

Quoi ?
Les cookie sont un couple clef valeur (+ métadata + durée de validité) envoyé par le serveur au client.
Opaque pour le client
Spécifique à l’application

Comment ?
Le client va ensuite le stocker et le renvoyer à chaque requête au serveur.

Problèmes ?
Les cookies créé un état coté client, ce qui n’est pas souhaitable dans le contexte d’HTTP :
- Problème pour les intermédiaire
- Mauvaise cachabilité (Donc problème de performance et répétition d’information)
- Reprise après panne plus complexe
- Evolution plus nécessairement indépendante

De plus les cookies tiers (Cookie déposé par un autre domaine que celui que le client voulait consuler à la base) portent atteinte à la vie privé, sont soumis au session hijacking et peuvent amener à faire des requêtes non voulue (Cross Site Request Forgery)

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

Expliquer le fonctionnement des sessions serveur

A

Les sessions sont un ensemble de clef, valeur stocké coté serveur et identifié par un identifiant. Cet identifiant est envoyé sous forme de cookie au client.

Ressource non référençable (Pas d’url) donc non manipulable

Cela créer un état coté serveur.

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

Donner les cinq catégories de code status HTTP et leur signification

A

1XX - Information
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
5
Q

Quelles méthodes HTTP sont idempotentes ? Sans effet de bord ? Qu’est-ce que cela signifie ? En quoi est-ce important ?

A

Sans effet de bord et indempotentes:
- GET
- HEAD
Indempotentes :
- PUT
- DELETE

Sans effet de bord = Pas de modification de la ressource
Bien car on peut les mettre en cache

Indempotentes = Faire la requête n fois = faire la requête 1 fois.
Bien car après une erreur on peut juste renvoyer la requête sans refaire de vérification

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

Donnez les différentes méthodes (ou verbes) du protocole HTTP et leur sémantique

A

GET - Récupération d’une ressource
HEAD - Récupération des en-têtes
POST - Envoi d’information
DELETE - Supression d’une ressource
PUT - Maj (écrasement) d’une ressource
PATCH - Maj incrémentale d’une ressource

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

Quelles sont les propriétés principales du protocole HTTP ?

A

Client/Serveur Sans états ni autorité globale

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

Qu’implique le fait pour HTTP d’être un protocole sans état ? En quoi est-ce souhaitable ?

A

Cela veut dire que chaque requête ne dépend ni des précédentes et ne détermine pas les suivantes. Une fois sont traitement terminée elle est oubliée.

- Pas de contexte client sur le serveur

- Pas obligé de maintenir une connexion avec le serveur

Cela est souhaitable car on obtient :
- L’indépendance des intermédiaire
- Implémentation plus simple
- Charge moins lourde pour le serveur
- Cachabilité
- Visibilité
- Evolutivité

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

Quel est le principe de fonctionnement des CGI ? Donner des alternatives et leur fonctionnement.

A

La Common Gateway Interface permet de définir comment une requête intéragi avec un programme sur un serveur.
Le CGI va créer un sous-processus, définir des variables d’environnement puis passer le corps de la requête dans la stdin d’un programme exécutable indépendant de la technologie du serveur. Ce dernier va devoir renvoyer dans stdout la reponse HTTP.

Alternative :
fastCGI - Même chose mais pas de sous processus, on fait tourner l’exécutable sur des Daemon qui sont allumé en permanance

Language embarqué - Même chose mais sans sous processus et on ne garde que le programme compiplé plutôt que l’exécutable

Serveur d’application - Fusions entre un fastCGI et un Language embarqué, on a des Daemon ET on est dépendant du couple (API, Language)

Application embarqué - Comme un serveur d’application mais orienté micro-service (SOA) et plus leger

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

Décrivez les différents élements du modèle MVC, leurs rôles et les tâches effectuées par ceux-ci.

A

Le modèle “Modèle Vue Controlleur” répartis les taches d’un serveur applicatif en trois couches :
Modèle - S’occupe des données et des règles métiers
Vue - S’occupe de la représentation des ressources
Controlleur - S’occupe de l’orchetrastion du système

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

Qu’est-ce que l’encodage d’un document ? Quels problèmes peuvent se poser dans la gestion de celui-ci ?

A

Représentation du code d’un jeu de caractère

L’encodage d’un document défini comment la valeur numérique d’un caractère défini par le charmap est représenté informatiquement. Si il est mal géré, le document peut être illisible car les caractères affiché n’aurons rien à voir avec ceux prévu. Heureusement, beaucoup d’encodage se basent sur l’ASCII et représente de la même manière ces caractères ce qui peut permettre de déchiffrer un peu la page.

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

Que sont I18N et L10N ? Quels sont les problèmes posés et comment le mettre en oeuvre ?

A

L’internationalisation et la localisation sont le fait de rendre un site web accessible partout dans le monde, en fonction des langues et du pays du client.
**C’est le fait de rendre le code adaptable **

Selon la langue et la culture, le sens de lecture, les cotonations des couleurs (Vert = positif, rouge = négatif), l’ordre alphabéthique, l’alphabet ne sont pas les mêmes et nécessite de fournir des verions différentes en fonction d’où vient le client.

Pour ce faire, les navigateurs utilise un en-tête spécial pour indiquer quel couple (langue, pays) ils préférents. En fonction de ces préférences, le serveur va retourner une version localisé du site (Pour y répondre au mieux).

Localisation : **C’est le fait de traduire le code, les locales, faire des styles css **

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

Quelle est la tache du renderer et pourquoi est-il nécessaire ?

A

Le renderer se positionne entre la vue et le controlleur. Son objectif est d’uniformiser les données reçue en simple chaine de caractère pour la vue. En effet, les nombres, les monaies, les dates et autres peuvent se représenter différement en fonction de la locale par exemple.

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

Qu’est-ce qu’un système de template ? Quel est le but d’un tel système ?

A

Un système de template est un patron qui permet de définir la structure général d’un document (Une sorte de texte à trou que le serveur va remplir avec les données du modèle). Avec un tel système, cela permet aux équipes responsable de l’apparance du site web de ne pas se soucier du fonctionnement tout en permettant d’avoir un affichage cohérent même sans les données.

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

Expliquez le fonctionnement de l’authentification via le formulaire et cookie de session. Donnez les avantages et inconvénients.

A

Le client se connecte au serveur

Le serveur remarque que le client n’a pas de cookie d’authentification et redirige le client vers une page d’authentification avec l’url la page d’où il vient en querystring ou dans un champ caché du formulaire de connexion

Le client se connecte via le formulaire

Le serveur vérifie si le couple login/mdp est valide, si oui il redirige le client vers la page qu’il voulait originellement consulté et lui donne un cookie d’authentification de sa session.

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

Quels sont les différents types de composants ou d’acteur du web (Au niveau infrastructure) Expliquez brièvement leurs rôles.

A

Les différents composants sont :

Les clients (Consulte les serveur)
- Navigateur
- Scraper et Crawler

Les serveur (Tourne en permenance en attendant les requêtes des clients)
- Statique
- cdn
- Applicatif
- CGI
- fastCGI
- Language embarqué
- Serveur d’application
- Application autonome

Intermédiaire (Invisible, relaye la requête)
- Proxy (Cache mutualisé, masquage de source)
- Reverse Proxy (Repartition de charge)

17
Q

Quel est l’intérêt de l’architecture MVC ?

A

Permet de décomposer un serveur applicatif complexe en plusieurs couche moins complexe et relativement isolé.

18
Q

Qu’est-ce qu’un framework web ?

A

Un framework web fournis des outils pour “recoller les morceaux” entre la Vue le modèle et le controleur.
Soit par :
- Des appels d’api dirrect (Décorateur, fonction)
- Des conventions de nomages
- Des fichiers de configuration

19
Q

Quelle règle de l’architecture web les sessions violent-elles ? Pourquoi-elle est importante ?

A

Les sessions web créer un état coté serveur. Le fait qu’un serveur doit être sans état est important car cela permet :
- De la répartition de charge
- De la reprise après panne
- De l’indépendance des intermédiaires

20
Q

Qu’est-ce qu’une URL ? Quelle en est la structure générale ?

A

Une Uniform Ressource Locator est une chaine de caractère qui permet de référencer une ressource.

http:// example.com :80 /wow ?a=1&b=2
Protocole | Domaine | Port | Chemin | Query string

21
Q

Pourquoi la méthode PUT ne doit-elle pas être utilisé pour créer une ressource ?

A

Problème sémentique car il faut utiliser put pour faire une modification (écrasante).

De plus le PUT doit être indempotant alors que si on créer une ressource cette propriété n’est pas forcément respecté. A l’image du POST qui doit lui être preféré.

22
Q

Les codes de statut HTTP suivent un certain schéma. Quel en est l’intérêt ?

A

Les code de status HTTP sont regroupé par centaine. Cela a pour but de permettre de savoir dans quelle catégorie est le code retour. Ainsi même sans être à jour, le client peut comprendre un minimum le sémentique. De plus, cela permet d’ajouter des code retours sans devoir décaler tous les autres codes.

23
Q

Donner la structure générale d’une requête et d’une réponse HTTP

A

Requête:
(Verbe) (Chemin) (protocole)
[en-tête] : [Valeur]
(Ligne vide)
[Corps]

Reponse:
(Protocole) (Code) (Message)
[en-tête] : [Valeur]
(Ligne vide)
[Corps]

24
Q

Donnez les différentes manières d’effectuer une authentification dans une application Web. Expliquez leur fonctionnement et les avantages et inconvéniens de chacune.

A

Formulaire et cookie de session

HTTP Natif

25
Q

Expliquez le fonctionnement de l’authentification par HTTP (Basic et Digest) Donnez les avantages et inconvénients.

A

???

26
Q

Quels sont les précautions à prendre lors du stockage des mots de passe ? Comment se passer de cette gestion au niveau de l’application Web ?

A

Hashé et salé

27
Q

Qu’est-ce que le BOM dans le contexte d’unicode ?

A

Le Bytes Order Mark indique si l’encodage est en mode petit/gros boutiste (small/big endian) c’est à dire où ce situe le bit de poids fort.

28
Q

Que sont un DAO et un ORM ? A quel niveau de l’architecture se situent-ils ?

A

Le Document Access Object et l’Object Relational Mapper permettent d’encapsuler l’accès à la base de donné. L’ORM permet d’éviter d’écrire des requêtes SQL en passant par des DAO.

Ils se situent au niveau du modèle de donné.

29
Q

Donner les différentes manières d’exécuter du code en réponse à une requête HTTP.

A

CGI ect.. (Même question qu’avant)

30
Q

Comment fonctionne un ORM ? Quels sont les différents aspect pris en compte et en quoi est-ce utile ?

A

Object Relational Mapper. Permet d’éviter d’écrire du SQL en faisant des DAO. Permet potentiellement de gagner du temps.

31
Q

Donner les différents type de système de template.

A

Le Pull (A la demande) Template demande au controlleur
Le Push (A priori) ???