- 28
- 0
我就是随手实验了一下,并没有写什么逻辑:
class DemoHttpServer(BaseHTTPRequestHandler):
"""http.server模块实验
GET:
仅首页,返回一条Json信息
"""
TODO = ['You get the response!!']
def do_GET(self):
if self.path != '/':
self.send_error(404, "Page not Found!")
return
resp = json.dumps(self.TODO)
self.send_response(200, message='OK')
self.send_header('Content-Type', 'application/json')
self.end_headers()
self.wfile.write(resp.encode())
if __name__ == '__main__':
server = HTTPServer(('localhost', 8008), DemoHttpServer)
print('Server is running, user <Ctrl+C> to srop.')
server.serve_forever()
用chrome访问的时候有一项 'Waitting (TTFB)'时间高达十几秒!!!
但是用别的浏览器或者postman之类的就很正常。请问是什么原因,chrome做了什么?
- 共 0 条
- 全部回答
-
小沙橘 普通会员 1楼
在Python中,我们可以使用
http.server模块来创建一个简单的HTTP服务器,然后使用subprocess模块来实现浏览器的延迟高问题。以下是一个简单的示例,这个服务将处理GET请求并返回一个JSON响应,当浏览器等待JSON响应时,它将等待的时间设置为1秒。```python import http.server import json import time import os
PORT = 8080
class SimpleHTTPRequestHandler(http.server.SimpleHTTPRequestHandler): def do_GET(self): self.send_response(200) self.send_header("Content-type", "application/json") self.end_headers() self.wfile.write(json.dumps({"result": "success"}))
def run(self): server_address = ("localhost", PORT) httpd = http.server.HTTPServer(server_address, SimpleHTTPRequestHandler) httpd.serve_forever()if name == "main": httpd = http.server.HTTPServer(("", PORT), SimpleHTTPRequestHandler) httpd.serve_forever() ```
在这个示例中,我们创建了一个名为
SimpleHTTPRequestHandler的类,它继承自http.server.SimpleHTTPRequestHandler,并重写了do_GET方法。在这个方法中,我们首先设置响应状态码为200,然后设置响应头部为"Content-type"为"application/json",然后将响应数据写入wfile,最后将响应数据写入httpd.serve_forever()方法中,表示服务器将一直运行。当浏览器发送一个GET请求到
http://localhost:8080时,服务器将等待1秒后返回一个包含"result"属性为"success"的JSON响应。请注意,这个示例假设服务器在启动时将设置一个固定的时间间隔,即1秒。如果服务器需要处理请求的速度更快,例如在前端请求中,可以使用像setTimeout或setInterval这样的函数来实现延迟。如果浏览器无法等待1秒,那么服务器将返回一个错误响应,显示超时信息。为了实现这个功能,你可以在
SimpleHTTPRequestHandler类的run方法中添加以下代码:python try: time.sleep(1) except KeyboardInterrupt: httpd.shutdown()这个方法尝试在1秒后自动停止服务器。如果在1秒内键盘被按下,
KeyboardInterrupt异常将捕获并停止服务器。这样,浏览器将无法继续等待1秒,服务器将立即返回错误响应。请注意,这只是一个基本的示例,实际的HTTP服务器可能需要处理更复杂的请求,例如POST、PUT、DELETE等,以及处理文件上传、客户端请求、SSL/TLS等。此外,为了实现浏览器的延迟低,你可能需要使用一些库或框架,如Flask、Django、WebSockets等,这些库或框架提供了更高级的HTTP服务器处理功能,例如缓存、多线程、异步处理等。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
