时间:2023-10-16URL还能这样玩!路径代理功能实现请求转发与结果返回
路径代理是一项强大的技术,它通过将用户请求的真实路径转发到指定的代理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":设置为当前代理请求源端访问域名。
5. 发送转发请求到代理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页面。
什么是路径代理?
将用户请求的真实路径转发到指定的代理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":设置为当前代理请求源端访问域名。
5. 发送转发请求到代理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页面。