HTTP2_SESSION_RECV_INVALID_HEADER
--> error = "Invalid character in header name."
--> header_name = "last-modified:"
--> header_value = "Thursday,%2009-Aug-2018%2001:21:53%20GMT"
Ce message d'erreur empêche l'affichage de contenu statique dans Chrome.
Le problème s’est révélé être les deux points dans header_name = "last modified:" Le fichier de configuration ngnix comportait essentiellement deux points, ce qui amène Chrome à générer une erreur (Firefox, en revanche, ignore cela et rend la page). Le nom de l'en-tête devrait simplement être header_name = "last-modified"
Malgré le fait que la description de l'erreur indique que le problème se trouve dans le "nom de l'en-tête", je soupçonne que le problème concerne réellement l'en-tête_valeur.
Sur StackOverflow, Le format de date/heure utilisé dans les en-têtes HTTP indique
Dans section 14.29 Last-Modified vous pouvez voir que le format de date doit être:
"Last-Modified" ":" HTTP-date
Un exemple de son utilisation est
Last-Modified: Tue, 15 Nov 1994 12:45:26 GMT
La dernière date modifiée dans votre erreur ne ressemble pas à ça. Il n'y a pas d'espaces. Au lieu de cela, ils ont été remplacés par %20
qui indique que la date a été RL encodée .
Je ne connais aucune raison pour laquelle les en-têtes HTTP standard devraient être codés de cette manière. Voir sur StackOverflow: Est-il approprié ou nécessaire d'utiliser le codage en pourcentage avec les en-têtes HTTP? Je ne suis pas sûr de savoir comment vous auriez configuré votre serveur pour coder en pourcentage le dernier en-tête modifié. Quoi que vous ayez fait, la solution à votre problème devrait être de supprimer ce codage.
Chrome rencontre probablement le premier %
et dit "Je ne m'attendais pas à un pour cent! Caractère non valide."