返回介绍

Request lifecycle

发布于 2024-02-12 19:53:56 字数 4042 浏览 0 评论 0 收藏 0

每个传入请求都会通过请求生命周期。 具体步骤因服务器和路由配置而异, 但执行适用步骤的顺序始终相同。 以下是请求可以执行的完整步骤列表:

  • onRequest

    • 通常当 onRequest 扩展存在时被调用。
    • 请求路径和方法可以通过 request.setUrl()request.setMethod() 方法修改. 对请求路径或方法的更改将影响请求的路由方式,并可用于重写规则。
    • request.route 是未分配的。
    • request.url 如果传入的请求路径无效,可能是 null
    • request.path 可能是无效的路由
    • 从扩展点返回的任何响应都会忽略 JSONP 配置,因为尚未匹配任何路由且 JSONP 配置不可用。
  • Route lookup

    • 基于 request.pathrequest.method 的查找。
    • 如果没有找到路由或路径违反 HTTP 规范, 跳到 onPreResponse
  • JSONP processing

    • 基于路由的 jsonp 选项.
    • request.query 解析 JSON 参数.
    • 当错误时,跳到 Response validation
  • Cookies processing

    • 基于路由的 state 选项.
    • 基于 failAction 的错误处理。
  • onPreAuth

    • 无论是否执行认证,都会调用。
  • Authentication

    • 基于路由的 auth 选项.
  • Payload processing

    • 基于路由的 payload 选项.
    • 基于 failAction 的错误处理。
  • Payload authentication

    • 基于路由的 auth 选项.
  • onCredentials

    • 仅在执行身份验证时调用。
  • Authorization

    • 基于路由的 authentication access 选项.
  • onPostAuth

    • 无论是否执行认证,都会调用。
  • Headers validation

    • 基于路由的 validate.headers 选项.
    • 基于 failAction 的错误处理。
  • Path parameters validation

    • 基于路由的 validate.params 选项.
    • 基于 failAction 的错误处理。
  • JSONP cleanup

    • 基于路由的 jsonp 选项.
    • request.query 中删除 JSON 参数.
  • Query validation

    • 基于路由的 validate.query 选项.
    • 基于 failAction 的错误处理。
  • Payload validation

    • 基于路由的 validate.payload 选项.
    • 基于 failAction 的错误处理。
  • State validation

    • 基于路由的 validate.state 选项.
    • 基于 failAction 的错误处理。
  • onPreHandler

  • Pre-handler methods

    • 基于路由 pre 选项.
    • 基于每个预处理程序方法的 failAction 设置的错误处理。
  • Route handler

    • 执行路由 handler .
  • onPostHandler

    • 可以修改包含在 request.response 中的响应 (但是不能指定一个新值)。返回不同的响应类型 (例如, 用 HTML 响应替换错误), 返回一个新的响应值。
  • Response validation

    • 基于 failAction 的错误处理。
  • onPreResponse

    • 通常被调用, 触发请求终止。
    • 可以修改包含在 request.response 中的响应 (但是不能指定一个新值). 返回不同的响应类型 (例如, 用 HTML 响应替换错误), 返回一个新的响应值。 请注意,生成的任何错误都不会传递回 onPreResponse 以防止无限循环。
  • Response transmission

    • 可能在 'error' 频道触发 'request' event 。
  • Finalize request

    • 触发 'response' 事件.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文