diff options
author | EnokMan <416828041@qq.com> | 2020-01-11 04:11:05 -0600 |
---|---|---|
committer | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2020-01-11 11:11:05 +0100 |
commit | 1ea06f9c847ac7254138c91de2b2b9f72662e164 (patch) | |
tree | 94a4238003f4e3a444172a8fce982a9f6921bf22 /tools/http_server.py | |
parent | 0d0ad360d32c55869ef0a4d89d97dd83f4628c87 (diff) |
Add gzip, brotli and ETag support for file fetcher (#3597)
Diffstat (limited to 'tools/http_server.py')
-rwxr-xr-x | tools/http_server.py | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/tools/http_server.py b/tools/http_server.py index 47fbf959a..3152a8982 100755 --- a/tools/http_server.py +++ b/tools/http_server.py @@ -31,6 +31,42 @@ class QuietSimpleHTTPRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler): class ContentTypeHandler(QuietSimpleHTTPRequestHandler): def do_GET(self): + + # Check if there is a custom header configuration ending + # with ".header" before sending the file + maybe_header_file_path = "./" + self.path + ".header" + if os.path.exists(maybe_header_file_path): + self.protocol_version = 'HTTP/1.1' + self.send_response(200, 'OK') + + f = open(maybe_header_file_path) + for line in f: + kv = line.split(": ") + self.send_header(kv[0].strip(), kv[1].strip()) + f.close() + self.end_headers() + + body = open("./" + self.path) + self.wfile.write(body.read()) + body.close() + return + + if "etag_script.ts" in self.path: + self.protocol_version = 'HTTP/1.1' + if_not_match = self.headers.getheader('if-none-match') + if if_not_match == "33a64df551425fcc55e": + self.send_response(304, 'Not Modified') + self.send_header('Content-type', 'application/javascript') + self.send_header('ETag', '33a64df551425fcc55e') + self.end_headers() + else: + self.send_response(200, 'OK') + self.send_header('Content-type', 'application/javascript') + self.send_header('ETag', '33a64df551425fcc55e') + self.end_headers() + self.wfile.write(bytes("console.log('etag')")) + return + if "multipart_form_data.txt" in self.path: self.protocol_version = 'HTTP/1.1' self.send_response(200, 'OK') |