En route pour HTTP/2.0

86
24
mai
2012
Technologie

HTTP est devenu au cours des dernières années le protocole à tout faire. Au départ prévu pour servir de l'information structurée par lien hypertexte, il est aujourd'hui utilisé pour tout et n'importe quoi. Cette évolution ne va pas sans poser de problèmes. C'est pourquoi sous l'égide de l'IETF un groupe de travail httpbis s'est mis en place.

Logo IETF

Une nouvelle mouture du protocole tarte à la crèmeHTTP est donc en route. Faisons un petit tour de son histoire et des projets en cours, avant d'écouter ce qu'à a nous en dire Willy Tarreau qui s'est particulièrement investi dans le groupe de travail httpbis.

NdM : Merci à Nÿco, Florent Zara, patrick_g, Raoul Volfoni, baud123, warwick, Nils Ratusznik, NeoX, zebra3 et Benoît pour leur contributions à cette dépêche.

Journal spdy://

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
43
19
avr.
2012

«Pour accélérer le web, l'augmentation de la bande passante ne devrait pas être la seule solution»
SPDY (speedy) est un protocole visant à accélérer le chargement des pages. Contrairement à quelques essais précédents, SPeeDY ne nécessite pas de modifications de l'infrastructure, se situant au dessus de tcp. Ce projet a démarré début 2011, et finaliser son implémentation à la fin 2011. Aujourd'hui c'est le module au service de Apache qui vient d'arriver dans les bacs… Et c'est ce qu'il vaut (…)

ExaProxy, un proxy HTTP filtrant

Posté par  (site web personnel) . Édité par Lucas Bonnet et claudex. Modéré par patrick_g. Licence CC By‑SA.
Étiquettes :
26
1
mar.
2012
Technologie

ExaProxy est un nouveau proxy HTTP s'ajoutant à une longue liste de logiciels libres (SQUID, haproxy, varnish, tinyproxy…). Il se place dans le secteur de niche des proxy filtrants principalement desservis commercialement par des entreprises comme BlueCoat ou Fortinet.

Dans ce domaine, SQUID est la plus connue des solutions libre grâce à une interface simple permettant l’écriture rapide de modules de filtrage qui reçoivent l'IP de hôte connecté avec la requête faite. SQUID supporte aussi ICAP/eCAP pour ceux qui veulent modifier la requête et la réponse du serveur.

Cependant, afin d'avoir un filtrage différent par IP d'origine, il est impossible d'utiliser SQUID avec un load balancer de niveau 7, comme haproxy, qui change l'IP d'origine. Seules les solutions de haute disponibilités ré-écrivant l'adresse MAC de destination (comme ipvsadmin) sont adaptées. De plus, SQUID ne présente pas les requêtes de type CONNECT.

ExaProxy est donc un forward proxy permettant de filtrer ou router le trafic transitant dans un cluster de manière très souple, et permet l'utilisation du header X-Forwaded-For quand l'IP de l’hôte est masquée. Une autre utilisation peut être comme passerelle entre machines IPv4 et IPv6.

Le fonctionnement du serveur peut-être observé via une interface web sur le port local 8080.

Le colonel Moutarde, sur la table (de hachage), avec un livre de maths

Posté par  . Édité par baud123, claudex, Benoît Sibaud et patrick_g. Modéré par Malicia. Licence CC By‑SA.
78
30
déc.
2011
Sécurité

Quand des chercheurs en informatique font de la théorie, certains écoutent, comme les développeurs de Perl. D'autres dorment au fond de la classe : cette fois, le bonnet d'âne est pour PHP, Python, V8 (JavaScript par Google, qui sert par exemple dans node.js), Ruby (sauf CRuby), de nombreux serveurs d'applications en Java, mais aussi ASP.NET. Ils ont dû se réveiller brutalement mercredi, lors d'une présentation d'Alexander Klink et Julian Wälde au Chaos Communication Congress montrant comment saturer très simplement un serveur grâce à une attaque basée sur la complexité algorithmique.

Forum général.général git over http, casse tête...

Posté par  .
Étiquettes :
2
6
déc.
2011

Bonjour à tous.

Je cherche à monter un serveur git accessible en http/https avec un contrôle d'accès via LDAP.

La partie ldap est ok de même que la partie clone/pull via http, le tout paramétré comme il faut dans apache2.

Par contre j'ai des problèmes pour faire un git push sur le dépot distant.

Joli message d'erreur:
Cannot access URL http://monurl.com/dépot/.git/, return code 22
fatal: git-http-push failed

Et un git remote -v me donne les bonnes adresses de push (…)

Journal Apache n'apprécie pas le HTTP Range

Posté par  . Licence CC By‑SA.
37
25
août
2011

Un bug exploitable à distance a récemment été découvert sur le serveur HTTP Apache et affecterait toutes les versions depuis la 1.3.

Le bug provient de la façon dont Apache traite une requête HTTP demandant plusieurs rangées de données se chevauchant. En effet, il est possible de spécifier dans l'en-tête HTTP la rangée des données que l'on veut recevoir au lieu des données complètes. Ceci est notamment utilisé lors du téléchargement d'un fichier et permet de reprendre le téléchargement là (…)

Journal Firefox : ça continue

Posté par  .
Étiquettes :
17
28
juin
2011

Je crois que je vais vite changer de navigateur. En effet, non content de bouleverser le monde avec leur changement de numériotation, ils ont décidé de supprimer le http:// ainsi que le préfixe www dans la barre d'URL.

Je trouve ça stupide: en effet, 'URL est un bon moyen de vérifier que nous sommes bien sur le site sur lequel on doit se trouver et non sur une imitation.

Ce qui me choque c'est la phrase: "Le « www » (…)

Journal Système de messagerie pour remplacer les e-mails

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
7
9
mai
2011

Salut,

Je réfléchis en ce moment à un système de messagerie au dessus du protocole HTTP qui pourrait replacer dans une certaine mesure les e-mails. Mes buts sont:

  • de permettre une implémentation simple, en particulier en utilisant XmlHttpRequest
  • de passer partout où HTTP passe
  • d'authentifier l'envoyeur

Je propose donc un mini protocole REST que je compte commencer à implémenter bientôt.

Ce qui m'a poussé à ça, c'est la découverte des sites en .onion. Et la constatation qu'il n'y avait (…)

HTTP Strict Transport Security

Posté par  (site web personnel) . Modéré par Lucas Bonnet. Licence CC By‑SA.
47
26
avr.
2011
Internet

HTTP Strict Transport Security, ou HSTS, est un brouillon de norme Internet qui propose une méthode pour augmenter la sécurité des sites web en apportant une solution à une faille courante située entre la chaise et le clavier.

Il s'agit pour les sites web sécurisés d'indiquer au navigateur qu'il doit systématiquement forcer l'accès en HTTPS.

On est parti ! nginx 1.0.0 est sorti

Posté par  (site web personnel) . Modéré par patrick_g. Licence CC By‑SA.
Étiquettes :
44
13
avr.
2011
Internet

Nginx est à la fois un serveur HTTP et un proxy inverse pour HTTP et IMAP / POP3.
Поехали, la version 1.0.0 est sortie hier.

Développé sous licence BSD, Nginx sert fidèlement de nombreux sites Web, dont LinuxFr.org, et leur apporte performances, fiabilité et configurabilité. Des études indiquent qu’il servirait entre 6,5 % et 7 % du Web mondial (derrière Apache et IIS, mais devant Google, Lighttpd et Cherokee).

Cette version 1.0.0 arrive après 9 ans de développements soutenus et montre, s’il en est besoin, la stabilité du projet. Je vous encourage à l’essayer.

Architecture logicielle de la nouvelle version de LinuxFr.org

Posté par  (site web personnel) . Édité par Benoît Sibaud. Modéré par tuiu pol.
90
23
fév.
2011
LinuxFr.org

La nouvelle version de LinuxFr.org est en ligne depuis quelques jours. Vous nous remontez régulièrement des bugs et des propositions d'améliorations dans le suivi. Je vous encourage à continuer et à commenter / voter sur les entrées qui vous intéressent.

Voici quelques entrées sur lesquelles j'aimerais particulièrement avoir vos retours :

Je pense que vous êtes également intéressés par l'architecture logicielle de cette nouvelle version. Vous pourrez donc trouver quelques explications à son sujet en seconde partie et n'hésitez pas à poser des questions dans les commentaires.

Un nouveau serveur httpd : Ashd, A Sane HTTP Daemon

Posté par  . Modéré par tuiu pol.
Étiquettes :
25
22
sept.
2010
Linux
Ashd est un serveur HTTP conçu selon la philosophie Unix : simplicité et modularité. Ashd (A Sane HTTP Daemon) est écrit en langage C, sous licence GPLv3 et vient d'annoncer sa sortie officielle en version 0.1. Il se compose d'un ensemble de programmes simples ayant chacun un rôle bien déterminé. Ashd a été pensé selon 4 piliers fondateurs :
  • Une conception saine : en application directe de la philosophie UNIX, ashd est découpé en plusieurs programmes qui font une seule chose, mais le font bien
  • La sécurité : comme chaque processus ne fait qu'une seule chose, il est facile de restreindre ses droits au minimum dont il a vraiment besoin
  • Une configuration simple et sensée : chaque programme ayant une responsabilité limitée, il est facile de le configurer (les options en ligne de commande suffisent généralement)
  • La persistance : les processus sont persistants et peuvent ainsi garder des données de session en mémoire ou conserver des connexions vers des backends.

Ashd est composé des modules suivants :
  • htparser, pour écouter les connexions TCP et parler en HTTP avec les clients
  • dirplex, pour servir des fichiers depuis un répertoire (la réponse est déléguée à sendfile)
  • patplex, pour les règles de gestion virtuelle
  • sendfile, pour répondre aux clients avec un fichier et gérer les entêtes HTTP associés (content-type, last-modified, etc.)
  • callcgi, pour appeler des scripts CGI
  • userplex, pour servir les répertoires des utilisateurs à la /~user/ (ce programme est lancé avec l'utilisateur en question, ce qui évite les problèmes que l'on peut avoir avec apache qui tourne en www-data)...

Les pouvoirs magiques d'Unicorn 1.0.0

Posté par  (site web personnel) . Modéré par baud123.
Étiquettes :
19
19
juin
2010
Ruby
Unicorn est un serveur applicatif HTTP en Ruby comparable à Mongrel ou à Thin, sous licence GPLv2. Il est utilisé notamment par Twitter et Github et vient d'atteindre la version 1.0.

Unicorn est compatible avec Rack, une interface entre les serveurs applicatifs et les frameworks. Il peut ainsi être utilisé pour servir des applications Ruby, dont celles écrites en Ruby on Rails. Il tourne avec Ruby 1.8, Ruby 1.9 et bientôt Rubinius. Rappelons que Rubinius est une implémentation alternative de Ruby dont la version 1.0 est sortie récemment.

Unicorn s'appuie au maximum sur les noyaux Unix pour éviter de réinventer la roue. Par exemple, la répartition des requêtes entre les différents processus se fait grâce à une socket partagée. Il est également possible de mettre à jour Unicorn, l'application ou l'interpréteur Ruby sans perdre la moindre connexion.

De même, Unicorn est optimisé pour servir des clients rapides. Il est donc très souvent utilisé derrière un reverse-proxy, qui pourra bufferiser les requêtes des clients lents.

A l'inverse, utiliser Unicorn pour des connexions longues comme du Comet (Comet désigne un ensemble de techniques où un serveur maintient des connexions HTTP ouvertes pour pouvoir pousser des contenus vers les clients) ou des websockets serait très inefficace, je vous conseille pour cela de regarder Rainbows : c'est un projet inspiré d'Unicorn qui vise justement à répondre à cette problématique particulère.

Présentation de nginx

Posté par  (site web personnel) . Modéré par patrick_g.
Étiquettes :
21
17
juin
2010
Internet
Nginx est un reverse proxy et serveur web, ainsi qu'un proxy mail (IMAP et POP3), sous licence BSD. Igor Sysoev a commencé à le développer en 2002 pour un site russe à fort trafic, et depuis la popularité de nginx n'a cessé de croître. Selon netcraft, 6,5% des sites web dans le monde seraient servis par nginx.

Nginx est réputé pour ses performances et sa faible consommation mémoire. Cela vient de son architecture : au lieu de dédier un processus ou un thread pour traiter chaque requête, il utilise un modèle événementiel. Cela lui permet notamment de tenir un grand nombre de connexions simultanées sans voir sa consommation mémoire s'envoler. Des sites connus comme Wordpress, github et SourceForge l'ont choisi pour cette raison.

Nginx est également développé selon une approche modulaire : il est composé d'un cœur réduit et d'un grand nombre de modules que l'on peut choisir d'inclure à la compilation. Comme il est facile de développer un module, il en existe de nombreux et qui couvrent une large palette de fonctionnalités, des plus essentielles (SSL, fastcgi, gzip, rewrite, log) aux plus exotiques (servir des fichiers GIF vides, afficher des pages d'index aléatoires).

Si vous souhaitez télécharger nginx, 3 versions vous seront proposées : la branche 0.8 offre les dernières avancées, la branche 0.7 est la branche stable, et la branche 0.6 (legacy) est encore maintenue. La dernière version, sortie le 15 juin, est la 0.8.41. Vous pourrez l'installer sur Linux, BSD, Solaris, OSX ou encore Windows.