最近一周的学习简要

按照传智播客的NET学习视频自学的:

无状态Http

       HTTP协议是无状态的,不会记得上次和网页“发生了什么”(故事:24小时记忆)。服务器不记得上次给浏览器什么,浏览器需要记住这些值(intpu就是几道value中,对于其他的值就要放到隐藏字段中,比如viewstate),下次在提交给服务器的时候(请再我的宽度按基础上增加10),就要把上次的值提交给服务器,让他想起来。如果要知道上一次的状态,一个方法是在对浏览器响应结束之前将状态信息保存到也米昂表单中,下次页面再向服务器发出请求的时候带上这些状态信息,就这样服务器就能根据这些状态信息还原上次的状态了,类似看病的病历本。

状态信息保存在隐藏字段中的缺点:加大网站的流量、降低访问速度、集美数据放到表单总会有数据欺骗等安全问题。故事:自行打印存折,因为余额不是写到存折这个隐藏字段总的,唯一的关联就是卡号,要把机密数据放到服务器,并且却别不同的访问者的私密区域,那么就要一唯一的标识。

 

Cookie(很给力)

表单是和页面相关的,只有浏览器端提交了这些数据服务器端才能得到。而有时候希望贼服务端任意的地方存取一些和访问者相关的信息,这时候就不方便将这些信息保持到表单中了,因为如果那样的话必须随时注意在所有页面表单中都要保持这些信息。Cookie是和站点相关的,并且每次想服务器请求的时候除了发送表单参数外,还会将和站点相关的所有cookie都提交给服务器,是强制性的。Cookie也是保持在浏览器 端的,而且浏览器会在每次请求的时候会把和这个站点相关的cookie提交到服务器,并且将服务器返回的cookie更新会数据库,因此可以将信息保存到cookie中,然后在服务器端读取、修改。服务器返回数据出了普通的html数据外,还回返回修改的cookie,浏览器把难道的cookie值更新本地浏览器的cookie就可以了,将你的主机分配一个ID,保存在cookie中,作为唯一标示。

互联网优化的案例:图片服务器和主站域名不一样,降低cookie的流量的次数传输。

案例:一个页面设置cookie,一个页面读取cookie

       设置值的页面:response.setCookie(newHttpCookie(“UserName”.TextBox1.Text));

       读取值的页面:Label.Text = Request.Cookies[“UserName”].Value;

Cookie的缺点和表单一样,而且还不嫩储存过多的信息

 

Session 原理(迷糊了好久)

Private int i=0; 每次请求来了都会new一个新的实现了IhttpHandler接口的累“便利1”的石磊进行处理,用完了就GC叼,所以不会保存上次的值(有时候会考到)

Cookie不能存储过多的信息,如果想保存大量的数据,可以保存一个Guid到Cookie中,然后在服务器中建立一个以Guid为Key,复杂数据为Value全局Dictionary,statie字段对已不同用户也只有一份,因此用static实现多用户贡献数据。

ASP.NET已经内置了Session机制,把上面的例子用ASP NETSession重写,不要放太多的对象到Session,Session会有超时销毁机制,发帖(服务器不可能字段浏览器是否开着,什么时候关闭),发帖计时,在线时间统计,靠请求来判断是否还或者,Cooki是存在客户端,Session是存在服务器端,目的是一样的,保存和当前客户端相关的数据,不能放太大的数据,放的数据是object。

可以看到Session机制不是Http 协议规定的,是Asp NET实现的,现在PHP/JSp 等大部分服务器技术都实现了Session,原理差不多

案例:用Session实现验证码


学到这里终于对WEB有点点感觉了,感觉这才算真是的技术知识,继续学习了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值