Python Community RU - СНГ сообщество Python-разработчиков
Чат канала: @python_community_chat
Сотрудничество: @cyberJohnny и @Sergey_bzd
РКН реестр:
https://knd.gov.ru/license?id=67847dd98e552d6b54a511ed®istryType=bloggersPermission
Post #2895
900
⚡️ Хитрый трюк по работе со статикой
Если заранее посчитать ETag для статических файлов, сервер сможет мгновенно отвечать 304 Not Modified без чтения с диска. Это резко ускоряет отдачу статики на Python.
import os, hashlib
from http.server import SimpleHTTPRequestHandler, HTTPServer
STATIC = "static"
etag = {f: hashlib.md5(open(os.path.join(STATIC, f),"rb").read()).hexdigest()
for f in os.listdir(STATIC)}
class H(SimpleHTTPRequestHandler):
def end_headers(self):
name = self.path.lstrip("/")
if name in etag:
self.send_header("ETag", etag[name])
super().end_headers()
HTTPServer(("0.0.0.0", 8000), H).serve_forever()
@Python_Community_ru
Если заранее посчитать ETag для статических файлов, сервер сможет мгновенно отвечать 304 Not Modified без чтения с диска. Это резко ускоряет отдачу статики на Python.
import os, hashlib
from http.server import SimpleHTTPRequestHandler, HTTPServer
STATIC = "static"
etag = {f: hashlib.md5(open(os.path.join(STATIC, f),"rb").read()).hexdigest()
for f in os.listdir(STATIC)}
class H(SimpleHTTPRequestHandler):
def end_headers(self):
name = self.path.lstrip("/")
if name in etag:
self.send_header("ETag", etag[name])
super().end_headers()
HTTPServer(("0.0.0.0", 8000), H).serve_forever()
@Python_Community_ru
- 👍 3










