Attention ! Cet interpréteur n’est pas totalement compatible avec Python3.
import http.server
import random
class TestHandler(http.server.BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.send_header("Content-type", "text/html")
# On ne ferme pas les entêtes tout de suite (écriture de cookie à la fin).
code_source_html = ''
# On peut générer
# - une longue liste de nombres sans se fatiguer à les écrire un par un
for i in range(100):
code_source_html = code_source_html + '%d ' % (i+1)
# - un tirage aléatoire (pile ou face, poesie…)
tirage = random.choice(['Pile', 'Face'])
code_source_html = code_source_html + '<p>%s</p>\n' % tirage
# - le chemin de la requête
code_source_html = code_source_html + '<p>chemin:%s</p>\n' % self.path
# - autres informations sur la requête
code_source_html = code_source_html + '<table>'
code_source_html = code_source_html + '<tr><th>entête</th><th>contenu</th></tr>\n'
for k,v in self.headers.items():
code_source_html = code_source_html + '<tr><td>%s</td><td>%s</td></tr>\n' % (k, v)
code_source_html = code_source_html + '</table>\n'
# - lecture et écriture de cookie
cookie = self.headers.get('Cookie')
if cookie is None:
visite = 1
else:
visite = int(cookie)
code_source_html = code_source_html + '<p>Visite %d</p>' % visite
self.send_header("Set-Cookie", "%d" % (visite + 1))
self.end_headers()
self.wfile.write(bytes(code_source_html, 'UTF-8'))
s = http.server.HTTPServer(("localhost", 8000), TestHandler)
print("Starting server. Ctrl+C to quit.")
s.serve_forever()