Et là en lisant le titre vous vous dites : « mais mais mais… qu’est-ce qu’il va encore nous raconter ?! ». Je vais vous conter une histoire qui s’est déroulée il y a peu de temps et qui m’a bien surpris, et sur plusieurs aspects. Cela se passe sur iOS, smartphones et tablettes confondus (a priori)

Loin de moi la possibilité de tester la chose avec tous les appareils, mais d’après ce que j’ai pu tester, iOS provoque quasi inévitablement des 404 dans les logs de votre serveur en automatisant certaines requêtes à des moments bien précis.

Les symptômes

Il n’y a pas longtemps, un client revient vers moi pour me préciser que son tout nouveau site sous WordPress lui renvoie des erreurs 404. M’envoyant une liste des URLs issues des logs de son serveur, je me rends compte que des fichiers PNG sont manquants.

/apple-touch-icon-114x114-precomposed.png
/apple-touch-icon-114x114.png

Ces appels avaient la particularité de ne pas avoir de referer (page vue précédemment par le visiteur, qui contient donc théoriquement le lien vers les ressources précitées).

Le hic c’est que ce site n’était pas prévu responsive et qu’aucun appel n’était fait explicitement dans le code source (il faut normalement utiliser des balises link spécifiques).
Je vérifie donc sur l’onglet réseau de mon outil de débogage : rien à signaler.

Un tiens vaut mieux que deux tu l’auras

N’ayant aucune erreur visible, et compte tenu des deux seules images attendues provoquant ces erreurs, je me suis dit qu’il fallait tester en live à partir d’un terminal Apple. J’ai donc testé à partir d’une mini-tablette iPad pour voir à quel moment la visite du site sur ce terminal pouvait provoquer ces erreurs.
Il pouvait très bien s’agir d’une tentative d’appel comme un navigateur s’attend à trouver un favicon.ico à la racine.

Bref, avec mon collègue Rodolphe nous avons donc lancé un bête test sur notre serveur avec les logs en live sous notre nez. Nous avons donc créé une page web vide.

  • Connexion à la page web : pas d’erreur
  • Ouverture des options de partage de la page… Paf !

Deux erreurs sont provoquées dès que le bouton :
Bouton de partage iOS
est activé par l’utilisateur.

En effet la commande « Sur l’écran d’accueil » affiche une prévisualisation de l’icône qui pourrait s’afficher sur l’accueil de votre smartphone. Pour cela iOS fait plusieurs requêtes vers des noms précis d’icônes, puis s’il ne les trouve pas il créé une miniature de la page en guise d’icône.

Conclusion

Difficile de conclure simplement…
Faudrait-il systématiquement créer des icônes ? Cracher sur Apple ? Ou plutôt ignorer simplement les 404 qui vont s’afficher dans vos logs ? À vous de voir !