01 - Introduction
Quelques points de repères
-
1969: Arpanet, Unix
-
1971: email(concept), 1975 (premier client)
-
1974: ancètre TCP/IP
-
1977: ordinateur personnel Apple II, 1981: IBM PC
-
1983: Arpanet -> TCP/IP, 1984: DNS
-
1988: IRC (ancètre du chat) et premier virus
-
1989: proposition du www, code en 1990
-
1990: Archie (McGill)
-
1991: Première page web
-
1993: Mosaic, premier navigateur graphique
-
1994: Netscape, 1995: Internet Explorer
-
1995: Amazon, Javascript
-
1998: Google
-
2001: Wikipedia
-
2004: web 2.0, Facebook
-
2005: Youtube
-
2006: Twitter
-
2007: Netflix, iPhone
-
2010: Intsagram
-
2020: Covid
Quelques statistiques
Quelques statistiques utilisateurs
Quelques statistiques réseaux sociaux
Quelques statistiques varia
La suite TCP/IP
Le modèle en couche
Le World Wide Web
Web = URI + HTTP + HTML
-
1989: Tim Berners-Lee + Robert Cailliau (CERN) WorldWideWeb : Proposition pour un projet hypertexte
-
1990: nav. Web en ligne de commande
-
1993: ~50 sites avec serveur HTTP
-
1994: W3C (fondé par TBL)
-
2018: TBL quitte W3C
$ dig www.fraise.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40054
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 4, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.fraise.com. IN A
;; ANSWER SECTION:
www.fraise.com. 300 IN CNAME 57935.sedoparking.com.
57935.sedoparking.com. 3600 IN A 64.190.63.136
;; AUTHORITY SECTION:
sedoparking.com. 40661 IN NS ns-1057.awsdns-04.org.
sedoparking.com. 40661 IN NS ns-1830.awsdns-36.co.uk.
sedoparking.com. 40661 IN NS ns-48.awsdns-06.com.
sedoparking.com. 40661 IN NS ns-802.awsdns-36.net.
;; Query time: 83 msec
;; SERVER: 192.168.2.1#53(192.168.2.1)
;; WHEN: Tue Apr 02 20:26:17 EDT 2024
;; MSG SIZE rcvd: 227
DNS
DNS permet d’obtenir une adresse IP à partir d’un nom.
Le service DNS est généralement fourni par votre fournisseur d’accès qui sait donc ce que vous visitez.
HTTP
-
Pas le seul protocole que connait votre navigateur
-
C’est un protocole sans état
- contrairement par exemple à ftp ou pop
-
Un client (ex: navigateur) émet une requête HTTP à un serveur qui retourne une réponse. La connection est alors (ou peut être) rompue.
- simple, mais pas très efficace
-
Plusieurs proxy entre un client et un serveur peuvent intervenir
- chaque acteur (proxy, client, serveur) peut mémoriser des réponses
Syntaxe d’une requête
METHOD /path HTTP/version
Header name: valeur
Header name: valeur
[request body]
Méthodes populaires
-
GET demande d’une ressource
- pas de corps
-
POST envoi de paramètres dans le corpus de la requête
- souvent utilisé pour uploader une information
-
HEAD seulement les entêtes sont retournées
$ curl https://www.google.ca
<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="en-CA"><head><meta content="text/html; charset=UTF-8" http-equiv="Content-Type"><meta content="/images/branding/googleg/1x/googleg_standard_color_128dp.png" itemprop="image"><title>Google</title><script nonce=« wKnWa9fmJpJ5V0lAlKgm7w==">(function(){window.google={kEI:'qPoTXr3bFaXX5gKZsKbABQ',kEXPI:'0,1353747,5662,731,223,4726,378,207,1245,1709,250,10,289,424,338,175,364,671,483,3,209,69,4,60,315,427,208,10,795,1128673,143,1197728,421,38,329080,1294,12383,4855,32692,15247,867,6056,13342,9286,369,3314,5505,8384,1700,3159,1361,284,4039,4968,773,2253,2818,1923,3118,4524,1672,1719,1808,1976,2044,8909,5297,2974,873,37,1180,2975,6430,7432,3254,620,2883,21,318,1980,1192,975,1,369,2777,520,399,992,1285,8,2142,1,1538,84,610,14,1279,2212,202,328,149,1103,327,513,517,317,1149,8,50,156,4100,108,152,52,1136,3,2063,...
Il est aussi possible de reproduire une requête HTML :
telnet www.google.ca
GET / HTTP/1.1
Host: www.google.ca
HTTP/1.1 200 OK
Date: Thu, 11 Apr 2024 11:01:51 GMT
Expires: -1
Cache-Control: private, max-age=0
Content-Type: text/html; charset=ISO-8859-1
Content-Security-Policy-Report-Only: object-src 'none';base-uri 'self';script-src 'nonce-PGOyuCT5HGIKAsbTSFYu3Q' 'strict-dynamic' 'report-sample' 'unsafe-eval' 'unsafe-inline' https: http:;report-uri https://csp.withgoogle.com/csp/gws/other-hp
P3P: CP="This is not a P3P policy! See g.co/p3phelp for more info."
Server: gws
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN
Set-Cookie: AEC=AQTF6HxzdCjJUWDyG9l834NMJFoi9z_eF5KiBqGSGA5SCVDZ_dwy4hh1Hw; expires=Tue, 08-Oct-2024 11:01:51 GMT; path=/; domain=.google.ca; Secure; HttpOnly; SameSite=lax
Set-Cookie: NID=513=V0PhDpCHQUbf8-KH9dUJK6Xy_CnuFkwr3PrjNTBxeZ2cQKKg4e__S8TaUzfAX682SW2ztPx9aKzc3ICU8U2xC4LNEkmphZYcvWsGlrS4YQRoZjZXA_qjm8Ngq0VrCt1FwZSEyaZCGjLevFgmwv0FfIaTcxZ9xPsasHhOeCrO2yM; expires=Fri, 11-Oct-2024 11:01:51 GMT; path=/; domain=.google.ca; HttpOnly
Accept-Ranges: none
Vary: Accept-Encoding
Transfer-Encoding: chunked
4703
<!doctype html><html>...
Il est aussi possible d’envoyer des données à l’aide d’une requête POST :