Internet Web Sécurité Optimisation
Objectif Survol Web / Optimisation / Sécurité Sommaire 1. Fondamentaux 2. Hotes virtuels 3. Règles de réécriture 4. Optimisations
1. Fondamentaux - DNS fsf.com => 208.73.210.29 gnu.org => 140.186.70.148... 3 / 35
1. Fondamentaux - DNS => 208.73.210.29 4 / 35
1. Fondamentaux Client Serveur Client Requête Réponse Serveur Web 208.73.210.29 5 / 35
1. Fondamentaux - Protocole HTTP: HyperText Transfer Protocol HTTP: les principales méthodes GET URL : demander le contenu de la ressource POST URL : envoi de données vers une application HTTP: le transport Architecture Client-Serveur, mode «Pull» Connections courtes, «Sans état» (stateless) 6 / 35
1. Fondamentaux Client Serveur Requête Client GET / HTTP/1.1 Host: localhost:8080 User-Agent: Mozilla/5.0 (Windows; U; Windows NT Accept: text/xml,application/xml,,image/png, Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Serveur Web 7 / 35
1. Fondamentaux Client Serveur Réponse Client HTTP/1.1 200 OK Date: Sun, 14 Aug 2005 15:10:14 GMT Server: Apache/1.3.23 (Win32) Content-Type: text/html <html> <head></head> <body><h1>page</h1><body> <html> Serveur Web 8 / 35
1. Fondamentaux HTML <html> <head>... <title>site d'olivier Pons</title>... </head> <body> <div> <img src="/header.jpg" alt="texte si erreur" title="titre image" /> </div> <h1>bonjour!</h1> </div> </body> </html> 9 / 35
1. Fondamentaux Echanges (1) Client demande une page (2) Serveur renvoie la page (Boucle) Client demande ressource nécessaire à la page Serveur renvoie la ressource (Fin boucle) 10 / 35
1. Fondamentaux Echanges Pas de pipelining Avec pipelining Optimisé Client Serveur Client Serveur Client Serveur open open open Temps close close close 11 / 35
2. VirtualHosts >ping olivierpons.fr PING olivierpons.fr (83.145.112.92) 56(84) bytes of data. >ping keemy.com PING keemy.com (83.145.112.92) 56(84) bytes of data. 12 / 35
2. VirtualHosts Le premier virtualhost est le virtualhost par défaut. <VirtualHost *:80> ServerName keemy.fr ServerAlias www.keemy.fr DocumentRoot /var/www/keemy/ </VirtualHost> 13 / 35
3. Règles de ré-écriture Expressions régulières : en général + Au moins une fois * Zéro ou plusieurs fois ou ^ Au début $ A la fin chu+t : chut, chuut, chuuut, etc. chu*t : cht, chut, chuut, etc. (oli pons) : oli <=> pons ^(a o)live : alive, olive (passe)*moilesel$. N'importe quel car. a(.*)ur : arthur ah, oui! Marlène Sasoeur 14 / 35
3. Règles de ré-écriture Expressions régulières : exemple concret http://(.*) test (.*) \.(fr com)/ http://un_site_test_qui_est.fr/ $1 = un_site_ $2 = _qui_est $3 = fr 15 / 35
3. Règles de ré-écriture http://oom.papdevis.fr/ Exemple simple http://papdevis.fr/index.php?p=oom = http://ima.papdevis.fr/ http://papdevis.fr/index.php?p=ima 16 / 35
3. Règles de ré-écriture Principe : en pratique RewriteCond TestString CondPattern RewriteRule Pattern Substitution RewriteRule 17 / 35
3. Règles de ré-écriture Exemple RewriteCond %{HTTP_HOST} http://monsite.uk RewriteRule (.*) http://us.monsite.com$1 [R=301,L] http://monsite.uk/client/ http://us.monsite.com/client/ 18 / 35
2. Règles de ré-écriture Variables Apache internes au serveur DOCUMENT_ROOT SERVER_NAME SERVER_PORT SERVER_SOFTWARE SERVER_ADMIN SERVER_ADDR SERVER_PROTOCOL TIME_(YEAR MON DAY HOUR MIN SEC WDAY) TIME API_VERSION THE_REQUEST REQUEST_URI REQUEST_FILENAME IS_SUBREQ HTTPS 19 / 35
3. Règles de ré-écriture Variables Apache : en-têtes HTTP HTTP_USER_AGENT HTTP_COOKIE HTTP_HOST HTTP_ACCEPT REMOTE_HOST REMOTE_USER REQUEST_METHOD PATH_INFO AUTH_TYPE HTTP_REFERER HTTP_FORWARDED HTTP_PROXY_CONNECTION REMOTE_ADDR REMOTE_PORT REMOTE_IDENT SCRIPT_FILENAME QUERY_STRING 20 / 35
4. Optimisation Problèmes 1. Nombre limite de requêtes par nom de domaine en parallèle 2. Duplication des cookies 3. Code HTML renvoyé trop long 21 / 35
4. Optimisation Solution limite requêtes static1.papdevis.fr static2.papdevis.fr static3.papdevis.fr www.papdevis.fr static1 close stati c2 close 22 / 35
4. Optimisation Solution limite requêtes <VirtualHost *:80> ServerName keemy.fr ServerAlias *.keemy.fr... </VirtualHost> 23 / 35
4. Optimisation Solution limite requêtes 24 / 35
4. Optimisation Solution Cookies <VirtualHost *:80> ServerName keemy.fr ServerAlias www.keemy.fr DocumentRoot /var/www/keemy/ RewriteEngine On RewriteCond %{HTTP_HOST} ^keemy\.fr$ [NC] RewriteRule (.*) http://www.keemy.fr$1 [QSA,R=301,L] </VirtualHost> 25 / 35
4. Optimisation Solution Cookies Même configuration que pour les requêtes en parallèle 26 / 35
4. Optimisation Solution HTML lourd Google mod_pagespeed 27 / 35
4. Optimisation Solution HTML lourd Sans mod_pagespeed 2013-2014 - Olivier Pons
4. Optimisation Solution HTML lourd Avec mod_pagespeed 2013-2014 - Olivier Pons
4. Optimisation Backlinks Un backlink n'est rien d'autre qu'un lien entrant vers votre site sur le web. Ce lien doit être fait «en dur» avec la balise de lien HTML <a>. L'adresse du site web visé doit être entrée dans l'attribut href et commence bien sûr par http://. <a href="http://www.olivierpons.fr/" title="olivier Pons"> Olivier Pons </a> 30 / 35
4. Optimisation Triche! 31 / 35
4. Optimisation Triche! Cache google Les autres Demande page Web 32 / 35
4. Optimisation Syntaxe HTML Le PageRank ou PR est l'algorithme d'analyse des liens concourant au système de classement des pages Web utilisé par le moteur de recherche Google. Il mesure quantitativement la popularité d'une page web. Le PageRank n'est qu'un indicateur parmi d'autres dans l'algorithme qui permet de classer les pages du Web dans les résultats de recherche de Google. Ce système a été inventé par Larry Page, cofondateur de Google. Ce mot est une marque déposée. http://fr.wikipedia.org/wiki/pagerank 33 / 35
4. Optimisation Syntaxe HTML http://www.pagerank.fr/ 34 / 35
4. Optimisation Syntaxe HTML Echelle : 1-9 (http://techxt.com/) 1-8 Aujourd'hui 35 / 35