Object(Asp.NET核心机制内置对象汇总)

Posted taotaozhuanyong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Object(Asp.NET核心机制内置对象汇总)相关的知识,希望对你有一定的参考价值。

ASP.NET有个大佬,HttpContext(在.Net Core中依然是它)Http请求的上下文,任何一个环节都是需要HttpContext的,需要的参数信息,处理的中间结果,最终的结果,都是放在HttpContext,是一个贯穿全局的对象。

所谓的六大对象,其实就是HttpContext的属性

1、Request

  url参数,form参数,url地址,URLRefer,content-encoding,就是http请求提供的各种信息,后台里面都是可以拿到的context.Request.Headers["User-Agent"],包括自定义的BasicAyth,请求信息的解读是asp.net_isapi按照http协议解析出来的

2、Response

  响应,response.Write,各种Result扩展就是序列化+response,所谓response都是给客户端响应内容,出了body(json/html/file),其实还有很多东西,各种header,反正都是交给浏览器去用的

3、Application

  全局的东西,多个用户共享的,技术---统计下网站的请求书

4、Server 

  也就是个帮助类库

5、Cookie

  用户登录验证,登录时写入,验证时获取,保存用户数据(记住账号;购物车,现在不放cookie里面了;访问过哪几个页面),一个用户一个cookie,也是字典式的。

  存在客户端,不能有敏感信息,推荐加密,每次请求的时候,都会提交,不能太大,可以存浏览器,没有指定expiretime,关闭浏览器就丢失了,想存在硬盘就指定expiretime,想清空就修改有效期。同一个浏览器登录覆盖问题,一个浏览器cookie只有一个地方存储。可以使用谷歌浏览器的无痕模式,是不存cookie的。

6、Session

  用户登录验证时,登录时写入,验证时获取,验证码,跳转到当前页,一个用户一个session,k-v形式的,字典式的。  

  服务器内存(sessionstateserver/SQLserver),体积不要太大,可以存敏感信息,重启丢失。一个用户一条,经常做传值(tempdata),负载均衡下session怎么处理?会话粘滞/session共享。如果浏览器禁用了cookie,还能用session吗?不能的,但是可以通过url地址传递sessionid。

浏览器关闭,登录就失效了,这是为什么呢?

  cookie存在浏览器内存,关闭浏览器后,cookie就没了,再次打开分配了新的sessionid,所以没有登录,之前登录的那个session还是在内存里面的。

  如果希望重新打开用户还在登录状态,就是在硬盘上存储cookie(expiretime),后台要检测cookie,认可cookie的有效性(第一次检测cookie,然后还是写入session,每次还是checksession)

协议:

  就是一个约定,保证多方的信息传输(中文也是一种约定)

  Http协议:超文本传输协议,也就是个文本传输的规范,浏览器/客户端遵循;服务端也遵循,那么就可以发起交互了。

Http协议理解,请求/响应

技术图片

 

 

Http的请求过程,就像发一个命令,实现约定好对个,浏览器按照格式组装命令

请求行:url长度有限制

Header:有很多默认都是浏览器写的,也可以自己来,WebApi的Authorize,浏览器实际上是一个实现了Http协议标准的应用程序

Body:表单参数/上传的文件/图片(字符串),没有长度限制

技术图片

 

C/S,客户端/服务端

  客户端链接到服务器socket,发起请求,服务器完成响应,释放链接

 B/S,浏览器/服务器

  简单快速,灵活,任何类型都可以返还,无状态(没有长时间的链接,没有连续的链接),无状态(两次请求都没有关联,所以无法识别)

  回发一个结果,实现约定好规格,服务器按照格式组装结果

  响应行:StatusCode

  Header:压缩格式,缓存,WebApi权限,跨域,你控制的得浏览器支持

  Body:返回的主体

 

以上是关于Object(Asp.NET核心机制内置对象汇总)的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET内置对象的总结

如何使用角度修改 asp.net 核心 WebAPI 的 asp.net 身份 UI

ASP.NET7大内置对象以及对应功能?

asp.net中如何保存图片对象

ASP.NET MVC 应用程序初学者常见问题汇总

ASP.NET----内置对象----Resuest