GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — http.server: HTTP/1.1 requests without Host, with two Host fields or with an invalid Host value are accepted · Issue #161675 · python/cpython Open Labels stdlibStandard Library Python modules in the Lib/ directoryStandard Library Python modules in the Lib/ directorytype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error DescriptionBug report
All three kinds of request below get status 200 and reach the handler. The 400 for a missing Host is from RFC 2616 section 14.23; the 400 for duplicate or invalid Host values was added in RFC 7230 section 5.4 (2014). import http.server, socket, threading class Handler(http.server.BaseHTTPRequestHandler): protocol_version = "HTTP/1.1" def do_GET(self): body = ("Host: %r\n" % self.headers.get_all("Host")).encode() self.send_response(200) self.send_header("Content-Length", str(len(body))) self.end_headers() self.wfile.write(body) def log_message(self, *args): pass server = http.server.ThreadingHTTPServer(("127.0.0.1", 0), Handler) threading.Thread(target=server.serve_forever, daemon=True).start() for request in [b"GET / HTTP/1.1\r\n\r\n", b"GET / HTTP/1.1\r\nHost: a.example\r\nHost: b.example\r\n\r\n", b"GET / HTTP/1.1\r\nHost: a b\r\n\r\n"]: with socket.create_connection(server.server_address, timeout=2) as s: s.sendall(request) s.shutdown(socket.SHUT_WR) lines = s.makefile("rb").read().split(b"\r\n") print(request, "->", lines[0], lines[-1]) server.shutdown() Output: Expected: CPython versions tested on:3.14 Operating systems tested on:Linux Linked PRsActivity
MetadataMetadataAssigneesLabelsstdlibStandard Library Python modules in the Lib/ directoryStandard Library Python modules in the Lib/ directorytype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error Projects
MilestoneRelationshipsDevelopmentIssue actions |
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |