Seite 1 von 1

HTML Seite komprimiert mit gzip versenden?

Verfasst: Freitag 28. Januar 2005, 20:16
von XT@ngel
hallo,
mein Forum ist fast fertig.
Nun möchte ich die erzeugten HTML Seiten mit Gzip versenden.
(wird sich kaum lohnen, einfach aus neugier)

Ich hab schon eine Vorstellung wie ich das mit dem Modul Gzip hinbekomme aber wie prüfe ich, ob der Client auch mit Gzip klarkommt?
bzw wie komme ich an HTTP_ACCEPT_ENCODING?


MfG
Andreas

Verfasst: Freitag 28. Januar 2005, 20:42
von Leonidas
Das wird doch in den HTTP Request Headern verschickt (oder nicht, hängt vom Browser ab).

Verfasst: Freitag 28. Januar 2005, 21:30
von XT@ngel
THX habs schon gefunden!

Verfasst: Freitag 28. Januar 2005, 21:36
von Leonidas
Würd mich interessieren ob du das zum laufen bekommst.. :?:

Verfasst: Freitag 28. Januar 2005, 22:33
von XT@ngel
Ok, hier ein erster Test. Nur um zu sehen wie das ganze funktioniert.
html kommt bei mir direkt von der Template Klasse...

Code: Alles auswählen

#!d:/Program Files/Python24/python.exe -u
#-*- coding: Latin-1 -*-"

import cgitb; cgitb.enable()           
import cgi, os, gzip

html = file("viewtopic.html", 'r')
encodings = os.environ['HTTP_ACCEPT_ENCODING'].split(",")

# muss hier noch abklären ob schreibweise "gzip" verbindlich.
# evtl auch Gzip oder GZIP möglich.
# lässt sich aber leicht mit str methoden umgehen...
if "gzip" in encodings:
    zip_data = gzip.GzipFile(filename="test.gzip", mode='wb')
    test = html.read()
    zip_data.write(test)
    zip_data.close()
    html.close()

    print "Content-Type: text/html"
    print "Content-Encoding: gzip"
    print 
    send = open("test.gzip", 'rb')
    print send.read()

else:
    print "Content-Type: text/html"    
    print
    print "Ohne Gzip"
    print html.read()