Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(fr) synced w/ with en version, grammar fixes, style enhancements #214

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion fr/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,6 @@ CONTRIBUTIONS
-------------

J'encourage et apprécie l'aide et les contributions de chaque personne qui désire apporter des améliorations. Nous acceptons les [pull
requests](https://github.com/bagder/http2-explained/pulls), mais vous pouvez également simplement créer un [ticket](https://github.com/bagder/http2-explained/issues) ou encore envoyer un courriel à [email protected] avec vos suggestions!
requests](https://github.com/bagder/http2-explained/pulls), mais vous pouvez également simplement créer un [ticket](https://github.com/bagder/http2-explained/issues) ou encore envoyer un courriel à [email protected] avec vos suggestions !

/ Daniel Stenberg
16 changes: 8 additions & 8 deletions fr/part1.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@ La RFC 7540 est le nom officiel de la spécification http2 finale, elle a été

Toute erreur dans ce document est mienne et le résultat de mes approximations. Merci de me les indiquer afin que je les corrige pour les prochaines versions.

Dans ce document, j'ai essayé d'utiliser le terme "http2" pour décrire le nouveau protocole en termes purement techniques, le nom officiel est HTTP/2. J'ai fait ce choix pour améliorer la fluidité de lecture et obtenir une meilleure lisibilité.
Dans ce document, j'ai essayé d'utiliser le terme "http2" pour décrire le nouveau protocole alors que techniquement le nom officiel est HTTP/2. J'ai fait ce choix pour améliorer la fluidité de lecture et obtenir une meilleure lisibilité.

## 1.1 Auteur

Mon nom est Daniel Stenberg et je travaille chez Mozilla. J'ai travaillé dans l'open source et la réseautique, depuis plus de 20 ans, sur de nombreux projets. Je suis plus connu peut-être en tant que développeur principal de curl et libcurl. J'ai été impliqué dans le groupe de travail de l'IETF HTTPbis pendant plusieurs années où j'ai maintenu à jour les spécifications HTTP 1.1 et participé à la standardisation de http2.
Mon nom est Daniel Stenberg. J'ai travaillé dans l'open source et la réseautique, depuis plus de 20 ans, sur de nombreux projets. Je suis peut-être surtout connu en tant que développeur principal de curl et libcurl. J'ai été impliqué dans le groupe de travail de l'IETF HTTPbis pendant plusieurs années où j'ai maintenu à jour les spécifications HTTP 1.1 et participé à la standardisation de http2.

Email: [email protected]

Expand All @@ -20,9 +20,9 @@ Mon nom est Daniel Stenberg et je travaille chez Mozilla. J'ai travaillé dans l

Blog: [daniel.haxx.se/blog](https://daniel.haxx.se/blog/)

## 1.2 Aide!
## 1.2 Aide !

Si vous trouvez des erreurs, oublis, fautes ou mensonges éhontés dans ce document, je vous prierais de bien vouloir m'envoyer une version corrigée que je publierai dans une édition révisée. Je mentionnerai clairement les noms des contributeurs! J'espère améliorer ce document avec le temps.
Si vous trouvez des erreurs, oublis, fautes ou mensonges éhontés dans ce document, je vous prierais de bien vouloir m'envoyer une version corrigée que je publierai dans une édition révisée. Je mentionnerai clairement les noms des contributeurs ! J'espère améliorer ce document avec le temps.

Ce document est disponible ici: [https://daniel.haxx.se/http2](https://daniel.haxx.se/http2)

Expand Down Expand Up @@ -54,14 +54,14 @@ La première édition de ce document fut publiée le 25 avril 2014. Voici les ch

### Version 1.11 :

- Nombreuses améliorations de style linguistique (Note du traducteur: en anglais)
- Nombreuses améliorations de style linguistique (Note du traducteur : en anglais)
- 8.3.1: Mention des développements spécifiques nginx et Apache httpd

### Version 1.10 :

- 1: Le protocole est "presque approuvé"
- 4.1: Rafraîchissement du style linguistique (Note traducteur: en anglais)
- Converture: ajout de l'image et légende "http2 explained", lien corrigé
- 4.1: Rafraîchissement du style linguistique (Note traducteur : en anglais)
- Converture : ajout de l'image et légende "http2 explained", lien corrigé
- 1.4: Ajout de la section "Historique"
- Diverses corrections orthographiques
- 14: Ajout de remerciements pour les contributeurs
Expand All @@ -78,4 +78,4 @@ La première édition de ce document fut publiée le 25 avril 2014. Voici les ch
- 8.5: Ajout des chiffres d'utilisation
- 8.3: Mention d'Internet Explorer
- 8.3.1: Ajout des "implémentations manquantes"
- 8.4.3: Mention que TLS améliore le taux de réussite
- 8.4.3: Mention que TLS améliore le taux de réussite
13 changes: 7 additions & 6 deletions fr/part10.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,24 @@

L'équipe Chromium a implémenté http2 depuis un certain temps via les canaux beta et dev. Depuis Chrome 40, sorti le 27 janvier 2015, http2 est activé par défaut pour un certain nombre d'utilisateurs. Ce nombre a commencé petit pour devenir important au fil du temps.

Le support SPDY sera retiré. Dans un blog, il est annoncé en [février 2015](https://blog.chromium.org/2015/02/hello-http2-goodbye-spdy.html):
Le support de SPDY a été retiré dans Chrome 51, au profit de http2. Dans un blog, il est annoncé en [février 2016](https://blog.chromium.org/2016/02/transitioning-from-spdy-to-http2.html) :

> “Chrome supporte SPDY depuis Chrome 6, mais comme les bénéfices sont présents
dans HTTP/2, il est temps de lui dire au revoir. Le support SPDY sera retiré début 2016.”
> “Plus de 25% des ressources dans Chrome sont actuellement délivrées en HTTP/2, contre moins de 5% pour SPDY. Vu ces chiffres, Chrome ne supportera plus SPDY à partir du 15 mai, date anniversaire du RFC HTTP/2.”

## 10.1. Assurez-vous de l'activer

Allez sur "chrome://flags/#enable-spdy4" dans la barre d'URL et cliquez sur "enable" si ce n'est déjà fait.
Si vous utilisez une version de Chrome très ancienne, vous pouvez vérifier si http2 est géré.

Allez sur "chrome://flags/#enable-spdy4" dans la barre d'URL et cliquez sur "enable" si ce n'est déjà fait. Dans les versions récentes http2 est activé d'office et ce réglage a été retiré.

## 10.2. TLS uniquement

Souvenez-vous que Chrome n'implémente http2 que sur TLS. Vous ne verrez du http2 que si vous allez sur les sites https:// qui offrent http2.

## 10.3. Voir l'utilisation http2

Il existe des plug-ins Chrome permettant de visualiser si un site utilise http2. En voici un: [“SPDY Indicator”](https://chrome.google.com/webstore/detail/spdy-indicator/mpbpobfflnpcgagjijhmgnchggcjblin).
Il existe des plug-ins Chrome permettant de visualiser si un site utilise http2. En voici un : [“SPDY Indicator”](https://chrome.google.com/webstore/detail/spdy-indicator/mpbpobfflnpcgagjijhmgnchggcjblin).

## 10.4. QUIC

Les tests QUIC en cours masquent un peu les résultats HTTP/2. (voir chapitre 12.1)
Les tests QUIC en cours masquent un peu les résultats HTTP/2. (voir chapitre 12.1)
14 changes: 7 additions & 7 deletions fr/part11.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Le [projet curl](https://curl.haxx.se/) a fourni un support http2 expérimental

Dans l'esprit curl, nous voulons supporter toutes les fonctionnalités http2 possibles. curl est souvent utilisé comme outil de test et nous voulons que ce soit le cas pour http2 également.

curl utilise une librairie distincte [nghttp2](https://nghttp2.org/) pour la couche http2. curl requiert nghttp2 1.0 ou plus.
curl utilise une bibliothèque distincte [nghttp2](https://nghttp2.org/) pour la couche http2. curl requiert nghttp2 1.0 ou plus.

Notez qu'actuellement, sous linux, curl et libcurl ne sont pas toujours délivrés avec le support du protocole HTTP/2 activé.

Expand All @@ -16,28 +16,28 @@ En interne, curl convertit les en-têtes entrant http2 en en-têtes du style HTT

curl supporte http2 sur TCP via l'en-tête Upgrade:. Si vous initiez une requête HTTP en demandant HTTP 2, curl demandera au serveur de mettre à niveau (Upgrader) sa connexion en http2.

## 11.3. Quelles librairies TLS ?
## 11.3. Quelles bibliothèques TLS ?

curl supporte différentes librairies TLS et c'est toujours valide pour http2. La difficulté avec TLS et http2 est le support de ALPN et potentiellement NPN.
curl supporte différentes bibliothèques TLS et c'est toujours valide pour http2. La difficulté avec TLS et http2 est le support de ALPN et potentiellement NPN.

Compilez curl avec des versions récentes d'OpenSSL ou NSS pour avoir ALPN et NPN. Avec GnuTLS et PolarSSL vous n'aurez que ALPN et pas NPN.

## 11.4. Ligne de commande à utiliser

Pour indiquer à curl d'utiliser http2, en clair ou TLS, utilisez l'option `--http2` ("tiret tiret http2"). curl utilise HTTP/1.1 par défaut, d'où cette option nécessaire pour http2.
Pour indiquer à curl d'utiliser http2, en clair ou avec TLS, utilisez l'option `--http2` ("tiret tiret http2"). curl utilise HTTP/1.1 par défaut pour les URL en HTTP: donc cette option est nécessaire si vous voulez utiliser http2 en clair. Pour les URL en HTTPS:, curl essaiera http2.

## 11.5. Options libcurl

### 11.5.1 Activez HTTP/2

Votre application utilisera http:// ou https:// comme d'habitude, mais vous pouvez régler la variable curl_easy_setopt de `CURLOPT_HTTP_VERSION` vers `CURL_HTTP_VERSION_2` pour que libcurl tente d'utiliser http2. Il le fera en best effort sinon utilisera HTTP 1.1.
Votre application utilisera http:// ou https:// comme d'habitude, mais vous pouvez régler la variable curl_easy_setopt de `CURLOPT_HTTP_VERSION` vers `CURL_HTTP_VERSION_2` pour que libcurl tente d'utiliser http2. Il le fera si possible sinon utilisera HTTP 1.1.

### 11.5.2 Multiplexage

Etant donné que libcurl essaye de maintenir ses anciens comportements dans la mesure du possible, vous devez activer le multiplexage HTTP/2 pour votre application via l'option [CURLMOPT_PIPELINING](https://curl.haxx.se/libcurl/c/CURLMOPT_PIPELINING.html). Sinon elle continuera à utiliser une requête à la fois par connexion.

Un autre détail à garder à l'esprit et que si vous demandez plusieurs transferts en simultanés à libcurl, en utilisant son interface multi, une application peut très bien commencer autant de transfert que voulu, et que si vous préférez que libcurl attende un peu pour les placer tous sur la même connexion, plutôt que d'ouvrir une connexion pour chacun, utilisez l'option [CURLOPT_PIPEWAIT](https://curl.haxx.se/libcurl/c/CURLOPT_PIPEWAIT.html) pour chaque transfert que vous préférez attendre.
Un autre détail à garder à l'esprit est que si vous demandez plusieurs transferts simultanés à libcurl, en utilisant son interface multi, une application peut très bien commencer autant de transfert que voulu, et que si vous préférez que libcurl attende un peu pour les placer tous sur la même connexion, plutôt que d'ouvrir une connexion pour chacun, utilisez l'option [CURLOPT_PIPEWAIT](https://curl.haxx.se/libcurl/c/CURLOPT_PIPEWAIT.html) pour chaque transfert que vous préférez attendre.

### 11.5.3 Server push

libcurl 7.44.0 et plus supporte le server push de HTTP/2. Vous pouvez tirez des avantages de cette fonctionnalité en configurant un callback de push avec l'option [CURLMOPT_PUSHFUNCTION](https://curl.haxx.se/libcurl/c/CURLMOPT_PUSHFUNCTION.html). Si le push est accepté par l'application, il créera un nouveau transfert en tant que CURL easy handle et l'utilisera pour délivrer le contenu, comme tout autre transfert.
libcurl 7.44.0 et plus supporte le server push de HTTP/2. Vous pouvez tirez avantage de cette fonctionnalité en configurant un callback de push avec l'option [CURLMOPT_PUSHFUNCTION](https://curl.haxx.se/libcurl/c/CURLMOPT_PUSHFUNCTION.html). Si le push est accepté par l'application, il créera un nouveau transfert en tant que CURL easy handle et l'utilisera pour délivrer le contenu, comme tout autre transfert.
2 changes: 1 addition & 1 deletion fr/part12.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@ Le protocole [QUIC](https://www.chromium.org/quic) (Quick UDP Internet Connectio

QUIC permet la création de connexions avec moins de latence, il résout la perte de paquet en ne bloquant qu'un flux particulier au lieu de tous les flux en HTTP/2 et il permet d'établir des connexions à travers différentes interfaces réseau, et du coup, couvre des problématiques que MPTCP résout.

QUIC est pour l'instant uniquement disponible à travers Chrome et les serveurs Google et le code n'est pas facilement réutilisable, même s'il existe une [libquic](https://github.com/devsisters/libquic) pour ce faire justement. Le protocole a été soumis en tant que [draft](https://tools.ietf.org/html/draft-tsvwg-quic-protocol-01) à l'IETF transport working group.
QUIC est pour l'instant uniquement disponible à travers Chrome et les serveurs Google et le code n'est pas facilement réutilisable, même s'il existe une [libquic](https://github.com/devsisters/libquic) pour ce faire justement. Le protocole a été soumis en tant que [draft](https://tools.ietf.org/html/draft-tsvwg-quic-protocol-01) au groupe de travail transport de l'IETF.
4 changes: 2 additions & 2 deletions fr/part13.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# 13. Lecture complémentaire

Si vous pensez que ce document était léger en contenu ou détails techniques, voici quelques ressources pour satisfaire votre curiosité:
Si vous pensez que ce document était léger en contenu ou détails techniques, voici quelques ressources pour satisfaire votre curiosité :

- La mailing-list HTTPbis et ses archives : https://lists.w3.org/Archives/Public/ietf-http-wg/

Expand All @@ -12,4 +12,4 @@ Si vous pensez que ce document était léger en contenu ou détails techniques,

- Les sites web http2: https://http2.github.io/ et en particulier la FAQ : https://http2.github.io/faq/

- Le chapitre de Ilya Grigorik sur HTTP/2 dans son livre “High Performance Browser Networking”: https://hpbn.co/http2/
- Le chapitre de Ilya Grigorik sur HTTP/2 dans son livre “High Performance Browser Networking” : https://hpbn.co/http2/
4 changes: 2 additions & 2 deletions fr/part14.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ Le graphique RTT (Aller-Retour) vient des présentations de Mike Belshe.

Mes enfants Agnès et Rex pour m'avoir prêté leurs Lego.

Merci à mes amis pour les relectures et commentaires : Kjell Ericson, Bjorn Reese, Linus Swalas et Anthony Bryan. Votre aide est appréciée et a réellement amélioré ce document!
Merci à mes amis pour les relectures et commentaires : Kjell Ericson, Bjorn Reese, Linus Swalas et Anthony Bryan. Votre aide est appréciée et a réellement amélioré ce document !

Pendant les diverses itérations du document, les personnes suivantes ont fourni ou suggéré des améliorations: Mikael Olsson, Remi Gacogne, Benjamin Kircher, saivlis, florinandrei-tp, Brett Anthoine, Nick Parlante, Matthew King, Nicolas Peels, Jon Forrest, sbrickey, Marcin Olak, Gary Rowe, Ben Frain, Mats Linander, Raul Sile, Alex Lee et Richard Moore.
Pendant les diverses itérations du document, les personnes suivantes ont fourni ou suggéré des améliorations : Mikael Olsson, Remi Gacogne, Benjamin Kircher, saivlis, florinandrei-tp, Brett Anthoine, Nick Parlante, Matthew King, Nicolas Peels, Jon Forrest, sbrickey, Marcin Olak, Gary Rowe, Ben Frain, Mats Linander, Raul Sile, Alex Lee et Richard Moore.

Le traducteur de cette version française, Olivier Cahagne, souhaite remercier Luc Trudeau, Mehdi Achour, Pascal Borreli et Remi Gacogne pour leurs relectures, nombreuses corrections et suggestions.
2 changes: 1 addition & 1 deletion fr/part2.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ D'autres usages qui nécessitent une latence faible sont certains types de vidé

## 2.6. Blocage en tête de file (Head-of-line blocking)

Le pipelining HTTP est une manière d'envoyer une requête additionnelle sans attendre la réponse de la requête précédente. C'est semblable à la file d'attente d'une caisse à la banque ou au supermarché. Vous ne savez pas si le client vous précédant est rapide ou s'il s'agit d'une personne qui prendra son temps. Ce phénomène décrit parfaitement le : “head-of-line blocking”.
Le pipelining HTTP est une manière d'envoyer une requête additionnelle sans attendre la réponse de la requête précédente. C'est semblable à la file d'attente d'une caisse à la banque ou au supermarché. Vous ne savez pas si le client vous précédant est rapide ou s'il s'agit d'une personne qui prendra son temps. Ce phénomène décrit parfaitement le “head-of-line blocking”.

<img style="float: right;" src="https://raw.githubusercontent.com/bagder/http2-explained/master/images/head-of-line-blocking.jpg" />

Expand Down
6 changes: 3 additions & 3 deletions fr/part4.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# 4. Mettre à jour HTTP

Ce serait sympa d'améliorer ce protocole, n'est-ce pas ? Notamment:
Ce serait sympa d'améliorer ce protocole, n'est-ce pas ? Notamment :

1. Un protocole moins sensible au RTT (Round Trip Time, Aller-Retours)
2. En corrigeant le pipelining et le head of line blocking
Expand All @@ -10,11 +10,11 @@ Ce serait sympa d'améliorer ce protocole, n'est-ce pas ? Notamment:

## 4.1. IETF et le groupe de travail HTTPbis

L'IETF (Internet Engineering Task Force) est une organisation qui développe et promeut les standards de l'Internet, et ce essentiellement au niveau protocolaire. Très connue pour la série de RFC documentant tout depuis TCP, DNS, FTP, HTTP aux bonnes pratiques en passant par des variantes de protocoles qui n'ont jamais vu le jour.
L'IETF (Internet Engineering Task Force) est une organisation qui développe et promeut les standards de l'Internet, et ce essentiellement au niveau protocolaire. Elle est très connue pour la série de RFC documentant tout depuis TCP, DNS, FTP, HTTP aux bonnes pratiques en passant par des variantes de protocoles qui n'ont jamais vu le jour.

Au sein de l'IETF existent des groupes de travail se penchant sur un sujet bien établi avec des objectifs précis. Ils établissent une charte qui définit les règles et limitations liées à l'objectif. Toute personne intéressée peut se joindre aux discussions et au développement, et chaque participant bénéficie du même droit de parole et du même poids que les autres. Peu d'importance est apportée aux sociétés pour lesquelles les participants travaillent (le cas échéant).

Le groupe de travail HTTPbis (voir plus tard pour l'origine du nom) a été créé à l'été 2007 et chargé de mettre à jour la spécification HTTP 1.1. Des discussions sur une nouvelle version de HTTP ont réellement commencé fin 2012. La mise à jour HTTP 1.1 s'est terminée début 2014 avec la série des [RFC 7320](https://tools.ietf.org/html/rfc7320).
Le groupe de travail HTTPbis (voir plus tard pour l'origine du nom) a été créé à l'été 2007 et chargé de mettre à jour la spécification HTTP 1.1. Des discussions sur une nouvelle version de HTTP ont réellement commencé fin 2012. La mise à jour de HTTP 1.1 s'est terminée début 2014 avec la série des [RFC 7230](https://tools.ietf.org/html/rfc7230).

La réunion finale d'interopérabilité pour le groupe de travail HTTPbis s'est tenue à New York en juin 2014. Toutefois les discussions en suspens et les procédures IETF nécessaires pour obtenir la RFC officielle continueront jusque l'année suivante.

Expand Down
Loading