动态网页和B/S技术web
能够与用户进行交互 根据不一样的时间 不一样的人 有不一样的实现ajax
CJI ASP PHP ASPX ASP.NET(MVC)json
C/S(部署在局域网或者单机上 客户端服务器端都要安装应用程序 每一个端点都要升级) B/S(只须要有浏览器 部署在Web服务器上 升级只须要升级服务器)浏览器
B/S结构中浏览器端与服务器端采用请求/响应模式进行交互(客户端发送的叫作请求)缓存
服务器端给客户端相应的响应安全
http协议服务器
请求/响应的处理模式cookie
http通信协议特征网络
短链接,通信后网络当即断开;app
无状态,对于服务器来讲,每个请求都是全新的;
能够运载多种数据内容,如网页、图像、音频、视频等;
是一种明文数据传输协议,不安全。
(服务器端角度看)
没有客户端发请求服务器端毫不可能主动发出响应
服务器和客户端通信完成之后随即断开链接,下次通信时没法区分是哪个客户端
服务器端基本是只有一个 客户端能够有无限多个,属于一种一对多的关系
(客户端角度看)
要接收服务器端的数据 的话 必须客户端先主动发起请求
要让服务器端可以分辨也本身 必须主动告诉服务器端
Hhtp通信协议细节
URL统一资源描述符(统一资源定位符)
host(主机)网络上主机的名称(能够用IP地址替换)[:port](端口号)[path](路径)
get (请求方法)(明文传输(有个数限制)) / post 数据打包传输 没有大小个数限制
http状态码
响应状态码(200 成功)
3开头表明重定向
4开头表明请求错误
404 没找到
五、6开头 服务器错误
505 协议版本不支持
MIME类型
每一个MIME类型由两部分组成,前面是数据的大类别,后面定义具体的种类
服务器端给客户端改善的数据类型是经过mime类型控制的
ASP.NET 是一种建立动态网站的技术
ASP.NET 是一个事件驱动的、基于控件的体系结构
ASP.NET通过两次编译
IIS
ASP.NET引擎 (环境)
第一次有生成页面类的过程 第二次则没有 直接实例化页面类
System.Web.UI.Page 类 (页面类)
<%@ Page Language=”C#” AutoEventWireup=”true” CodeFile=”页面名.aspx.cs” Inherits=”类名” %> (Page指令)
Init(初始化页面时)
Load(加载页面时)(Page.IsPostback(判断是否是首次加载))
PreRender(页面显示前)
Unload(页面卸载时)
ASP.NET中的常见内置对象
Page对象 指向页面自身的方式,做用域为页面执行期
Request对象 读取客商在Web请求期间发送的值
Response对象 封装了页面执行期返回到http客户端的输出
Application对象 表明当前应用程序 做用于整个程序运行期的状态对象
Session对象 会话对象 会话期状态保持对象,用于跟踪单一用户的会话(存储在服务器端)
Cookie对象 客户端保持会话信息的一种方式(保存在浏览器上的(会话Cookie))
Server对象 提供对服务器上的方法和属性的访问
Request.QueryString 能够获取经过URL路径传来的数据
Request.From 获取经过表彰提交传输的数据
Request.Params 以上方式传输的内容均可以使用该属性获取
网页传的值默认是string类型的
Response.Redirect(重定向到另一个页面)(两次请求)
页面生命周期(配置阶段 事件处理阶段 显示阶段 清除阶段)
Server 对象是HttpServerUtility类的补钙,包含处理web请求的方法
Execute方法和Transfer方法均会中止当前页面的执行,并转去执行用户在方法内指定的URL,同时用户的会话状态和任何当前的事务处理状态都将传送给新页面
区别:
Server.Execute(当前页面中能够嵌入其它页面的内容)(控制权的相对转移,控制权会再次回到本页面,执行后续的事件处理)
Server.Transfer(URL参数指定的页面处理完后,控制权不会返回给调用此方法的页面,而且在新页面完成执行时结束,URL地址不变)(是服务器内部的跳转,是控制权的绝对转移,在转移期间能够传递数据,URL地址不变)(是服务器内部 控制权的绝对转移,对外面来讲是透明的,感受不到的,是一次请求,URL地址不变)
Response.Redirect(是客户gfir重定向,是丢弃了原有的请求数据,从新开启新的请求,URL地址会变化)
Html表单默认传输方式 GET 服务器控件默认传输方式 POST
Server.HtmlEncode(会自动转码为Html)
Server.HtmlDecode(自动解码)
Server.UrlEncode(包含特殊字符 能够用.进行转码)
Server.UrlDecode()
protected 的类能够在前台编码中使用
<%= %>(表达示 输出后台的值)
Server.MapPath
~/表明网点的虚拟根目录
状态管理
状态是任何类型的数据可以在一段时间内保持活跃的信息
这段时期能够是整个应用程序生命周期,也能够是用户使用这个应用程序的时间,或者用户浏览另一个页面以前这个页面的生命周期
状态管理是您对同一页或不一样页的多个请求维护状态的页信息的过程
http(hypertext transfer protocol):超文本传输协议(应用层协议)(不记录用户的信息)
POST GET HEAD OPTIONS DELETE TRACE PUT (请求方式)都是干吗的
浏览器默认都是GET表单最好是POST
GET 的数据容量不能超过1K POST数据量不受限制
按照存储状态的位置,ASP.NET中状态保持分类以下
服务器端;Application(全部用户都能访问)、 Session(会话期状态保持对象:关掉浏览器会话结束(最大非活动时长 默认:分钟))
窗户端:Cookie()、 ViewState、 查询字符串、 隐藏的窗体字段(隐藏域)
Session
Sessoin.Clear();清空Session
Session.Abandon();终止会话
Cookie
最大为4KB 保存在客户端浏览器或客户端硬盘
在客户端系统中保留客户端的我的信息
会话Cookie(暂时的 关闭浏览器后,任何会话Cookie都会丢失)
持久性Cookie(保存在客户端硬盘,须要设置Cookie的过时时间)
Cookie缺点:不提供任何安全保障,由客户端系统控制;容量有限;浏览器最多只能够容纳20个
eg:
HttpCookie cookie = new HttpCookie(“Cookie名称”, “值”);
Cookie.Expires(过时时间(设置此属性后就是持久性Cookie)) = DataTime.Now.AddMonths(1);
Response.Cookies.Add(cookie);
读取:Requset.Cookies[“cookie(名称)”].value;(失效获得的值为null)
App_Code(建立的类、接口要放在这个文件夹下)
ViewState(视图状态)(当前页面内有效)(使用方式和Session同样 做用域为当前页面)(<% @Page ViewStateEncryptionMode=”Always”%>)
Application表示ASP.NET应用程序的实例
状态由HttpApplicationState类包括全部及各类关的方法和集合
当第一个用户请求一个ASP.NET文件时,会应用程序并建立一个Application对象
能够在整个应用程序中使用,建立的对象将持续到应用程序关闭。它是应用程序级变量,全部页面均可以使用该对象
Application对象以键/值对存储数据
Global.asax(全局应用程序类)
Application_Start(应用程序启动) Application_End(应用程序关闭) Application_Error(未处理错误) Session_Start(会话开始) Session_End(会话结束)
ASP.NET控件(HTML控件、 Web服务器控件)
Web服务器控件位于System.Web.UI.Webcontrols命名空间下
Literal控件 Repeater
TextBox控件的AutoPostBack属性 是否自动回传到服务器 (TextMode)
RequireFieldValidator控件 ControlToValidate属性(要验证的控件的ID)(add key=”ValidationSettings:UnobtrusiveValidationMode” value = “None” />)
正则:”+”表示至少出现1次 (表示组) [能够出现其中的任意一个字符(任选其中一个 )] ?是0到1次 *是0到n次
母版页:统一风格的做用(不能使用输出缓存)
缓存:是一项在计算中普遍用来提升性能的技术,它将访问频率高或构形成本高的数据保留在内存中、 无需从新建立的状况下屡次使用
ASP.NET支持两种缓存:输出缓存 数据缓存
<%@OutputCache Duration(缓存时间 单位是秒) VaryByParam=”none”(不根据参数缓存) VaryByControl=”控件名”(根据控件名缓存) %>
数据缓存:Cache(缓存类) (存的也是键值对)
Shared=”true”
用户控件(.ascx)(可使用输出缓存)(<%@Control %>)(定义后台代码的关联)(<%@ Register %>)(注册用户控件)
DataBind()实现数据绑定必须的代码
Ajax Asynchronous JavaScript and XML
$.ajax({
type: “POST”,
contentType: “application/json; charset=UTF-8”
});
HttpContext(表明当前请求的一个上下文环境)
IIS处理根据文件的后缀名
ISAPI应用程序(实际上只是一个接口,起到一个代理的做用,主要工做是映射所请求的页面(文件) 和与此后缀名相应的实际的处理程序)
处理程序映射
HttpRuntime类是asp.net的一个主要入口 ProcessRequest处理请求
应用程序域 AppDomain
HTTP.sys的内置驱动程序来监听来自外部的HTTP请求
在5.0中 全部应用程序都在进程Aspnet_wp.exe下 死一个都死
iis6 w3wp.exe
HttpModule能够作一些执行某个实际工做前的事情
HttpHandler也是http请求处理的最底层
HttpModule 实现了System.Web.IhttpModule接口的类(本质上就是过滤器(过滤请求和响应))(有访问HttpContext对象的权限,能够修改请求,输出响应的内容以及提供自定义的身份验证)(针对每个请求提供响应前处理和响应后处理)(多个HttpModule能够钩住相同的事件 事件被处理的顺序是它们在web.config里配置的顺序)
使用HttpModule实现权限管理的步骤:
1 定义一个类Qx, 实现System.Web.IhttpModule接口
2 实现接口中的Init方法,对context.AcquireRequestState事件进行处理,截获用户的请求,判断用户有没有访问特定资源的权限
3 在web.config中添加该HttpModule的配置
Application.CompleteRequest(终止当前请求);
水印
全局Handler
mechine.config:提供整个机器的默认配置,对该文件的个性将影响全部本机的站点
web.config:通常用于应用程序级别的配置文件,对其修改不影响其余站点,也能够用于站点下的子目录
基于XML区分大小写
可读可写
修改配置 不用重启服务器
应用配置应用最近的原则
安全控制:身份验证(登陆页面)(是否拥有相应的身份); 权限控制(控制各类身份的用户所拥有的权限)
身份验证方式
Windows身份验证
Passport身份验证
Forms身份验证
<authentication mode=”Forms”><forms name=”” loginUrl=”页面” timeout=”60” protection=”All”(加密) ></forms></authentication>
受权:allow(容许) deny(拒绝) *(全部用户) ?(匿名用户)
<authorization><deny users=”?” /><allow roles=”用户名” /><deny users=”*” /></authorization>(系统老是按照从前向后逐条匹配的方式,执行最早的匹配者)
System.Web.Security.FormsAuthentication.RedirectFromLoginPage(用户名, false)(建立验证票)
Session.Clear();
Session.Abandon();
System.Web.Security.FormsAuthentication.SignOut();
Response.Redirect(退出后的页面);
版权声明:本文版权归做者和博客园共有,欢迎转载,但未经做者赞成必须保留此段声明,且在文章页面明显位置给出原文链接,不然保留追究法律责任的权利。
做者:黯淡の青春 博客地址:http://www.cnblogs.com/wuwangqianxun/