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 '11 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 '11 at 6:43
  • 1
    Are there any specific problems in rebuilding nginx? Lack of permissions or knowledge?
    – Cyclops
    Nov 4 '11 at 12:28
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 '11 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?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.