C'était le 01 Jan 1970 00:00:01 GMT
En réalité, c'était déjà le 1er janvier 1970. Pour beaucoup, c'est une date parmi d'autres, pour d'autres, c'est l'origine du temps, également connu sous le nom de UNIX Time, le nombre de secondes écoulées depuis le 1 Jan 1970 à minuit.
Mais je ne veux pas parler du UNIX Time cette fois-ci, mais d'un petit détail que j'ai rencontré en écrivant des flowtests pour l'un des services de Cloudflare. Le service en question est sans importance, contrairement à l'en-tête HTTP que j'ai reçue dans l'une des requêtes. Elle contenait une date qui a perturbé mon état d'esprit paisible et concentré au point de me forcer à écrire cet article :
expires: Thu, 01 Jan 1970 00:00:01 GMT
Ce qui est étrange ici n'est pas l'en-tête d'expiration, même si ce n'est pas la méthode la plus actuelle, on comprend qu'elle n'est pas destinée à invalider le cache, mais à éviter que la ressource soit mise en cache en premier lieu. Pour y parvenir, ils placent une date d'expiration dans le passé, et quelle meilleure date que celle où pratiquement aucun ordinateur électronique n'existait dans le monde, Thu, 01 Jan 1970 00:00:00 GMT.
Dans n'importe quel service, cette seconde supplémentaire ne m'aurait pas frappé, mais nous parlons de Cloudflare, de Cloudflare ! Ceux qui protègent Internet avec un mur de lampes à lave, ceux qui ont atténué certaines des plus grandes attaques DDoS de l'histoire, ceux qui ont construit 1.1.1.1, ceux qui utilisent HTTP/3 en production massive, les mêmes qui ont osé protéger même le droit des utilisateurs à un internet ouvert contre le pur abus de certains.
Cette seconde supplémentaire a été mise là pour une raison, et sûrement la réponse a-t-elle à voir avec la manière de coder les données qui sont manipulées dans les logiciels qui continuent encore de tourner et de soutenir notre civilisation.
Ce format de date n'est qu'une interface, une convention par laquelle deux ou plusieurs parties échangent des informations tout en cachant les détails internes de l'implémentation. Ce format pourrait bien représenter des dates antérieures à 1970, voire antérieures à l'an 0.
Il existe sûrement encore beaucoup de logiciels, plus ou moins anciens, qui représentent en interne le temps UNIX comme un nombre entier, mais qui accordent en outre une signification particulière au 0. Cette pratique est très courante et pas seulement pour les dates, mais pour tout type de données.
Les gens de Cloudflare, dans leur infinie sagesse, ont voulu tendre la main à tout ce logiciel qui soutient les battements de notre monde numérique, non seulement en maintenant un en-tête que les anciens systèmes comprennent encore, mais en évitant que leur implémentation interne échoue misérablement à cause d'un zéro spécial.
Note : La méthode recommandée pour éviter le cache est via Cache-Control: no-store
Comentarios