Session 为资源提供服务时的外部请求数
因此,我有一个web应用程序,它向服务器发出大量数据请求。项目要求具有非常快的服务器响应时间。服务器托管在基于云的平台上 该应用程序使用会话跟踪用户登录后的身份验证。因为它托管在云提供商上,所以我使用缓存来备份会话存储(在我的例子中,它是Auzre缓存,但如果您不熟悉,请考虑Redis) 电流如下所示:Session 为资源提供服务时的外部请求数,session,server-side,Session,Server Side,因此,我有一个web应用程序,它向服务器发出大量数据请求。项目要求具有非常快的服务器响应时间。服务器托管在基于云的平台上 该应用程序使用会话跟踪用户登录后的身份验证。因为它托管在云提供商上,所以我使用缓存来备份会话存储(在我的例子中,它是Auzre缓存,但如果您不熟悉,请考虑Redis) 电流如下所示: public void Get(){ var authHeader = Request.Headers["CustomAuth"]; if(!validate(authHeade
public void Get(){
var authHeader = Request.Headers["CustomAuth"];
if(!validate(authHeader)){
Response.StatusCode = 404;
Response.End();
}else{
//something else
}
}
- 用户访问一个资源
- 正在尝试通过缓存基于会话ID获取会话。这是一个缓存请求
- 用户通过会话状态进行身份验证(如果已登录)
- 通常通过缓存发送数据请求
- 数据将返回给用户
注意:我将ASP.NET MVC/WebAPI与C结合使用,但我觉得这与问题不太相关,因此我将语言和平台排除在问题之外。您可能希望将身份验证和资源请求步骤合并到一个请求中。这不仅更快,而且比您的实现更安全。考虑下面的场景:
public void Get(){
var authHeader = Request.Headers["CustomAuth"];
if(!validate(authHeader)){
Response.StatusCode = 404;
Response.End();
}else{
//something else
}
}
如果您需要在一个请求中执行登录+会话身份验证+资源请求,那么只有两种身份验证方法。用户可以提供用户名/密码组合,也可以提供会话密钥。考虑一下这个场景,它来自我使用的一个API:
我希望这能让您有所了解。此外,您可以通过修改/限制服务器上的设置来删除服务器端的身份验证,以满足仅来自web应用所在ip的请求。您的web应用程序仅在其已验证的情况下才允许请求传递到服务器,因此到达数据服务器的所有请求都将自动提供,而无需检查任何验证。在这种情况下,您只需点击一次缓存,即可检查用户是否已通过身份验证,并立即点击服务器。我同意此处所述的一般想法,即保持无状态,宁愿使用CPU绑定的身份验证而不是IO绑定的身份验证,因此放弃缓存进行身份验证。然而,我会选择使用HTTP身份验证,而不是使用HTTP身份验证。它比HTTP身份验证功能强大得多,特别是因为它不限制您使用HTTP。