Techno web serveur - Annale Flashcards
C’est quoi une ressource ?
Une ressource est un éléments abstrait d’information adressable.
Que sont les cookies ? Comment-fonctionnent-ils ? Quels problèmes posent-ils ?
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)
Expliquer le fonctionnement des sessions serveur
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.
Donner les cinq catégories de code status HTTP et leur signification
1XX - Information
2XX - Succès
3XX - Redirection
4XX - Erreur Client
5XX- Erreur Serveur
Quelles méthodes HTTP sont idempotentes ? Sans effet de bord ? Qu’est-ce que cela signifie ? En quoi est-ce important ?
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
Donnez les différentes méthodes (ou verbes) du protocole HTTP et leur sémantique
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
Quelles sont les propriétés principales du protocole HTTP ?
Client/Serveur Sans états ni autorité globale
Qu’implique le fait pour HTTP d’être un protocole sans état ? En quoi est-ce souhaitable ?
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é
Quel est le principe de fonctionnement des CGI ? Donner des alternatives et leur fonctionnement.
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
Décrivez les différents élements du modèle MVC, leurs rôles et les tâches effectuées par ceux-ci.
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
Qu’est-ce que l’encodage d’un document ? Quels problèmes peuvent se poser dans la gestion de celui-ci ?
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.
Que sont I18N et L10N ? Quels sont les problèmes posés et comment le mettre en oeuvre ?
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 **
Quelle est la tache du renderer et pourquoi est-il nécessaire ?
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.
Qu’est-ce qu’un système de template ? Quel est le but d’un tel système ?
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.
Expliquez le fonctionnement de l’authentification via le formulaire et cookie de session. Donnez les avantages et inconvénients.
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.