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核心机制内置对象汇总)的更多相关文章

  1. 秒懂ASP.NET中的内置对象

    上篇博客,小编主要简单的介绍了一下ASP.NET中的控件,这篇博客,小编主要简单总结一下ASP.NET中的内置对象,七个内置对象分别是:Request.Response.Application.Coo ...

  2. 【Asp.net】 七大内置对象

    本文主要分析Asp.net的7大内置对象. 利用提供的内置对象可以实现页面之间的数据传递和一些特定的功能,如数据输出,页面重定向等.5个核心常用内置对象分别是Application,Session, ...

  3. ASP.NET的六大内置对象

    ASP.NET 六大内置对象(System.Web.UI.Page类): 1.Response 2.Request 3.Server 4.Application 5.Session 6.Cooki R ...

  4. ASP.NET六大巨头——内置对象(1)

    ASP.NET提供了六个内置对象:Request.Response.Application.Session.Server和Cookie.这些对象收集当前应用程序请求.用户信息.响应浏览器信息,来完毕页 ...

  5. ASP.NET六大巨头——内置对象(2)

    前面讲了三个内置对象,后面来探究一下另外三个内置对象Session.Server和Cookie,Session对象就是服务器给客户端的一个编号:Server对象提供对服务器上的方法和属性的访问:coo ...

  6. 【ASP.NET 基础】ASP.NET内置对象

    准确地说,asp.net 并没有内置对象这一说,jsp 里确实把 request.response 这些当作 jsp 的内置对象,这里只不过是借用了一下 jsp 的说法而已.在 Web 中处于中心的是 ...

  7. 实验四 使用ASP.NET内置对象 总结

    这次实验内容是ASP.NET的一些内置对象的熟悉,感觉看到了上学期JSP的影子,很多地方都很像.像Response对象,Request对象,Context对象等等.以前我老是搞混Response对象和 ...

  8. JSP九个内置对象及指令、动作标签

    一.JSP九大内置对象 (一)JSP中无需创建就可以使用的9个对象 输入输出对象 1.response(HttpServletResponse):处理JSP生成的响应,然后将响应结果发送给客户端.是s ...

  9. js的内置对象

    转载: https://www.cnblogs.com/liuluteresa/p/6413988.html   在js里,一切皆为或者皆可以被用作对象.可通过new一个对象或者直接以字面量形式创建变 ...

随机推荐

  1. [考试反思]1113csp-s模拟测试114:一梦

    自闭.不废话.写一下低错. T1:觉得信心赛T1不会很恶心一遍过样例直接没对拍(其实是想写完T2之后回来对拍的) 状态也不好,基本全机房都开始码了我还没想出来(skyh已经开T2了).想了40多分钟. ...

  2. Java堆空间Vs栈内存

    之前我写了几篇有关Java垃圾收集的文章之后,我收到了很多电子邮件,请求解释Java堆空间,Java栈内存,Java中的内存分配以及它们之间的区别. 您可能在Java,Java EE书籍和教程中看到很 ...

  3. windows系统搭建Python环境

    1.首先访问http://www.python.org/download/去下载最新的python版本. 2.安装下载包,一路next. 3.为计算机添加安装目录搭到环境变量,如图把python的安装 ...

  4. [灵魂拷问]MySQL面试高频100问(工程师方向)

    作者:呼延十 juejin.im/post/5d351303f265da1bd30596f9 前言 本文主要受众为开发人员,所以不涉及到MySQL的服务部署等操作,且内容较多,大家准备好耐心和瓜子矿泉 ...

  5. OpenWrite插件上架Google商店,插件安装更加容易!用户安全更有保障!

    随着越来越多用户加入OpenWrite写作与快速发布文章到各大技术社区,不少非程序员童鞋经常会卡在插件安装这一步. 这是因为之前我们没有把插件上架到Google商店,所以需要用比较硬核的方式来安装. ...

  6. 什么是BGP协议

    Border Gateway Protocol,边界网关协议,简称BGP,主要用于互联网AS(自治系统)之间的互联. Linux内核原生支持的.专门用在大规模数据中心维护不同的"自治系统&q ...

  7. HTTPS请求处理

    HTTPS请求的时候: [1]证书是受信任的,什么都不用做 [2]证书是不受信任的,是自签名的 (1)修改配置文件,禁用ATS特性 (2)信任并安装数字证书 NSURLSession的示例代码如下: ...

  8. Swift实战技巧

    Swift实战技巧 从OC转战到Swift,差别还是蛮大的,本文记录了我再从OC转到Swift开发过程中遇到的一些问题,然后把我遇到的这些问题记录形成文章,大体上是一些Swift语言下面的一些技巧,希 ...

  9. docker 修改镜像和容器的存放路径(最新自己实践了第三种方法)

    docker info :查看docker的存储等相关信息. 将路径修改至挂载磁盘中 前提:磁盘已挂载成功 方法一: 1.停止docker 服务 service docker stop 2.备份数据到 ...

  10. LEETCODE 1254 统计封闭岛屿的数目 Number of Closed Islands

    地址 https://leetcode-cn.com/contest/weekly-contest-162/problems/number-of-closed-islands/ 有一个二维矩阵 gri ...