{"id":259,"date":"2018-04-05T16:08:05","date_gmt":"2018-04-05T14:08:05","guid":{"rendered":"https:\/\/corsaire-consulting.fr\/blog\/?p=259"},"modified":"2018-04-05T16:08:05","modified_gmt":"2018-04-05T14:08:05","slug":"weblogic-server-application-web-compression-html-et-deception","status":"publish","type":"post","link":"https:\/\/corsaire-consulting.fr\/blog\/index.php\/2018\/04\/05\/weblogic-server-application-web-compression-html-et-deception\/","title":{"rendered":"WebLogic Server, application web, compression HTML et &#8230; d\u00e9ception."},"content":{"rendered":"<p>Dans le <a href=\"https:\/\/docs.oracle.com\/cd\/E23943_01\/web.1111\/e13814\/webapptune.htm#PERFM374\">guide d&rsquo;optimisation des applications web<\/a>, Oracle propose entre autres, d&rsquo;activer la compression des templates HTML.<br \/>\nCelle-ci permet de supprimer les espaces non significatifs dans les pages afin d&rsquo;en r\u00e9duire le poids et donc le temps de transfert sur le r\u00e9seau.<\/p>\n<p>Cette optimisation, qui ne mange pas de pain, souffre d&rsquo;un l\u00e9ger d\u00e9faut qu&rsquo;il convient de connaitre avant de l&rsquo;activer.<\/p>\n<p><!--more--><\/p>\n<p>En effet, le code java derri\u00e8re cette optimisation ne proc\u00e8de pas \u00e0 une analyse du texte qu&rsquo;il est en train d&rsquo;optimiser, ou du moins d&rsquo;essayer. Le code JavaScript embarqu\u00e9 dans la page HTML est lui-m\u00eame trait\u00e9 lors de l&rsquo;optimisation. Malheureusement, \u00e7a se passe pas toujours bien et le code JavaScript peut se trouver <strong>d\u00e9t\u00e9rior\u00e9<\/strong> par l&rsquo;optimisation. En clair, il ne fonctionne plus. Une paille&#8230;<\/p>\n<p>[pastacode lang=\u00a0\u00bbjavascript\u00a0\u00bb manual=\u00a0\u00bb%3Cscript%20language%3D%22javascript%22%3E%0Afunction%20test()%20%7B%0A%09var%20s%20%3D%20%22%22%3B%0A%09%3C%25%0A%09for%20(int%20i%3D0%3B%20i%3C5%20%3B%20i%2B%2B)%0A%09%7B%0A%09%25%3E%0A%09%09%2F%2F%20le%20commentaire%20qui%20va%20bien%0A%09%09s%20%3D%20s%20%2B%20i%3B%20%20%0A%09%3C%25%0A%09%7D%0A%09%25%3E%0A%7D%0A%3C%2Fscript%3E\u00a0\u00bb message=\u00a0\u00bbUn petit exemple\u00a0\u00bb highlight=\u00a0\u00bb\u00a0\u00bb provider=\u00a0\u00bbmanual\u00a0\u00bb\/]<\/p>\n<p>Bon, j&rsquo;avoue le code est loin d&rsquo;\u00eatre clean mais c&rsquo;est du v\u00e9cu chez les clients. Utilisation de scriptlets + code javaScript embarqu\u00e9 = code pas terrible. Mais bon c&rsquo;est la r\u00e9alit\u00e9. Petite pr\u00e9cision, le code est issue d&rsquo;une JSP.<\/p>\n<p>Voici le code g\u00e9n\u00e9r\u00e9 SANS la compression des templates HTML :<\/p>\n<p>[pastacode lang=\u00a0\u00bbjavascript\u00a0\u00bb manual=\u00a0\u00bb%3Cscript%20language%3D%22javascript%22%3E%0Afunction%20test()%20%7B%0A%09var%20s%20%3D%20%22%22%3B%0A%09%0A%09%09%2F%2F%20le%20commentaire%20qui%20va%20bien%0A%09%09s%20%3D%20s%20%2B%20i%3B%20%20%0A%09%0A%09%09%2F%2F%20le%20commentaire%20qui%20va%20bien%0A%09%09s%20%3D%20s%20%2B%20i%3B%20%20%0A%09%0A%09%09%2F%2F%20le%20commentaire%20qui%20va%20bien%0A%09%09s%20%3D%20s%20%2B%20i%3B%20%20%0A%09%0A%09%09%2F%2F%20le%20commentaire%20qui%20va%20bien%0A%09%09s%20%3D%20s%20%2B%20i%3B%20%20%0A%09%0A%09%09%2F%2F%20le%20commentaire%20qui%20va%20bien%0A%09%09s%20%3D%20s%20%2B%20i%3B%20%20%0A%09%0A%7D%0A%3C%2Fscript%3E\u00a0\u00bb message=\u00a0\u00bbCode g\u00e9n\u00e9r\u00e9 avec la compression HTML d\u00e9sactiv\u00e9e\u00a0\u00bb highlight=\u00a0\u00bb\u00a0\u00bb provider=\u00a0\u00bbmanual\u00a0\u00bb\/]<\/p>\n<p>Voici le code g\u00e9n\u00e9r\u00e9 AVEC la compression des templates HTML :<\/p>\n<p>[pastacode lang=\u00a0\u00bbjavascript\u00a0\u00bb manual=\u00a0\u00bb%3Cscript%20language%3D%22javascript%22%3E%0Afunction%20test()%20%7B%0A%09var%20s%20%3D%20%22%22%3B%0A%09%0A%09%2F%2F%20le%20commentaire%20qui%20va%20bien%09s%20%3D%20s%20%2B%20i%3B%09%0A%09%2F%2F%20le%20commentaire%20qui%20va%20bien%09s%20%3D%20s%20%2B%20i%3B%09%0A%09%2F%2F%20le%20commentaire%20qui%20va%20bien%09s%20%3D%20s%20%2B%20i%3B%09%0A%09%2F%2F%20le%20commentaire%20qui%20va%20bien%09s%20%3D%20s%20%2B%20i%3B%09%0A%09%2F%2F%20le%20commentaire%20qui%20va%20bien%09s%20%3D%20s%20%2B%20i%3B%09%0A%7D%0A%3C%2Fscript%3E\u00a0\u00bb message=\u00a0\u00bbCode g\u00e9n\u00e9r\u00e9 avec la compression HTML activ\u00e9e\u00a0\u00bb highlight=\u00a0\u00bb\u00a0\u00bb provider=\u00a0\u00bbmanual\u00a0\u00bb\/]<\/p>\n<p>Ca se passe de commentaire&#8230;<\/p>\n<p>Le probl\u00e8me concerne les versions 11g et 12c, du moins pour celles que j&rsquo;ai test\u00e9.<\/p>\n<p>Le code javaScript utilis\u00e9 par une page HTML mais charg\u00e9 via une balise &lt;script src=\u00a0\u00bb&#8230;\u00a0\u00bb&gt; n&rsquo;est pas concern\u00e9.<\/p>\n<p>Contact\u00e9 sur ce sujet, Oracle avance l&rsquo;argument que l&rsquo;optimisation ne concerne QUE les pages HTML exemptes de tout code javaScript : <em>Work as designed<\/em>.<\/p>\n<p>La documentation ne mentionne \u00e9videment pas cette \u00ab\u00a0petite\u00a0\u00bb contrainte.<\/p>\n<p>Conclusion, si vous avez besoin de faire subir une cure d&rsquo;amaigrissement \u00e0 vos pages utilisez la compression GZip, soit au niveau du serveur HTTP soit au niveau des serveurs WebLogic (nouveaut\u00e9 12c)<\/p>\n<p>Bon code.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dans le guide d&rsquo;optimisation des applications web, Oracle propose entre autres, d&rsquo;activer la compression des templates HTML. Celle-ci permet de supprimer les espaces non significatifs dans les pages afin d&rsquo;en r\u00e9duire le poids et donc le temps de transfert sur le r\u00e9seau. Cette optimisation, qui ne mange pas de pain, souffre d&rsquo;un l\u00e9ger d\u00e9faut qu&rsquo;il [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[4],"tags":[34,33,32,31],"class_list":["post-259","post","type-post","status-publish","format-standard","hentry","category-weblogic","tag-compression","tag-html","tag-web-app","tag-weblogic"],"_links":{"self":[{"href":"https:\/\/corsaire-consulting.fr\/blog\/index.php\/wp-json\/wp\/v2\/posts\/259","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/corsaire-consulting.fr\/blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/corsaire-consulting.fr\/blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/corsaire-consulting.fr\/blog\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/corsaire-consulting.fr\/blog\/index.php\/wp-json\/wp\/v2\/comments?post=259"}],"version-history":[{"count":5,"href":"https:\/\/corsaire-consulting.fr\/blog\/index.php\/wp-json\/wp\/v2\/posts\/259\/revisions"}],"predecessor-version":[{"id":265,"href":"https:\/\/corsaire-consulting.fr\/blog\/index.php\/wp-json\/wp\/v2\/posts\/259\/revisions\/265"}],"wp:attachment":[{"href":"https:\/\/corsaire-consulting.fr\/blog\/index.php\/wp-json\/wp\/v2\/media?parent=259"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/corsaire-consulting.fr\/blog\/index.php\/wp-json\/wp\/v2\/categories?post=259"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/corsaire-consulting.fr\/blog\/index.php\/wp-json\/wp\/v2\/tags?post=259"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}