前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >FastAPI后台开发基础(9): Header的使用

FastAPI后台开发基础(9): Header的使用

原创
作者头像
bowenerchen
发布2024-10-22 09:32:07
发布2024-10-22 09:32:07
18400
代码可运行
举报
文章被收录于专栏:编码视界编码视界
运行总次数:0
代码可运行

Header()的使用

代码语言:python
代码运行次数:0
复制
@app.get("/async")
async def async_root(user_agent: Annotated[str | None, Header()] = None):
    return {"user_agent": user_agent}

使用 Model 定义 Header 参数

代码语言:python
代码运行次数:0
复制
class HeaderModel(BaseModel):
    name: str
    host: str
    port: int
    format: str
    encoding: List[str]


@app.get("/async")
async def async_root(h: Annotated[HeaderModel, Header()]):
    """
    curl -X 'GET' \
    'http://127.0.0.1:18081/async' \
    -H 'accept: application/json' \
    -H 'name: aaa' \
    -H 'host: 192.168.0.1' \
    -H 'port: 1234' \
    -H 'format: json' \
    -H 'encoding: utf-8,base64'
    """
    return {"message": h}
SwaggerDocs 中的 Header 参数
SwaggerDocs 中的 Header 参数
请求与响应
请求与响应

Cookie 和 Header 的区别

Cookie 和 HTTP Header 都是用于在客户端和服务器之间传递信息的机制,但它们在用途、格式和工作方式上有一些重要的区别。以下是它们之间的主要区别:

1. 定义

  • Cookie:
    • Cookie 是由服务器发送到客户端(通常是浏览器)并存储在客户端的一小段数据。它们通常用于保持用户会话、存储用户偏好设置、跟踪用户行为等。
  • HTTP Header:
    • HTTP Header 是在 HTTP 请求和响应中传递的元数据。它们包含关于请求或响应的附加信息,例如内容类型、内容长度、缓存控制、认证信息等。

2. 用途

  • Cookie:
    • 用于存储状态信息,例如用户登录状态、购物车内容、用户偏好等。服务器可以通过设置 Cookie 来跟踪用户的会话。
  • HTTP Header:
    • 用于传递请求和响应的控制信息,例如:
      • Content-Type: 指定请求或响应的内容类型(如 application/json)。
      • Authorization: 用于传递认证信息。
      • User-Agent: 指定发起请求的客户端软件信息。

3. 存储位置

  • Cookie:
    • 存储在客户端的浏览器中。浏览器会自动管理 Cookie 的存储和发送。
  • HTTP Header:
    • 不会在客户端存储,而是在每次请求和响应时由客户端和服务器动态生成和发送。

4. 发送方式

  • Cookie:
    • 当浏览器向服务器发送请求时,会自动附加与该域名相关的 Cookie。服务器可以通过设置 Set-Cookie 响应头来发送 Cookie。
  • HTTP Header:
    • 可以在请求和响应中手动设置。客户端可以在发送请求时添加自定义的 HTTP Header,服务器也可以在响应中添加自定义的 Header。

5. 生命周期

  • Cookie:
    • Cookie 可以设置过期时间,过期后会被浏览器自动删除。可以是会话 Cookie(在浏览器关闭时删除)或持久 Cookie(在指定的过期时间后删除)。
  • HTTP Header:
    • HTTP Header 在请求和响应的生命周期内有效,通常不会持久存储。

6. 安全性

  • Cookie:
    • Cookie 可以设置为 HttpOnly(防止 JavaScript 访问)和 Secure(仅在 HTTPS 连接中发送),以增强安全性。
  • HTTP Header:
    • HTTP Header 本身没有类似的安全属性,但可以通过 HTTPS 加密传输来保护敏感信息。

总结

  • Cookie 是一种特定的机制,用于在客户端存储状态信息,通常用于会话管理和用户跟踪。
  • HTTP Header 是一种通用的机制,用于在请求和响应中传递元数据和控制信息。 理解这两者的区别有助于更好地设计和实现 Web 应用程序的状态管理和数据传输。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Header()的使用
  • 使用 Model 定义 Header 参数
  • Cookie 和 Header 的区别
    • 1. 定义
    • 2. 用途
    • 3. 存储位置
    • 4. 发送方式
    • 5. 生命周期
    • 6. 安全性
    • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档