Développement Web
Document en construction...
Mozilla a publié ce que cette firme nomme le « référentiel de compétences Web », un document listant ces aptitudes et compétences qu'elle estime nécessaires pour
utiliser le Web de manière participative :
https://webmaker.org/standard
Document généraliste sur l'évolution du Web :
http://www.evolutionoftheweb.com/
La programmation Web est devenue bien trop complexe :
http://en.arguman.org/web-programming-is-getting-unnecessarily-complicated
Ajax
L'approche Ajax, pour Asynchronous JavaScript
and XML, permet de dynamiser les pages Web en
réalisant des tâches asynchrones capables de modifier les éléments
du DOM dynamiquement.
Un exemple simple de cette approche en JavaScript :
JavaScript-Ajax.html
Pourquoi il est préférable d'utiliser XMLHttpRequest
de manière asynchrone, un texte de 2011 :
http://blogs.msdn.com/b/wer/archive/2011/08/03/why-you-should-use-xmlhttprequest-asynchronously.aspx
Un protocole de communication sur Ajax, à l'aide d'objets
JSON : http://www.planbox.com/blog/news/updates/ajax-communication-protocol.html
Ajax et REST constitueraient
un nouveau mirage architectural, selon William Vambenepe en
2011 : http://stage.vambenepe.com/archives/1801
Réaliser du Caching
avec une application Ajax, proposition de Maxime Brazeilles en
2012 : http://fre.sc/tech-blog/a-new-approach-of-caching-in-web-applications
Applications et AppStores
L'AppStore d'Amazon serait pourri, selon ce texte de
2011 : http://shiftyjelly.wordpress.com/2011/08/02/amazon-app-store-rotten-to-the-core/
Architecture
Explication détaillée du fonctionnement d'un fureteur moderne,
par Tali Garsiel en 2011 : http://www.html5rocks.com/en/tutorials/internals/howbrowserswork/
Ce qui se passe vraiment quand on navigue vers une URL,
par Igor Ostrovsky en 2011 : http://igoro.com/archive/what-really-happens-when-you-navigate-to-a-url/
Réflexion écrite en 2010 par Carlos
Bueno, chez Facebook, sur les considérations architecturales que doit
comprendre un programmeur complet : http://www.facebook.com/note.php?note_id=461505383919&comments
Présentation de Chris Palmer qui explique que, dans une architecture
pour le Web, on ne peut se passer du protocole https :
http://assets.en.oreilly.com/...Presentation.pdf
En 2010, Skype est tombé en panne. Une explication
du modèle architectural de Skype et de cette panne, par Dan York en
2010 : http://www.disruptivetelephony.com/2010/12/understanding-todays-skype-outage-explaining-supernodes.html
En 2011, ce fut au tour d'Amazon d'avoir une grosse
panne : http://aws.amazon.com/fr/message/2329B7/
Comment quitter le Google App Engine si cet outil ne nous convient pas? Texte
d'Eric Silverberg en 2011 : http://www-cs-students.stanford.edu/~silver/gae.html
Selon David Teller, en 2011, le modèle de
développement Web est brisé, trop fragmenté en divers outils
disparates : http://dutherenverseauborddelatable.wordpress.com/2011/04/18/rant-web-development-is-just-broken/
À propos de l'évolution rapide des plateformes Web, et de la
difficulté pour les développeurs de suivre le tempo, par Scott
M. Fulton III en 2011 : http://www.softwarequalityconnection.com/2011/05/will-the-next-web-platform-please-hold-still/
Le développement polyglote, texte de 2011 :
http://blog.heroku.com/archives/2011/8/3/polyglot_platform/
En 2012, Neil McAllister réfléchit
tout haut sur le Web en tant que plateforme avec Google Chrome et
HTML5 : http://www.infoworld.com/d/application-development/google-chrome-html5-and-the-new-web-platform-186542
Réflexions sur les architectures Web modernes :
Pratiques architecturales :
Le Web adaptatif, par David Walsh en 2011 :
http://www.i-com.net/blog/the-adaptive-web/
Plaidoyer pour les applications faites d'une seule page, incluant ce qu'on
nomme maintenant le Infinite Scrolling, par Christian Heilmann en
2011 : http://christianheilmann.com/2011/12/28/on-single-page-apps/
En 2012, Joe Gregorio se questionne sur les raisons
derrière la grande variété d'architectures Web pour Python :
http://bitworking.org/news/Why_so_many_Python_web_frameworks
Questions de performances :
Gestion des états :
Lancer un nouveau site Web :
Certification
Il est parfois nécessaire de produire un certificat d'authentification
et de signer une application Web pour que celle-ci soit jugée sécuritaire
par des tiers.
L'un des principaux organismes de certification aux États-Unis est VeriSign :
http://www.verisign.com/
HTML
Format de représentation de documents répandu s'il en est un.
HTML5
Le standard HTML5, attendu depuis longtemps, est
une avancée extrêmement significative dans le monde du développement
Web. Fruit d'un long processus de maturation de plusieurs standards, et offrant
des fonctionnalités qui rendent essentiellement obsolètes plusieurs
autres technologies, dont Silverlight de Microsoft et Flash
d'Adobe, ce nouveau standard semble voué à devenir le seul standard
html à long terme, ayant été
adopté à la fois par Microsoft et par Google.
Notez que malgré sa standardisation sur HTML5,
le développement de html se
poursuit et peut confondre à la fois développeurs et usagers.
À ce propos, un article d'Ingrid Lunden en 2012 :
http://techcrunch.com/2012/07/22/html5-work-splits-into-living-and-snapshot-standards-developers-need-not-standard/
Notez que dans les nombreux liens qui suivent, il est important de porter attention
aux dates de publication puisque ce standard est en constante évolution,
donc les critiques d'hier peuvent ne pas tenir aujourd'hui. Notez aussi qu'il
est question de ne plus avoir de nouvelles versions de la norme
html suite à HTML5,
et de faire plutôt évoluer celle-ci, comme l'indique Jeffrey Zeldman
en 2011 avec http://www.zeldman.com/2011/01/27/html5-vs-html/
ou encore le WHATWG lui-même à travers Ian Hickson en
2011, http://blog.whatwg.org/html-is-the-new-html5,
ce qui implique que tout est en fluctuation.
En 2012, HTML5 est
officiellement Feature-Complete sans être officiellement un standard :
Démarrer avec HTML5, un tutoriel proposé
par Grace Walker :
Quel est le plus petit document HTML5 légal
possible? Proposition de Chetan Jain en 2011 :
http://dev.chetankjain.net/2011/12/minimal-required-code-in-html5.html
Caractéristiques du standard :
Technique :
- Comment s'impliquer pour pousser le Web vers l'avant? http://movethewebforward.org/
- Guide pour développer une application Web sous
HTML5 : http://www.html5rocks.com/webappfieldguide/toc/index/
- Une liste complète des balises HTML5,
définie en 2009 : http://twistedpin.blogspot.com/2009/07/complete-list-of-html-5-tags.html
- Utiliser HTML5 sur un site « aujourd'hui »,
texte de Dori Smith en 2010 : http://www.infoworld.com/d/applications/how-use-html5-your-website-today-220
- Le W3C, aussi en 2010, recommandait d'attendre
un peu avant de déployer HTML5 partout,
le temps que les problèmes d'interopérabilité se règlent,
selon cet article de Paul Krill : http://www.infoworld.com/d/application-development/w3c-hold-deploying-html5-in-websites-041
- Le développement d'un algorithme pour traiter efficacement un texte
html, en collaboration avec l'équipe de
WebKit et en lien avec le fureteur Safari, texte d'Eric Seidel en
2010 : http://www.webkit.org/blog/1273/the-html5-parsing-algorithm/
- La norme HTML5 et les jeux :
- Abuser des outils de gestion de l'historique, un texte de Matt Mastracci
en 2011 : http://grack.com/blog/2011/03/07/abusing-the-html5-history-api-for-fun-and-chaos/
- Un DTD pour HTML5?
Projet de Stefan Mintert : http://www.html5dtd.org/faq/
- Saines pratiques de développement avec HTML5,
incluant des techniques de migration de sites faits avec des versions antérieures
de html, par Aniket Pant en 2011 : http://www.aniketpant.com/article/html5-semantics-and-good-coding-practices
- Programmer à l'aide de composants Web, un texte évolutif :
http://dvcs.w3.org/hg/webcomponents/raw-file/tip/explainer/index.html
- Développer des applications Web interactives qui réagissent
de manière fluide, par Katrien De Graeve en 2011 :
http://msdn.microsoft.com/en-us/magazine/hh653584.aspx
- Développement HTML5 avec C++,
un texte de Robert Umbehant en 2012 (tiré
du Code Project) : http://www.codeproject.com/Articles/336018/Building-C-Applications-with-HTML5
- Réaliser des effets sur du texte avec HTML5,
par Michael Deal en 2012 : http://www.html5rocks.com/en/tutorials/canvas/texteffects/
- À propos de l'importance des balises pour déterminer des sections, par
Heydon Pickering en 2013 :
http://coding.smashingmagazine.com/2013/01/18/the-importance-of-sections/
- Divers trucs techniques avec HTML5, proposés
par Afshin Mehrabani en 2013 :
https://docs.google.com/presentation/d/1poNKEfG5adZ4MfUNM2chwr_mbuPVIV1OeTsFWo7-DkY/edit
Outils :
Critiques :
- Selon Peter-Paul Koch, en 2009, l'approche
HTML5 pour le Drag and Drop est un désastre et il ne
faut absolument pas y avoir recours : http://www.quirksmode.org/blog/archives/2009/09/the_html5_drag.html
- Selon David Arno, en 2010,
HTML5 ne va pas assez loin et ne doit absolument pas être le
futur du Web : http://www.davidarno.org/2010/05/12/html-5-must-not-becom-the-future-of-the-web/
- En 2011, Ido Yehieli a décidé
de migrer de HTML5 vers Flash :
http://blog.tametick.com/2011/01/why-im-moving-from-html5-to-flash.html
- Dans un texte de 2011, Peter Wayner relève
onze faits sur HTML5 dont il est important de
prendre conscience : http://www.infoworld.com/print/169665
- En 2011, Allen Cheung nous parle de ses craintes
face à ce nouveau standard : http://allenc.com/2011/07/html5-madness/
- L'adaptation du milieu à HTML5 n'est
pas toujours aussi rapide que les développeurs Web ne le souhaiteraient.
À cet effet, un texte de Adam Iley en 2012 :
http://blog.caplin.com/2012/07/16/the-pain-of-html5/
- Selon ce texte de 2012, l'API
d'accès aux fichiers proposé par
HTML5 est asynchrone et un peu fou : http://kybernetikos.com/2012/07/27/fsapi/
- Texte de 2012 portant sur la justesse (ou non)
des critiques à propos de HTML5, par Chris
Heilmann : https://hacks.mozilla.org/2012/11/html5-mythbusting/
- À propos des risques associés au développement HTML5,
par Ericka Chickowski en 2013 :
http://www.darkreading.com/applications/beware-of-html5-development-risks/240156891
À propos des impacts de HTML5 :
- Le cas de la mort des technologies tierces :
- en 2009, Paul Krill soulève la question
de l'impact d'HTML5, à savoir si ce
standard tuerait Flash
et Silverlight. A posteriori, il semble bien que ce soit le cas :
http://www.infoworld.com/d/application-development/html5-could-it-kill-flash-and-silverlight-291
- d'autres, comme Guilhelm Ensuque en 2010,
en sont moins convaincus : http://www.visionmobile.com/blog/2010/09/the-flash-vs-html5-endgame/
- le rôle de Tim
Berners-Lee dans certains choix du W3C qui ont joué un rôle
de catalyseur dans l'impact qu'a eu HTML5,
selon un texte de Charles Arthur en 2010 :
http://www.guardian.co.uk/technology/2010/feb/26/berners-lee-html5-adobe-argument
- comment départager Flash
et HTML5? Faisons-les compétitionner!
http://labs.codecomputerlove.com/FlashVsHtml5/
- en 2011, Nick Farrell rapporte qu'Adobe
convertit maintenant Flash
en HTML5, du moins en partie : http://news.techeye.net/software/adobe-converts-flash-to-html5
- une position formelle de S. Somasegar, chez Microsoft, en
2011 : http://blogs.msdn.com/b/silverlight/archive/2011/04/04/standards-based-web-plug-ins-and-silverlight.aspx
- En 2009, une réflexion de Tim Wright
sur HTML5 et le futur du Web, détaillant
les bases et les principes de ce standard, et discutant de son apport au développement
pour appareils mobiles : http://coding.smashingmagazine.com/2009/07/16/html5-and-the-future-of-the-web/
- Une présentation du futur d'HTML5, par
Bruce Lawson en 2009 : http://thinkvitamin.com/code/the-future-of-html-5/
- Même Google a pour ainsi dire pris le virage
HTML5, mettant au rancart sa technologie Google Gears. Un texte de
2009 par Mark Millian : http://latimesblogs.latimes.com/technology/2009/11/google-gears.html
- En fait, en 2010, JP Mangalindan explique pourquoi,
selon lui, Apple et Google sont d'accord à propos de
HTML5 : http://tech.fortune.cnn.com/2010/12/06/why-rivals-google-and-apple-agree-on-html5/
- Depuis HTML5, les développeurs de sites
Web ont à investir moins d'efforts dans la mise au point de tactiques
et de rustines (ou de feuilles de styles ou...) distinctes selon les fureteurs :
http://html5reset.org/
- Prudence avec la sécurité sous HTML5,
selon Paul Roberts en 2010 : http://threatpost.com/en_us/blogs/experts-worry-about-security-html5-gains-traction-091610
- Remplacera-t-on les applications natives par des versions
HTML5? Matthew Baxter-Reynolds donne son point de vue en
2011 : http://www.guardian.co.uk/technology/blog/2011/nov/03/will-html5-replace-native-apps
- Le standard HTML5 et la
sécurité :
http://html5sec.org/
- Plaidoyer en 2013 par Alex Conconi pour préférer HTML5
aux applications natives :
http://designmind.frogdesign.com/blog/unraveling-html5-vs-native.html
Applications :
- Particules liquides : http://spielzeugz.de/html5/liquid-particles.html
- Notation musicale : http://0xfe.blogspot.com/2010/05/music-notation-with-html5-canvas.html
- Du Color Cycling, une technique d'une autre époque mais
qui sied bien aux affichages sur un <canvas>.
Texte de 2010 : http://www.effectgames.com/effect/article.psp.html/joe/Old_School_Color_Cycling_with_HTML5
- Une page qui abuse un peu des nouvelles caractéristiques, pour montrer
jusqu'où on peut aller : http://dhtml5.com/
- Audio et vidéo avec HTML5, une présentation
de 2010 : http://blog.gingertech.net/wp-content/uploads/2011/01/LCA_MM_AVProc2011/#slide1
- Test de conformité de la balise <canvas>
avec affichage 3D, par Scott Porter en 2011 :
http://www.smashcat.org/av/canvas_test/
- Un éditeur Web, Create.js, qui repose sur jQuery.
Leur mode Try it est franchement sympathique : http://createjs.org/
- En 2011, Google Zeitgeist fait de charmants
graphiques 3D avec HTML5 : http://www.googlezeitgeist.com/en/top-lists/global/google-maps-fastest-rising
- Un personnage évoquant le logo de Reddit,
à partir de particules, le tout fait en 2012 :
http://hexample.com/2012/01/03/html5-canvas-particle-demo/
- Présentation de Jeff Timanus, en 2011,
sur le développement de jeux pour fureteurs à l'aide de la technologie
HTML5 : http://migs-2011-html5.appspot.com/
- Diverses démos de 3D sous
HTML5, colligées en 2012 :
http://devstand.com/2012/02/03/impressive-3d-html5/
- L'état de la situation pour ce qui est des jeux sur le Web à la fin de
2012, par Rob Hawkes :
http://12devsofxmas.co.uk/post/2012-12-26-day-1-the-future-of-games-on-the-web
- Le site Form Follows Function :
http://fff.cmiscm.com/
Développement
Quelques liens menant vers des articles sur la question du développement
Web au sens large.
En 2012, Dean Michael Berris publie une courte
mais pertinente série d'articles sur le processus de développement
de son serveur http en C++,
incluant ses efforts pour adapter les fruits ses efforts aux idiomes et pratiques
de C++ 11,
la gestion de l'adaptabilité et de la flexibilité attendues d'un
tel outil, les difficultés rencontrées avec certaines tentatives
d'inclure de la métaprogrammation, etc. :
Écrire une application Web avec
Go :
http://golang.org/doc/articles/wiki/
Écrire une application Web avec
Racket,
par Matthew Might en 2015 :
http://matt.might.net/articles/low-level-web-in-racket/
À propos des applications monopages :
Texte intéressant de 2012 expliquant une
technique par laquelle des onglets peuvent partager des ressources à
l'intérieur d'un fureteur :
http://blog.fastmail.fm/2012/11/26/inter-tab-communication-using-local-storage/
Selon Mathieu Fenniak en 2013, le temps est venu
de cesser de produire des
API
fragiles pour le Web :
http://mathieu.fenniak.net/stop-designing-fragile-web-apis/
Gérer l'évolution d'une
API
pour le Web, par Mark Nottingham en 2013 :
http://www.mnot.net/blog/2013/06/23/linking_apis
DOM (Document Object Model)
À venir...
Exemple concret : Exemple--DOM.html
SAX (Simple API
for
XML)
À venir...
Exemple concret : Exemple--SAX.html
Idées et pratiques
Dans la section
sur les antémémoires (mémoires Cache) de cette
page sur l'optimisation,
vous trouverez une section sur les antémémoires et les applications
Web.
Introduire un parcours séquentiels dans un espace de lecture non-linéaire :
Comment faire pour livrer une page HTML à
un fureteur sous forme de texte brut, pour ne pas qu'elle soit interprétée
comme du HTML : http://perlpunks.de/deliver_html_as_text_plain.html
Comment
développer une API de traitement
de flux de données en Python,
un exemple proposé par Josiah Carlson en 2011 :
http://dr-josiah.blogspot.com/2011/05/essentials-behind-building-streaming.html
À propos des Content Farms, ces sites qui s'affichent sur les
moteurs de recherche mais offrent du contenu de mauvaise qualité, ou
même bidon :
À propos des hash-bangs (#!),
À propos de la validation des entrées :
- Selon ces textes de 2011, il serait préférable
de ne pas chercher à valider les adresses courriel :
Réflexions sur l'éthique et le partage du contenu dans Internet :
Il est possible de guider les crawlers à l'aide d'un fichier
ROBOTS.TXT :
Déboguer les applications Web :
Optimiser les applications Web :
Tester les applications Web :
À propos du design Web :
À propos de la consommation en ligne :
À propos de la « Linuxification » des applications
Web, texte de 2011 : http://notes.deaxon.com/linuxification-of-webapps/
Vaut-il la peine de construire son propre système de cartographie à
l'ère de Google Maps? Selon Sébastian Delmont, en
2012, la réponse peut être oui : https://plus.google.com/u/0/118383351194421484817/posts/foj5A1fURGt
À propos de la saine gestion des tâches asynchrones dans un
fureteur,
un texte de 2012 : http://blog.mozilla.org/tglek/2012/04/18/web-2-0-a-collection-of-settimeouts/
Amener au Web la mécanique des intentions (Web Intents), mise
de l'avant par Google pour Android. Proposition soumise en
2012 : http://dvcs.w3.org/hg/web-intents/raw-file/tip/spec/Overview.html
Applications Web et codes d'erreur, texte de Bruno Pedro en
2013 :
http://apiux.com/2013/03/28/2-steps-api-error-codes/
A-t-on besoin d'un bytecode dans nos fureteurs? Ce bytecode
serait-il
JavaScript? Un texte d'Alon Zakai en 2013 :
http://mozakai.blogspot.de/2013/05/the-elusive-universal-web-bytecode.html
Quoi faire pour conserver le concept de HTTP Referrer même si on a
recours à https? Un texte de
Stephen Merity en 2013 :
http://smerity.com/articles/2013/where_did_all_the_http_referrers_go.html
Les applications Web sont-elles vraiment le futur? Texte d'opinion de Nick
Heath en 2013 :
http://www.zdnet.com/web-apps-the-future-of-the-internet-or-an-impossible-dream-7000019320/
Infonuagique (Cloud Computing)
À propos de la croissance des données hyperliées au fil
des années, par Alex Williams en 2011 :
http://www.readwriteweb.com/cloud/2011/01/the-concept-of-linked-data.php
L'année 2015 sera celle du Zettabyte
de données, selon Sanjeev Ramachandran en 2011 :
http://www.devicemag.com/2011/06/24/zettabytes-coming-of-age-we-know-you-are-wondering-what-they-are/
Marché
L'approche SaaS, ou Software as a Service, permet à un usager
de louer un service en fonction de diverses modalités de paiement.
En 2012, Sasha Greif discute des risques d'atteindre
un niveau de saturation dans ce modèle, à force de tirer des sous
ici et là des usagers :
Texte d'Alex Payne en 2012 expliquant comment ne
pas vendre du logiciel : http://al3x.net/2012/02/29/how-not-to-sell-software-in-2012.html
Selon Rachel Andrew en 2012, il ne vaut plus la
peine de se créer des problèmes en supportant des fureteurs trop
anciens comme IE6 ou IE7 (et
même IE8, selon elle...) : http://www.rachelandrew.co.uk/archives/2012/03/21/stop-solving-problems-you-dont-yet-have/
(notez qu'elle n'insiste pas sur les versions de
Firefox,
Chrome ou
Opera car
leurs utilisateurs tendent à se tenir un peu plus à jour).
Réflexion de Trey Smith en 2012 sur la chute
d'Angry Birds et l'impact des jeux gratuits sur le marché :
http://www.treysmithblog.com/the-fall-of-angry-birds/
Internationalisation et localisation :
Mashups
L'organisation OpenMashup.org, qui vise à augmenter l'interopérabilité
des composants sur le Web : http://www.openmashup.org/
Network Address Translation (NAT)
Contourner les contraintes d'un NAT? L'outil
pwnat : http://samy.pl/pwnat/
Nommage
Dans le monde des services répartis, on trouve plusieurs approches au
nommage unique des ressources (des objets, des entités, des services,
etc.). Certaines sont universelles,
d'autres sont associées de plus près au monde du Web.
URI
Une URI, pour Uniform Resource Identifier,
est une manière d'identifier de façon unique toute ressource.
En gros, il s'agit d'un chapiteau regroupant à la fois les
URL et les URN.
Pour en savoir plus :
URL
Une URL, pour Uniform Resource Locator,
est un descriptif du chemin menant vers une ressource, de manière non-ambiguë.
En prenant pour exemple la forme la plus connue, soit celle associée
au protocole http, elle se compose :
- D'un identifiant de protocole (p. ex. : http,
https, ftp,
file, etc.);
- Du jeton « :// »;
- D'un nom de domaine (p. ex. : h-deb.ca),
qui sera traduit en adresse IP;
- De manière optionnelle, du jeton « : »
suivi d'un port (p. ex. : :8080);
- D'un chemin, en fonction duquel les règles (p. ex. : sensible
ou non à la casse) dépendent du serveur sur lequel la ressource
se trouve (p. ex. : /Sujets/Web/Developpement-Web.html);
- De manière optionnelle, d'un fragment, (p. ex. :
#url); et
- Des informations supplémentaires, selon les technologies. Par exemple,
le jeton « ? » suivi d'une
chaîne de caractères contenant de l'information destinée
au serveur qui gérera celle-ci comme les paramètres d'une requête
http de type GET.
Pour atteindre de manière inéquivoque la section
URL que vous lisez présentement, l'URL est
donc http://h-deb.ca:80/Sujets/Web/Developpement-Web.html#url
(mais le port, :80, est optionnel puisque c'est
le port par défaut pour le protocole http).
Pédagogie :
Pour en savoir plus :
URN
Une URN, pour Uniform Resource Name, est
un nom qui se veut persistant et sans ambiguïté pour identifier
une ressource. Un URN est indépendant du
lieu où est entreposé une ressource, alors qu'une
URL est directement associée à un lieu.
Les URN suivent la forme urn:NID:NSS
où NID est un espace nommé
et NSS est une chaîne de caractères
soumise à des règles qui varient selon les espaces nommés.
Le jeton urn, préfixe dans cette notation,
est insensible à la casse.
Pour en savoir plus :
Outils
Plusieurs outils (plusieurs d'entre eux gratuits!) existent pour aider au développement
pour le Web. En voici quelques-uns :
- Les générateurs de sites statiques, une introduction par Michael
Gardner en 2011 : http://www.mickgardner.com/2011/04/27/An-Introduction-To-Static-Site-Generators.html
- Mesurer le temps de chargement d'une page Web avec Google Analytics :
http://www.dev-articles.com/article/Google-Analytics:-measure-page-load-time-409001
- La bibliothèque Google Tasks : https://code.google.com/intl/fr/apis/tasks/index.
- La bibliothèque Crawljax, outil Java
pour tester et naviguer des applications de type Ajax :
http://crawljax.com/
- L'API nommée DuckDuckGo Zero-click, de
type REST : http://www.mashape.com/apis/DuckDuckGo%20Zero-click%20Info
- La bibliothèque heatmap.js, en JavaScript,
qui génère des cartes caloriques pour des sections
canvas d'un document HTML5 : http://www.patrick-wied.at/static/heatmapjs/
- La bibliothèque head.js, en JavaScript,
pour charger des scripts en parallèle : http://headjs.com/
- L'outil DOM Snitch de Google, pour détecter des vulnérabilités
sur un site Web : http://www.pcworld.com/article/230849/google_builds_developer_tool_to_flag_web_app_vulnerabilities.html
- L'outil Collusion, qui montre en temps réel les entités qui
suivent votre progression sur le Web :
- Pour celles et ceux qui souhaitent développer à l'aide de
Firefox, plusieurs outils sont disponibles, et Robert Nyman, en
2011, en présente quelques-uns : http://hacks.mozilla.org/2011/11/firefox-tons-of-tools-for-web-developers/
- une liste d'outils à la ligne de commande pour développeurs
Web, par Ben Dowling en 2011 : http://www.coderholic.com/invaluable-command-line-tools-for-web-developers/
- l'API de Google+, décrite par Brian Krassenstein
en 2011 : http://plusheadlines.com/google-api-is-here/2092/
- à propos de l'API de Google Maps et d'éventuels
coûts à l'utilisation, par Adam DuVander en
2011 : http://blog.programmableweb.com/2011/10/27/google-maps-usage-fees-how-many-developers-will-have-to-pay/
- une API de géolocalisation du W3C :
http://dev.w3.org/geo/api/spec-source.html
- la bibliothèque .NET nommée Html
Agility Pack, pour faciliter le traitement de documents
HTML : http://htmlagilitypack.codeplex.com/
- une liste de sources imposantes de données accessibles au public :
http://www.quora.com/Data/Where-can-I-get-large-datasets-open-to-the-public
- un petit service permettant de créer une URL
à usage unique, pour partager un secret : https://onetimesecret.com/
- une série de feuilles de références (Cheat Sheets)
pour le développement Web : http://www.backtoessentials.com/tools/40-useful-print-ready-cheat-sheet-for-web-developers/
- quelques trucs pour profiter de curl,
répertoriés par Kris Jordan en 2012 :
https://httpkit.com/resources/HTTP-from-the-Command-Line/
- les outils Google Analytics expliqués aux programmeurs, par Jan
Filipowski en 2012 :
http://blog.arkency.com/2012/12/google-analytics-for-developers/
Questions d'ordre général :
Silverlight
Technologie de Microsoft (du côté du code ouvert, l'équipe
derrière Mono avait aussi échafaudé Moonlight, un équivalent
compatible en grande partie) pour dynamiser le volet client des applications
Web à même les outils et langages de la plateforme
.NET.
Quelques liens pédagogiques suivent :
Portez attention à la chronologie, car en
2012, l'avenir de cette technologie ne semble pas très rose.
Quelques liens d'ordre général sur le sujet :
- Article de Michael Hickins en 2007, mettant
en relief le futur enthousiasmant de la plateforme Silverlight : http://www.internetnews.com/dev-news/article.php/3672001
- Texte de 2008 décrivant l'approche de
mise en marché de Microsoft pour Silverlight : http://neosmart.net/blog/2008/redesigned-microsoft-website-to-use-silverlight/
- En 2008, Scott M. Fulton III relate l'entente
entre Microsoft et Novell qui a sanctionné le développement
de Moonlight : http://betanews.com/2008/11/19/novell-and-microsoft-sanction-silverlight-work-alike-for-linux/
- Texte de 2008 par Eric Lai qui met en relief
le côté attirant de la plateforme Silverlight pour les programmeuses
et les programmeurs : http://www.computerworld.com/s/article/9117023/Microsoft_woos_developers_under_the_Silverlight
- En 2009, Martin Heller dit percevoir Silverlight
comme un compétiteur direct de Flash :
http://www.infoworld.com/d/developer-world/first-look-microsoft-silverlight-3-challenges-adobe-air-216
- En 2009, Tim Anderson critique un biais pro-Windows
de Silverlight, pourtant présenté comme un outil pour le Web,
plateforme ouverte par excellence : http://www.theregister.co.uk/2009/11/20/silverlight_4_windows_bias/http://www.theregister.co.uk/2009/11/20/silverlight_4_windows_bias/
- Texte de Sean Michael Kerner en 2009 relatant
que Moonlight a le feu vert : http://www.linuxplanet.com/linuxplanet/reports/6932/1/
- En 2010, article sur le blogue officiel de Silverlight
discutant du futur de cette plateforme : http://blogs.msdn.com/b/silverlight/archive/2010/09/01/the-future-of-silverlight.aspx
- Article de 2010 par Tom Arah qui soulève
la question, à savoir si Silverlight revient des morts : http://www.pcpro.co.uk/blogs/2010/12/03/silverlight-5-back-from-the-dead/
- En 2011, article de Brett Winterford relatant
que les développeurs Silverlight réagissent à la perception
(assez répandue) qu'avec Windows
8, cette plateforme perdra sa pertinence : http://www.itnews.com.au/News/259910,silverlight-developers-rally-against-windows-8-plans.aspx
- En 2011, Mike James relate que l'équipe
de développeurs de SkyDrive abandonne Silverlight : http://www.i-programmer.info/news/81-web-general/2640-skydrive-drops-silverlight.html
- Texte de James R. Borck en 2011 à propos
de la chute et du retour de Silverlight : http://www.infoworld.com/d/application-development/the-fall-and-rise-microsoft-silverlight-163
- En 2011, texte de plusieurs développeurs
Silverlight implorant Microsoft de supporter Silverlight en plus de
HTML5 avec Windows
8 : http://forums.silverlight.net/t/230744.aspx
- Texte de Vlad Savov en 2011 qui laisse entendre
la possibilité que Microsoft cesse sous peu le développement
de Silverlight : http://www.theverge.com/2011/11/9/2548975/microsoft-may-halt-development-work-on-silverlight-after-next-release
- En 2011, Mary Jo Foley va plus loin, se demandant
s'il y aura une version 6 de Silverlight... et même s'il vaut la peine
de s'en préoccuper : http://www.zdnet.com/blog/microsoft/will-there-be-a-silverlight-6-and-does-it-matter/11180
(plus tôt la même année, elle relatait le lancement de
Silverlight 5 : http://www.zdnet.com/blog/microsoft/microsoft-releases-silverlight-5/11391)
- En 2011, Tim Anderson écrit sur trois
plateformes qu'il juge mourantes, soit Flash,
Silverlight et Win32 : http://www.itjoblog.co.uk/2011/11/dying-platforms.html
- En 2012, Ian Elliot indique que Mono considère
que Silverlight est mort, et cesse le développement de Moonlight :
http://www.i-programmer.info/news/89-net/4282-mono-kills-open-source-silverlight.html
- Entrevue avec Miguel
de Icaza en 2012 où il explique sa
décision d'abandonner Moonlight (et Silverlight par le fait-même) :
http://www.infoq.com/news/2012/05/Miguel-Moonlight
- Il semble que ce soit vraiment la fin, du moins si on se fie à ce constat
de Tim Anderson en 2012 :
http://www.itwriting.com/blog/6924-microsoft-silverlight-shattered-into-a-million-broken-urls.html
- Texte de 2013 par Scott Barnes, selon qui Microsoft préfère maintenant Flash
à Silverlight :
http://www.riagenic.com/archives/1058
- Un autre clou dans le cercueil... En 2013,
Netflix abandonne Silverlight pour HTML5...
dans Internet
Explorer 11! Texte d'Emil
Protalinski :
http://thenextweb.com/insider/2013/06/26/netflix-ditches-silverlight-with-support-for-html5-video-in-ie11-available-today-with-windows-8-1-preview/
- Edge complète en bonne partie
la mise à mort de Silverlight, selon Chris Duckett
en 2015 :
http://www.zdnet.com/article/silverlight-dumped-in-microsoft-plugin-spring-cleaning-with-edge/
Protocoles
Le monde du Web et des systèmes répartis est bâti en entier
sur un ensemble de protocoles. Vous trouverez ci-dessous un ensemble (non-exhaustif)
de sections portant sur certains des plus importants d'entre eux.
Protocole http
L'information pour ce style protocole a été regroupée dans
http.html
Protocole https
Le protocole http transfère des documents
en clair. Pour sécuriser en partie les échanges sur le Web, en
particulier lors de transactions électroniques, mais aussi pour une variété
d'échanges impliquant le transfert de données personnelles un
« sensibles », ajouter une strate de chiffrement aux communications
est nécessaire. C'est ce qu'offre le protocole https.
En 2010, Chris Palmer explique comment déployer
https correctement : https://www.eff.org/https-everywhere/deploying-https
Vivre (correctement) avec https, un texte d'Adam
Langley en 2012 : http://www.imperialviolet.org/2012/07/19/hope9talk.html
En 2012, Valentin Golev nous demande si nous prenons
soin de vérifier les certificats https côté
client : http://unfoldthat.com/2012/07/30/does-https-to-api-make-any-sense.html
Dans ce texte de 2011, Dave Ward explique pourquoi
il est important qu'une page sécurisée ne réfère
qu'à d'autres contenus sécurisés. Il suffit d'un seul accès
non-chiffré pour tout gâcher : http://encosia.com/cripple-the-google-cdns-caching-with-a-single-character/
Comprendre le fonctionnement de https, texte de
Hartley Brody en 2013 :
http://blog.hartleybrody.com/https-certificates/
Protocole JSON
Le terme JSON signifie JavaScript
Object Notation. Il s'agit d'un format facilitant grandement la représentation
des structures de données relativement simples qu'on rencontre par exemple
dans les échanges RPC, surtout en comparaison
avec la complexité des formats XML.
Vous trouverez plusieurs liens thématiques sur le sujet, de même que des
exemples d'utilisation de ce format, sur JSON.html
Protocole sftp
Tout comme https permet de
sécuriser en partie les échanges http,
le protocole sftp est (grossièrement) une
sorte de pendant ssh de ftp.
Comment faire en sorte que les échanges sftp soient
rapides, selon Daniel Stenberg en 2010 : http://daniel.haxx.se/blog/2010/12/08/making-sftp-transfers-fast/
L'approche REST
L'information pour ce style architectural a été regroupée dans
REST.html
Serveurs Web
Le serveur Apache Axis 2 : http://axis.apache.org/axis2/java/core/
Le fichier de configuration d'Apache, un texte de 2011 :
http://commandlinefanatic.com/cgi-bin/showarticle.cgi?article=art004
Configurer un serveur Web robuste et sécuritaire, par Lee Hutchinson en
2012 :
http://arstechnica.com/gadgets/2012/11/how-to-set-up-a-safe-and-secure-web-server/
Écrire un serveur Web avec
Python, série d'articles par Ruslan Spivak en
2015 :
Pour un guide au Web Hosting, donc pour savoir comment amener votre
site Web à la disposition des gens, les gens derrière
http://www.whoishostingthis.com/resources/web-hosting/ m'ont proposé leur
site. Ça m'a semblé pas si mal alors voilà.
La bibliothèque Ponyo, pour écrire des serveurs Web en
ML :
http://ponyo.org/handbook/ponyo-basics/3
Services Web
En 2011, Gary Shutler explique son approche
à la conception de services Web : http://www.robustsoftware.co.uk/post/3163820769/pragmatic-web-service-design
Témoignage en 2011 de Robert Laing,
chef d'entreprise, qui relate une liste des services Web auxquels a recours
son entreprise quotidiennement : http://mygengo.com/about-us/blog/15-web-services-we-rely-on-every-day/
L'outil Wolfram Alpha, si
chic soit-il, n'est pas un service Web destiné aux programmes,
comme l'a constaté une entreprise en 2011 :
http://blog.agiletortoise.com/post/3564424414/wolfram-alpha-doesnt-get-it
(les choses ont – un peu – changé depuis : http://blog.agiletortoise.com/post/3587122629/wolfram-listens-and-changes-policy-but-not-tos).
Quels seraient les avantages et les inconvénients d'offrir des services
Web immuables? Une réflexion de Bruce Hauman en 2013 :
http://rigsomelight.com/2013/06/17/immutable-data-service.html
Que sont les Amazon Web Services (AWS)?
https://www.expeditedssl.com/aws-in-plain-english
Travailler avec JAX-WS, par Upendra Chintala en
2012 :
Parmi les protocoles les plus répandus pour faire interopérer
deux homologues à partir de services Web, on trouve en particulier :
Les services Web peuvent en théorie être répertoriés
dans des annuaires UDDI, pour Universal
Description Discovery and Integration. En pratique, ce « rêve »
n'a pas été réalisé, mais bon, ça arrive.
Pour en savoir plus :
|
On me demande souvent de livrer quelques services Web commerciaux avec
lesquels il seraitr possible d'interfacer pour expérimenter.
Voici une courte liste comprenant des services que des étudiant(e)s
m'ont suggéré au fil des sessions :
Vous trouverez aussi des exemples dans la section décrivant le
format WSDL.
N'hésitez pas à m'en suggérer d'autres!
|
Java
et les services Web :
En 2016, Iris Classon démontre comment il est
possible de développer en quelques minutes un client capable de consommer une API
de données météo avec
C# :
http://irisclasson.com/2016/11/24/weather-api-in-five-minutes/
Écrire un service Web avec
bash,
par Henry Snopek en 2017 :
https://hackernoon.com/a-web-service-written-in-pure-bash-2af847902df1
Microservices
Certains tendent vers les microservices, soit des services qui font une seule
chose mais la font bien. À ce sujet :
- Série de textes par
Martin Fowler sur le sujet :
- Cas d'espèces :
- En 2015, Christian Posta affirme qu'en
pratique, nous ne ferons pas vraiment de microservices :
http://blog.christianposta.com/microservices/youre-not-going-to-do-microservices/
- Réflexion de Ben Morris en 2015 sur la taille à
laquelle on s'attend d'un microservice, mais surtout sur ce qui se colle à un
microservice et contribue à sa simplicité comme à sa complexité :
http://www.ben-morris.com/how-big-is-a-microservice/
- Dans ce texte de 2015, David Boike se demande
si les microservices sont une véritable vague ou s'il ne s'agit que de vent :
http://particular.net/blog/microservices-future-or-empty-hype
- Textes d'Arnon Rotem-Gal-Oz :
- Trois questions à se poser avant de se lancer dans les microservices, selon
Art O. Cathain en 2015 :
https://blog.tilca.co.uk/technology/entry/microservices-3-questions-for-your
- Textes de Robert C. Martin :
- Construire des microservices à partir d'une
Façade, par Chris Richardson en
2015 :
http://nginx.com/blog/building-microservices-using-an-api-gateway/
- En 2015, Phil Calçado explique comment
SoundCloud en est arrivé à utiliser des microservices :
http://philcalcado.com/2015/09/08/how_we_ended_up_with_microservices.html
- Considérations pratiques dans la conception d'une architecture à base de
microservices avec
Java,
par Emad Benjamin en 2014 :
https://vmjava.wordpress.com/2014/08/15/practical-microservice-architecture-and-implementation-considerations/
- Prendre le virage vers les microservices, texte de
2015 :
https://maketechsimple.wordpress.com/2015/10/30/embracing-microservices/
- Transformer du code
Ruby
et Rails pour en faire un microservice, par Leigh Halliday en
2015 :
http://blog.codeship.com/architecting-rails-apps-as-microservices/
- À propos des monolithes et des microservices, un texte de
2015 par Guido Steinacker :
http://dev.otto.de/2015/09/30/on-monoliths-and-microservices/
- En 2016, Jan Stenberg met en garde contre es
microservices qui se transforment en un monolithe réparti :
http://www.infoq.com/news/2016/02/services-distributed-monolith
- Critiques :
- Justin Leitgeb, dans ce texte de 2015, discute
des coûts cachés des microservices :
http://www.stackbuilders.com/news/the-hidden-costs-of-microservices
- quelques mauvaises pratiques avec les microservices, répertoriées par Vijay Alagarasan
en 2015 :
http://www.infoq.com/articles/seven-uservices-antipatterns
- en 2015, Stavros Korokithakis rappelle que tout n'est pas rose dans le monde des microservices :
http://www.stavros.io/posts/microservices-cargo-cult/
- texte de Steve Shogren en 2016 qui présente
les microservices comme une mode :
http://deliberate-software.com/pop-culture-architecture/
- dans ce texte de 2016, Christian Posta
explique qu'à son avis, entre vouloir faire des microservices et le faire
réellement, il y a une vaste marge :
http://blog.christianposta.com/microservices/youre-not-going-to-do-microservices/
- texte de 2016 qui annonce la fin des
microservices :
http://lightstep.com/blog/the-end-of-microservices/
- pratiques malsaines avec les microservices, décrites en 2016
par Piotr Ciemielewski :
http://allegro.tech/2016/01/microservices-and-macro-mistakes.html
- quelques pièges et quelques faussetés associées aux microservices, selon
Sean Kelly en 2015 :
https://blog.komand.com/microservices-please-dont
- en 2017, Stephen Bly critique l'adoption
aveugle des microservices comme pratique d'entreprise :
https://medium.com/@stephenebly/the-microservices-misconception-684bc0584bb6
- Quand une communication suivant REST peut
convenir aux microservices, un texte de 2016 par
Daniel Westheide:
https://www.innoq.com/en/blog/why-restful-communication-between-microservices-can-be-perfectly-fine/
- Organiser les microservices, un texte de Peter Lawrey en
2016 :
https://vanilla-java.github.io/2016/06/30/Goldilocks-Microservices.html
- Texte de 2016 par Asim Aslam, qui explique
comment, selon lui, une entreprise peut faire le choix des microservices, et
réussir :
https://medium.com/@asimaslam/why-companies-adopt-microservices-and-how-they-succeed-2ad32f39c65a
- En 2016, Kasper B. Graversen fait les louanges des microservices
factices :
http://firstclassthoughts.co.uk/Articles/Design/RefactoringToMicroServicesFakeMicroServices.html
- En 2016, Graham Lea présente les transactions
réparties comme les « icebergs des microservices » :
http://www.grahamlea.com/2016/08/distributed-transactions-microservices-icebergs/
- Dans ce texte de 2016, John McLean présente
l'adoption de l'approche par microservices qu'a vécu son équipe comme une
« approche accidentelle », et vante au passage les mérites de cette façon de
faire :
https://articles.microservices.com/microservices-the-accidental-architecture-926e6d8762c1
- À propos de la communication entre microservices, un texte de
2016 par Leigh Halliday :
https://blog.codeship.com/microservice-communication-queues/
- En 2016, Piotr Gankiewicz relate ses premiers
pas dans la rédaction de microservices :
http://piotrgankiewicz.com/2016/11/28/so-ive-been-doing-microservices/
- Texte de 2016 où l'auteur relate ce qui, dans
son expérience, fait qu'un microservice sera de qualité ou sera moche :
https://medium.com/@rdsubhas/rest-in-peace-to-microservices-or-not-6d097b6c8279
- Texte de Yolande Poirier en 2016, qui vise à
démystifier les microservices en nous guidant à travers les moments clés d'une
présentation sur le sujet :
https://blogs.oracle.com/java/microservices-for-mortals
- Petit guide proposé par Sumit Maingi en 2016,
portant sur ce qu'il vaut mieux savoir avant d'écrire des microservices :
https://cloudncode.wordpress.com/2016/07/22/msa-getting-started/
- Que sont les microservices, et à quoi servent-ils? Un texte de
2017 :
https://blogs.msdn.microsoft.com/najib/2017/01/03/what-are-microservices-and-why-should-you-care/
- Quelques exemples de microservices et de monolithes, présentés dans un
texte de 2016 :
https://medium.freecodecamp.com/rest-in-peace-to-microservices-or-not-6d097b6c8279
- Introduction aux enjeux associés aux microservices, proposée par Alexandra
Huff en 2017 :
- Texte de 2016 par Adrian Cloyer, qui discute de
la différence conceptuelle entre une approche monolithique et une approche
reposant sur des microservices :
https://blog.acolyer.org/2016/09/13/data-on-the-outside-versus-data-on-the-inside/
- En 2017, Daniel Bryant discute du bon design des microservices :
https://www.infoq.com/news/2017/02/microservices-design-observe
- Combiner des pseudo-URI et des microservices, par Phil Calçado en 2017 :
http://philcalcado.com/2017/03/22/pattern_using_seudo-uris_with_microservices.html
- Valider l'identité des usagers d'un microservice, par Bill Doerrfeld en
2015 :
http://nordicapis.com/how-to-control-user-identity-within-microservices/
- Un guide de bonnes et de moins bonnes pratiques avec les microservices, par
Mark Richards en 2016 :
http://www.oreilly.com/programming/free/files/microservices-antipatterns-and-pitfalls.pdf
- Un guide de bonnes pratiques avec les architectures basées sur les microservices, par
Vinay Sahni :
http://www.vinaysahni.com/best-practices-for-building-a-microservice-architecture
- Transcription partielle d'une conférence sur les microservices offerte
par Neil Ford en 2017 :
http://ridingthecrest.com/blog/2017/06/10/neil-ford-microservices-ujug-march-2017.html
- En 2017, Lucas Carlson explique pourquoi il
est à ses yeux sage d'utiliser des microservices pour développer des
applications :
http://www.javaworld.com/article/3200187/application-development/why-you-should-use-microservices.html
- Quelques schémas de
conception pour les microservices, répertoriés par Chris Richardson :
http://microservices.io/patterns/
- Partitionner les données entre les microservices, texte de
2018 par Christian Horsdal :
https://www.developer.com/design/how-to-partition-your-data-between-microservices.html
- « Le belle, le beau et le truand » à propos des microservices, par
J. P. La Torre en 2018 :
https://caylent.com/microservices-good-bad-ugly/
- Le développement d'applications, dans une perspective architecturale de
microservices, selon Aben George en 2018 :
https://blog.appscrip.com/what-is-microservice-architecture-in-app-development/
- En 2017, Kasun Indrasiri discute
d'architectures de microservices stratifiés :
https://medium.com/microservices-in-practice/microservices-layered-architecture-88a7fc38d3f1
- Le véritable intérêt des microservices, de l'avis d'Erik Bernhardsson en
2018 :
https://erikbern.com/2018/06/04/missing-the-point-about-microservices.html
- Texte de 2018 par Simon Griffiths qui compare
les microservices à une approche
SOA :
https://www.flowgear.net/blog/microservices-vs-soa
- En 2021, Avery Pennarun réfléchit sur la
relation complexe entre les microservices et les bloc monolithiques :
https://tailscale.com/blog/modules-monoliths-and-microservices/
Témoins (Cookies)
Un témoin est une unité d'entreposage côté client
dans une relation client/ serveur sur le Web. Chaque témoin est associé
à une URL d'origine; plusieurs témoins
peuvent être associés à une même
URL; les témoins sont locaux à chaque fureteur (donc si
vous réalisez une transaction électronique impliquant des témoins
avec un fureteur, il est probable qu'un autre
fureteur sur le même ordinateur
n'en sache rien). Un témoin ne peut contenir que de petites quantités
d'information (4 Ko maximum).
Un Wiki sur le sujet : http://en.wikipedia.org/wiki/HTTP_cookie
Un exemple simple de manipulation de témoins avec du code JavaScript :
JavaScript-Temoin.html
Une réflexion sur les risques inhérents au recours à des
témoins, par Jeff Atwood en 2010 : http://www.codinghorror.com/blog/2010/11/breaking-the-webs-cookie-jar.html
L'API nommée evercookie
pour JavaScript,
qui permet de créer des témoins extrêmement persistants :
http://samy.pl/evercookie/
Les témoins zombies, qui ne veulent pas mourir : http://www.infoworld.com/t/internet-privacy/zombie-cookies-wont-die-microsoft-admits-use-and-html5-looms-new-vector-170511
Des témoins persistants et impossibles à bloquer, à l'aide
des en-têtes http, par
Nik Cubrilovic en 2011 : http://nikcub.appspot.com/persistant-and-unblockable-cookies-using-http-headers
En 2011, Microsoft a cessé d'utiliser des
« super témoins » dans MSN :
Un bogue fondamental des témoins : ils ne connaissent pas leur origine. Texte
d'Egor Homakov en 2013 :
http://homakov.blogspot.com.es/2013/07/core-flaw-of-cookies.html
Simuler des témoins... sans témoins, et compromettre la vie privée des gens.
Texte de 2013 :
http://lucb1e.com/rp/cookielesscookies/
WebRTC
Une technologie destinée à permettre une communication audiovisuelle en « temps
réel » à travers le Web, et reposant strictement sur une API
accessible par JavaScript.
Websockets
Les Websockets permettent à un client Web de transiger avec le reste
du monde de manière bidirectionnelle à travers
TCP.
Un Wiki sur le sujet : http://en.wikipedia.org/wiki/WebSockets
Un site proposant des exemples de code de Websockets : http://websocket.us/
Le RFC 6455, qui officialise en
2011 le protocole des Websockets : http://www.ietf.org/mail-archive/web/ietf-announce/current/msg09663.html
(le RFC lui-même est http://www.rfc-editor.org/rfc/rfc6455.txt)
Utiliser les Websockets avec Clojure,
selon Jay Field en 2011 : http://blog.jayfields.com/2011/02/clojure-web-socket-introduction.html
Un descriptif du Code Project, texte de 2011 par
Wayne Ye : http://www.codeproject.com/KB/HTML/Web-Socket-in-Essence.aspx
Les performances des Websockets, par Drew Harry en 2011 :
http://drewww.github.com/socket.io-benchmarking/
En 2011, Bruce Eckel expérimente avec les
Websockets à l'aide de Python
et de CoffeeScript :
http://www.artima.com/weblogs/viewpost.jsp?thread=339100
Écrire un SCS
avec Websockets en Scala,
un texte de Jean-François Arcand en 2012 :
http://jfarcand.wordpress.com/2012/02/10/writing-clientserver-websocket-application-using-scala/
Exemple de SCS
d'écho à l'aide de
Websockets, texte de 2012 par Brian Raymor :
http://www.sitepoint.com/websockets-stable-and-ready-for-developers/
Textes de John McCutchan :
Java
7 version EE et les Websockets, un texte d'Arun Gupta en
2012 : https://blogs.oracle.com/arungupta/entry/websockets_and_java_ee_7
Un « Websockets 101 » proposé
par Armin Ronacher en 2012 : http://lucumr.pocoo.org/2012/9/24/websockets-101/
Un daemon de Websocket :
http://websocketd.com/
Le projet Seasocks, Un serveur de Websockets pour
C++,
par Matt Godbolt en 2015 :
http://xania.org/201503/seasocks-an-embedded-websocket-server-for-c-plus-plus
Reconnecter un Websocket en temps réel... sans noyer le serveur, par John
Ryding en 2014 :
http://blog.johnryding.com/post/78544969349/how-to-reconnect-web-sockets-in-a-realtime-web-app
Les Websockets en
Ruby à
partir de rien, un pas à pas par Jamie Patel en 2015 :
https://blog.pusher.com/websockets-from-scratch/
Les Websockets expliqués par Dmitriy Rogatkin en 2015 :
http://www.infoq.com/articles/websocket-desktop-agility-web-applications
En 2015, Sam Saffron rappelle qu'il n'y a rien de
simple aux Websockets :
https://samsaffron.com/archive/2015/12/29/websockets-caution-required
Écrire un serveur de Websockets en
Go, par
eli Bendersky en 2016 :
http://eli.thegreenplace.net/2016/go-websocket-server-sample/
Visualiser les paquets sur des Websockets, par James Hague en
2016 :
http://prog21.dadgum.com/225.html
Web Workers
Les Web Workers dynamisent le code exécuté côté client sur une page Web, se
comportant comme des tâches soumises à un
thread pool.
Petite introduction aux Web Workers, par Brian Cooksey en 2013 :
https://zapier.com/engineering/intro-to-web-workers/