1.Get和post区别

Get通过url显式传递参数,参数传递长度有限

Post隐式传递,可以传递数据量较大的数据

2.表单只可提交有name 的input 、select、textarea的value。

对于不能提交value的,例如div。可以用hidden类型的input代替传送。这就是ASP.NET的viewstate机制的由来。

3.大量的数据不能存储在hidden或者viewstate中,会增加上传流量,导致网页速度变慢。同时表单中不能存储机密数据,会造成数据欺骗。

4.后台变量不能保存B端的值,对此引用session机制与cookie。Session是B端用户相关信息与S端内存的对应关系。Cookie将这些信息数据保存在本地。Session中不能存储过大的数据,并且超过一段时间会自动清除。例如在线编辑文章,编辑时间过长导致提交时出现文章提交失败,超时或者丢失。优化网页案例:网站主站域名与音乐站,图像站等大流量子站域名区分开,防止cookie的大量提交更新。

5.每一个请求都会new一个实现了IHttpHandler接口的类的实例进行处理,用完后就GC,不会保留。

6.JS作为客户端校验能方便用户,但js被禁用后会引起不必要的麻烦,所以数据限制等功能还要在服务端做处理。

7.标签中 OnClientClick为客户端点击事件,onclick是服务端点击事件。

8.VirtrualPathUtility虚拟路径方法:

ToAbsolute(“~/ex.aspx”) 将虚拟路径~/ex.aspx转换为绝对路径

AppendTrailingSlash(“”) 判断虚拟路径最后是否有/,如果没有就加上

Combine(“”,””) 合并两路径,需要注意路径一的末尾如果没有/就找到最后一个/处进行合并,例如Combine(“~/a/b”,”c.html”)合并为~/a/c.html

9.Response对象:

Buffer:允许缓存

Flush:立即将缓存区内容发给浏览器,常用于按步骤的输出

Clear:清空缓冲区

End:终止请求,不在执行后面的代码

Redirect:重定向,浏览器自己访问新网站,所以地址栏变化。两次报文处理,通知访问和访问。

OutputStream:输出流,如excel,图片

SetCookie:设置Cookie

WriteFile: 直接输出文件到浏览器

10.在用aspx输出非html的例子中经常看到用clear来输出httpmodule等附加内容。所以不推荐用aspx输出非html。(用ashx)

11.Request对象:

AppRelativeCurrentExecutionFilePath:当前页面相对路径

PhysicalApplicationPath:当前应用物理路径

PhysicalPath:当前页面物理路径

UrlReferrer:网页来源,用于防盗链

UserHostAddress:获取访问者IP

UserLanguages:获取访问者浏览器支持语言

Cookie:读取Cookie

12.Server对象:

Transfer:服务器内部转向,由其他aspx页面接管。浏览器地址不变。不能重定向到外部网站。只有一个请求。并且不能重定向到ashx

HttpContext:有时候不能直接拿到HttpContext 对象,需要HttpContext.Current来取。

13.HttpHandler

利用Response.AddHeader(),加入报文头。

Content-Disposition:attachment;filename=.用于作为下载链接

Filename中如果有中文,先用HttpUtility.UrlEncode()编码

14.在ashx下使用Session时需要实现IRequiresSessionState接口

15.在建立asp.net项目时,不要在文件夹中包含#符号,以免解析路径出错