当前位置:首页>python>Python 零基础100天—Day40 HTTP 协议

Python 零基础100天—Day40 HTTP 协议

  • 2026-06-28 10:49:50
Python 零基础100天—Day40 HTTP 协议

🐍 Python Day40:HTTP 协议 — 理解 Web 的基础

🕐 预计用时:2-3 小时 | 🎯 目标:掌握请求方法、状态码、Headers、Cookies、Session


📖 今日目录

  1. HTTP 是什么?
  2. 请求与响应的结构
  3. 请求方法(GET/POST/PUT/DELETE)
  4. 状态码(200/301/404/500)
  5. 请求头 Headers
  6. 请求参数(Query String / Body)
  7. Cookies 与 Session
  8. HTTPS 与安全
  9. 用 socket 发送 HTTP 请求
  10. 用 http.client 发送请求
  11. RESTful API 设计
  12. 今日小结

1. HTTP 是什么?

HTTP(HyperText Transfer Protocol)是 Web 的基础协议。浏览器访问网页、App 调用 API,底层都是 HTTP。

# HTTP 通信过程
# 客户端(浏览器)              服务器
#    |                           |
#    |--- HTTP 请求 ----------->|  "我要看 /index.html"
#    |                           |
#    |<-- HTTP 响应 ------------|  "这是 HTML 内容"
#    |                           |

# HTTP 的特点:
# 1. 无状态 — 服务器不记住你是谁(用 Cookie/Session 补救)
# 2. 请求-响应模式 — 客户端先发请求,服务器再响应
# 3. 基于 TCP — 可靠传输

2. 请求与响应的结构

HTTP 请求

# 一个完整的 HTTP 请求:
GET /api/users?page=1 HTTP/1.1          ← 请求行(方法 + 路径 + 版本)
Host: api.example.com                   ← 请求头(键: 值)
User-Agent: Mozilla/5.0
Accept: application/json
Authorization: Bearer xxx-token-xxx
Cookie: session_id=abc123

                                      ← 空行
                                      ← 请求体(GET 通常没有)

HTTP 响应

# 一个完整的 HTTP 响应:
HTTP/1.1 200 OK                         ← 状态行(版本 + 状态码 + 原因)
Content-Type: application/json          ← 响应头
Content-Length: 256
Server: nginx/1.20
Set-Cookie: session_id=xyz789

                                      ← 空行
{"users": [{"name": "张三"}], "total": 1}  ← 响应体

3. 请求方法

方法
用途
幂等性
有请求体
GET
获取资源
✅ 幂等
❌ 通常没有
POST
创建资源
❌ 不幂等
✅ 有
PUT
更新资源(全量)
✅ 幂等
✅ 有
PATCH
更新资源(部分)
❌ 不幂等
✅ 有
DELETE
删除资源
✅ 幂等
❌ 通常没有
HEAD
只获取响应头
✅ 幂等
OPTIONS
查询支持的方法
✅ 幂等
# RESTful API 示例
GET    /api/users          → 获取用户列表
GET    /api/users/123      → 获取 ID=123 的用户
POST   /api/users          → 创建新用户(数据在请求体)
PUT    /api/users/123      → 更新 ID=123 的用户
DELETE /api/users/123      → 删除 ID=123 的用户

4. 状态码

范围
类别
常用状态码
1xx
信息
100 Continue, 101 Switching Protocols
2xx
成功
200 OK, 201 Created, 204 No Content
3xx
重定向
301 Moved Permanently, 302 Found, 304 Not Modified
4xx
客户端错误
400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 405 Method Not Allowed
5xx
服务器错误
500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable
# 状态码速记
# 2xx → 成功("OK, 搞定了")
# 3xx → 重定向("去别处找")
# 4xx → 你的错("请求有问题")
# 5xx → 服务器的错("我挂了")

# 最常见的:
200 OK                  — 成功
201 Created             — 创建成功
400 Bad Request         — 请求格式错误
401 Unauthorized        — 未登录
403 Forbidden           — 无权限
404 Not Found           — 资源不存在
500 Internal Server Error — 服务器内部错误

5. 请求头 Headers

Header
说明
示例
Host
目标主机
Host: api.example.com
User-Agent
客户端信息
Mozilla/5.0 ...
Accept
期望的响应格式
application/json
Content-Type
请求体的格式
application/json
Authorization
认证信息
Bearer xxx-token
Cookie
发送 Cookie
session_id=abc123
Referer
请求来源页面
https://example.com/
Cache-Control
缓存策略
no-cache
# Content-Type 常见值
application/json              — JSON 数据(最常用)
application/x-www-form-urlencoded — 表单提交(默认)
multipart/form-data           — 文件上传
text/plain                    — 纯文本
text/html                     — HTML 页面

6. 请求参数

Query String(URL 参数)

# GET 请求的参数放在 URL 后面
# https://api.example.com/users?page=1&size=20&sort=name
#                               ^^^^^^^^^^^^^^^^^^^^^^^^
#                               Query String

from urllib.parse import urlencode, urlparse, parse_qs

# 构建 URL 参数
params = {"page": 1, "size": 20, "sort": "name"}
url = f"https://api.example.com/users?{urlencode(params)}"
print(url)  # https://api.example.com/users?page=1&size=20&sort=name

# 解析 URL 参数
parsed = urlparse("https://api.example.com/users?page=1&size=20")
query = parse_qs(parsed.query)
print(query)  # {'page': ['1'], 'size': ['20']}

请求体(Request Body)

# POST/PUT 请求的数据放在请求体中

# JSON 格式
POST /api/users HTTP/1.1
Content-Type: application/json

{"name": "张三", "age": 25}

# 表单格式
POST /login HTTP/1.1
Content-Type: application/x-www-form-urlencoded

username=admin&password=123456

7. Cookies 与 Session

# HTTP 是无状态的 — 每次请求都是独立的
# Cookies 和 Session 用来"记住"用户状态

# ---- Cookies ----
# 存储在客户端(浏览器),每次请求时自动发送

# 服务器设置 Cookie:
Set-Cookie: session_id=abc123; Path=/; HttpOnly
Set-Cookie: theme=dark; Path=/

# 客户端发送 Cookie:
Cookie: session_id=abc123; theme=dark

# ---- Session ----
# 存储在服务器端,客户端只保存 Session ID

# 1. 用户登录 → 服务器创建 Session,返回 Session ID(通过 Cookie)
# 2. 用户再次访问 → 浏览器发送 Cookie(含 Session ID)
# 3. 服务器根据 Session ID 找到对应的 Session 数据
# Cookie 属性
Set-Cookie: name=value;
    Path=/;              # Cookie 有效的路径
    Domain=.example.com; # Cookie 有效的域名
    Max-Age=3600;        # 有效期(秒)
    Secure;              # 只通过 HTTPS 发送
    HttpOnly;            # JavaScript 无法访问(防 XSS)
    SameSite=Strict;     # 防 CSRF 攻击

💡 Cookie vs Session:
• Cookie:存在客户端,不安全,有大小限制(~4KB)
• Session:存在服务器,安全,无大小限制,但占服务器内存
• 实际项目:Session ID 通过 Cookie 传递,数据存在服务器


8. HTTPS 与安全

# HTTPS = HTTP + TLS/SSL(加密传输)

# HTTP:   http://example.com   → 明文传输,容易被窃听
# HTTPS:  https://example.com  → 加密传输,安全

# HTTPS 的工作原理:
# 1. 客户端连接服务器
# 2. 服务器返回 SSL 证书(含公钥)
# 3. 客户端验证证书,生成随机密钥
# 4. 用公钥加密随机密钥,发给服务器
# 5. 服务器用私钥解密,得到随机密钥
# 6. 双方用随机密钥加密通信(对称加密)

# Python 中:
# 普通 socket → 需要 ssl 包装
import ssl
context = ssl.create_default_context()
secure_socket = context.wrap_socket(socket.socket(), server_hostname="example.com")

9. 用 socket 发送 HTTP 请求

import socket

def http_get(host, path="/", port=80):
    """用原始 socket 发送 HTTP GET 请求"""
    # 创建 TCP 连接
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect((host, port))

    # 构建 HTTP 请求
    request = f"GET {path} HTTP/1.1\r\n"
    request += f"Host: {host}\r\n"
    request += f"User-Agent: PythonSocket/1.0\r\n"
    request += f"Accept: text/html\r\n"
    request += f"Connection: close\r\n"
    request += f"\r\n"  # 空行表示请求头结束

    # 发送请求
    s.send(request.encode("utf-8"))

    # 接收响应
    response = b""
    while True:
        data = s.recv(4096)
        if not data:
            break
        response += data

    s.close()
    return response.decode("utf-8")

# 使用
response = http_get("httpbin.org", "/get")
print(response[:500])  # 打印前 500 字符
# 解析 HTTP 响应
def parse_http_response(raw):
    """解析原始 HTTP 响应"""
    # 分离头部和主体
    header_part, body = raw.split("\r\n\r\n", 1)

    # 解析状态行
    lines = header_part.split("\r\n")
    status_line = lines[0]
    version, status_code, reason = status_line.split(" ", 2)

    # 解析响应头
    headers = {}
    for line in lines[1:]:
        key, value = line.split(": ", 1)
        headers[key] = value

    return {
        "version": version,
        "status_code": int(status_code),
        "reason": reason,
        "headers": headers,
        "body": body
    }

# 使用
response = http_get("httpbin.org", "/get")
parsed = parse_http_response(response)
print(f"状态码: {parsed['status_code']}")
print(f"Content-Type: {parsed['headers'].get('Content-Type')}")
print(f"Body: {parsed['body'][:200]}")

10. 用 http.client 发送请求

import http.client
import json

# ---- GET 请求 ----
conn = http.client.HTTPSConnection("httpbin.org")
conn.request("GET", "/get")
response = conn.getresponse()

print(f"状态码: {response.status}")  # 200
print(f"原因: {response.reason}")    # OK
print(f"Headers: {dict(response.getheaders())}")
data = json.loads(response.read())
print(f"Body: {data}")
conn.close()

# ---- POST 请求 ----
conn = http.client.HTTPSConnection("httpbin.org")

payload = json.dumps({"name": "张三", "age": 25})
headers = {"Content-Type": "application/json"}

conn.request("POST", "/post", body=payload, headers=headers)
response = conn.getresponse()
data = json.loads(response.read())
print(f"响应: {data}")
conn.close()

💡 http.client 是标准库,但实际项目中大家更常用 requests 库(明天学),它更简洁优雅。http.client 适合理解底层原理。


11. RESTful API 设计

操作
方法
路径
说明
获取列表
GET
/api/users
获取所有用户
获取单个
GET
/api/users/123
获取 ID=123 的用户
创建
POST
/api/users
创建新用户
更新
PUT
/api/users/123
更新 ID=123 的用户
删除
DELETE
/api/users/123
删除 ID=123 的用户
搜索
GET
/api/users?name=张
按条件搜索
嵌套资源
GET
/api/users/123/orders
获取用户 123 的订单
# RESTful 响应格式
# 成功
{"status": "success", "data": {"id": 123, "name": "张三"}}

# 列表
{"status": "success", "data": [...], "total": 100, "page": 1}

# 错误
{"status": "error", "message": "用户不存在", "code": 404}

12. 今日小结

概念
说明
HTTP
Web 通信协议,无状态,请求-响应模式
请求方法
GET/POST/PUT/DELETE 等
状态码
2xx 成功,3xx 重定向,4xx 客户端错,5xx 服务器错
Headers
Content-Type、Authorization、Cookie 等
Query String
URL 参数:?key=value&key2=value2
Request Body
POST/PUT 的数据(JSON/表单)
Cookies
客户端存储,每次请求自动发送
Session
服务器存储,通过 Cookie 中的 Session ID 关联
HTTPS
HTTP + TLS 加密
RESTful
用 HTTP 方法表示操作(GET/POST/PUT/DELETE)

🎯 练习建议:
1. 用 socket 手写一个 HTTP 请求,访问 httpbin.org/get
2. 用 http.client 调用一个公开 API(如 GitHub API)
3. 设计一个博客系统的 RESTful API(列出所有接口)


📚 Day40 完成!明天学习 requests 库 — 优雅地发送 HTTP 请求

轻松时刻:

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-03 00:56:38 HTTP/2.0 GET : https://f.mffb.com.cn/a/500892.html
  2. 运行时间 : 0.458934s [ 吞吐率:2.18req/s ] 内存消耗:4,504.84kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=a765aea2953994df882be6d24d9a79c8
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000622s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000598s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.068209s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.039612s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000671s ]
  6. SELECT * FROM `set` [ RunTime:0.007285s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000690s ]
  8. SELECT * FROM `article` WHERE `id` = 500892 LIMIT 1 [ RunTime:0.071057s ]
  9. UPDATE `article` SET `lasttime` = 1783011398 WHERE `id` = 500892 [ RunTime:0.042821s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.006427s ]
  11. SELECT * FROM `article` WHERE `id` < 500892 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.004101s ]
  12. SELECT * FROM `article` WHERE `id` > 500892 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.009020s ]
  13. SELECT * FROM `article` WHERE `id` < 500892 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.066904s ]
  14. SELECT * FROM `article` WHERE `id` < 500892 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.044244s ]
  15. SELECT * FROM `article` WHERE `id` < 500892 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.022324s ]
0.461635s