3

Can someone help me with a Perl or dynamic module to strip of whitespaces & comments from html responses in nginx?

3
  • Could you please explain your case a little more?
    – quanta
    Oct 26, 2011 at 6:29
  • my html contains a lot of whitespace noise and html comments. This adds up to payload. if you look at view-source:google.com you'll see that google is stripping the whitespace noise. Wanted to achieve something similar. Oct 26, 2011 at 6:43
  • 1
    Are there any specific problems in rebuilding nginx? Lack of permissions or knowledge?
    – Cyclops
    Nov 4, 2011 at 12:28

4 Answers 4

7

This should be done at deploy time as a preprocessing step, otherwise you will be wasting cpu cycles each time you serve content.

1

Looks like there's a module to strip whitespace (not comments apparently)

http://wiki.nginx.org/HttpStripModule

1
  • But this requires rebuilding of Nginx, which he tries to avoid.
    – faker
    Oct 31, 2011 at 15:52
1

As Ochoto already said, this should be done at deploy, or better, at render time. Because sometimes you might have spaces (non- ) which are needed in order to display the page correctly. If you do this at a later stage, you can run into troubles (it can also work)

Anyway, if payload-size is your issue, have a look at compression. This will produce far better results in my opinion.

0

This can be extremely tricky!

You should not only be aware of <pre> tags, but consider stuff like this:

<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
   <text x="0" y="15" xml:space="preserve">hello     world</text>
</svg>

Your post-processor would really need to parse the content and understand it. A simple regular expression will surely mess things up sooner or later.

As Cohoto and Franz Bettag have mentioned, this should aether be done in the source or as a pre-deployment step and not as a post-processing fix-up.

For javascript there are some obfuscators or compressors available that safely remove whitespace, parse the script and shorten all variables to single letters etc, knowing what they are doing since they know the context. However I've yet to see a know-it-all xhtml compressor that implements all that an average browser can handle. It is possible to build one that ignores anything it does not recognize though, but would it really be worthwhile?

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .