URL还能这样玩!路径代理功能实现请求转发与结果返回-shopoem黑科技

路径代理是一项强大的技术,它通过将用户请求的真实路径转发到指定的代理URL,实现对请求的转发和处理,并将处理后的请求结果返回给客户端。本功能有助于统一资源管理,提高处理效率,满足日益复杂的业务需求,适用于个性化品牌展示、跨平台资源整合等需求场景。

什么是路径代理?

将用户请求的真实路径转发到指定的代理URL,从而实现对请求的转发和处理,然后将处理后的请求结果返回给客户端。如此可在不改变商城路径的情况下,展示来自代理URL的内容。

举个例子,当用户在商城网站上点击”About us”时,路径代理可以将该请求转发到公司官网介绍页面或者Facebook主页等,然后将相关内容返回给用户,同时保持商城路径的不变性。这种扩展方式提供了更多与外部资源集成和互动的机会,为用户带来更多丰富多样的内容和功能体验。

如何配置?
    Step.01 填写商城中已存在的真实路径,注意真实路径不能以斜杠(/)开头,也不能包含问号(?)参数

Step.02 填写要转发至的代理URL,并了解我们的精准匹配和泛匹配转发效果,配置即可完成


效果示例一:在代理URL转发请求时,会携带原始请求的子路径和参数

  • 配置真实路径:apps/users
  • 配置代理URL:https://example.com/proxy
  • 原始请求路径:apps/users/123?status=active
  • 转发后的请求路径:https://example.com/proxy/users/123?status=active

效果示例二:如果原始请求和代理URL有相同的参数,则将使用原始请求中的参数值覆盖代理URL

  • 配置真实路径:apps/orders
  • 配置代理URL:https://example.com/api-proxy?status=completed
  • 原始请求路径:apps/orders/789?status=pending
  • 转发后的请求路径:https://example.com/api-proxy/789?status=pending

工作原理

  1. 确定源店铺ID和当前代理请求源端访问域名,这些信息将用作header头参数。
  2. 获取原始请求的子路径和参数。这些信息将在转发请求到代理URL时一并携带。
  3. 检查原始请求和代理URL是否具有相同的参数。如果存在相同的参数,需要使用原始请求中的参数值覆盖代理URL中相应参数的值。
  4. 构建转发请求到代理URL的请求,包括以下内容:
    ①根据实际需求选择合适的HTTP或HTTPS协议。
    ②设置请求的目标URL为代理URL。
    ③将原始请求的子路径和参数添加到目标URL中。
    ④检查并处理相同参数的值覆盖情况。
    ⑤添加特定的header头参数到请求中,包括:

“x-oemcart-store-id”:设置为源店铺ID。
“x-oemcart-current-domain”:设置为当前代理请求源端访问域名。

  1. 发送转发请求到代理URL,并等待响应。

推荐使用场景

  • 该功能适用于需要将特定请求从原始服务转发到代理服务,并通过返回的HTML代码将代理URL的内容显示给用户的情况
  • 特定的header头参数可以用于在代理请求中传递额外的信息,例如源店铺ID和当前代理请求源端访问域名
  • 通过内链页面转发进行个性化品牌展示、跨平台资源整合。当用户点击页面内链接或按钮需要打开内部指定页面时,配置转发规则将请求转发到代理页面实现。


注意事项

  • 当代理URL转发请求时,会携带原始请求的子路径、查询参数和header头参数。
  • 代理请求支持GET、POST、DELETE、PUT等请求。
  • 如果原始请求和代理URL具有相同的参数,代理URL将覆盖使用原始请求的参数值。
  • 真实路径将进行泛匹配。例如,如果您填写的真实路径为”apps/products”,则”apps/products/123″、”apps/products/123/details”等都将成功匹配。
  • 如果您同时设置了真实路径”apps/products/123/details”和”apps/products”,则路径更长的”apps/products/123/details”将优先匹配,而不会走”apps/products”的代理转发设置。
  • 如果真实请求未命中任何代理规则,将会提示404页面。