[Python-checkins] closes bpo-46736: SimpleHTTPRequestHandler now uses HTML5. (GH-31533)

benjaminp webhook-mailer at python.org
Wed Feb 23 12:59:37 EST 2022


https://github.com/python/cpython/commit/0bb40a42d71873ea267aace8c92a02d66fe36dc2
commit: 0bb40a42d71873ea267aace8c92a02d66fe36dc2
branch: main
author: Dong-hee Na <donghee.na92 at gmail.com>
committer: benjaminp <benjamin at locrian.net>
date: 2022-02-23T09:59:32-08:00
summary:

closes bpo-46736: SimpleHTTPRequestHandler now uses HTML5. (GH-31533)

Co-authored-by: Oleg Iarygin <dralife at yandex.ru>

files:
A Misc/NEWS.d/next/Library/2022-02-24-01-49-38.bpo-46736.NJcoWO.rst
M Lib/http/server.py

diff --git a/Lib/http/server.py b/Lib/http/server.py
index 194a503c45f75..a6100d4829751 100644
--- a/Lib/http/server.py
+++ b/Lib/http/server.py
@@ -109,11 +109,10 @@
 
 # Default error message template
 DEFAULT_ERROR_MESSAGE = """\
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
-        "http://www.w3.org/TR/html4/strict.dtd">
-<html>
+<!DOCTYPE HTML>
+<html lang="en">
     <head>
-        <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
+        <meta charset="utf-8">
         <title>Error response</title>
     </head>
     <body>
@@ -777,14 +776,13 @@ def list_directory(self, path):
             displaypath = urllib.parse.unquote(path)
         displaypath = html.escape(displaypath, quote=False)
         enc = sys.getfilesystemencoding()
-        title = 'Directory listing for %s' % displaypath
-        r.append('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" '
-                 '"http://www.w3.org/TR/html4/strict.dtd">')
-        r.append('<html>\n<head>')
-        r.append('<meta http-equiv="Content-Type" '
-                 'content="text/html; charset=%s">' % enc)
-        r.append('<title>%s</title>\n</head>' % title)
-        r.append('<body>\n<h1>%s</h1>' % title)
+        title = f'Directory listing for {displaypath}'
+        r.append('<!DOCTYPE HTML>')
+        r.append('<html lang="en">')
+        r.append('<head>')
+        r.append(f'<meta charset="{enc}">')
+        r.append(f'<title>{title}</title>\n</head>')
+        r.append(f'<body>\n<h1>{title}</h1>')
         r.append('<hr>\n<ul>')
         for name in list:
             fullname = os.path.join(path, name)
diff --git a/Misc/NEWS.d/next/Library/2022-02-24-01-49-38.bpo-46736.NJcoWO.rst b/Misc/NEWS.d/next/Library/2022-02-24-01-49-38.bpo-46736.NJcoWO.rst
new file mode 100644
index 0000000000000..fca7780b82e9d
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2022-02-24-01-49-38.bpo-46736.NJcoWO.rst
@@ -0,0 +1,2 @@
+:class:`~http.server.SimpleHTTPRequestHandler` now uses HTML5 grammar. Patch
+by Dong-hee Na.



More information about the Python-checkins mailing list