1,HTTP协议的特点,以及请求方式。
HTTP协议的主要特点可概括如下:
1.支持客户/服务器模式。
2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。
由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
打开一个连接后,客户机把请求消息送到服务器的停留端口上,完成提出请求动作。
HTTP/1.0 请求消息的格式为:
请求消息=请求行(通用信息|请求头|实体头)CRLF[实体内容]
请求 行=方法 请求URL HTTP版本号 CRLF
方 法=GET|HEAD|POST|扩展方法
U R L=协议名称+宿主名+目录与文件名
2,如果你制作的一个动态前台页面,执行非常缓慢,你将如何优化他?
1. 数据库访问性能优化
2. 字符串操作性能优化
3. 优化 Web 服务器计算机和特定应用程序的配置文件以符合您的特定需要
4. 一定要禁用调试模式
5. 对于广泛依赖外部资源的应用程序,请考虑在多处理器计算机上启用网络园艺
6. 只要可能,就缓存数据和页输出
7. 选择适合页面或应用程序的数据查看机制
8. 将 SqlDataReader 类用于快速只进数据游标
9. 将 SQL Server 存储过程用于数据访问
10. 避免单线程单元 (STA) COM 组件
11. 将调用密集型的 COM 组件迁移到托管代码
12. 在 Visual Basic .NET 或 JScript. 代码中使用早期绑定
13. 使请求管线内的所有模块尽可能高效
14. 使用 HttpServerUtility.Transfer 方法在同一应用程序的页面间重定向
15. 必要时调整应用程序每个辅助进程的线程数
16. 适当地使用公共语言运行库的垃圾回收器和自动内存管理
17. 如果有大型 Web 应用程序,可考虑执行预批编译
18. 不要依赖代码中的异常
19. 使用 HttpResponse.Write 方法进行字符串串联
20. 除非有特殊的原因要关闭缓冲,否则使其保持打开
21. 只在必要时保存服务器控件视图状态
22. 避免到服务器的不必要的往返过程
23. 当不使用会话状态时禁用它
24. 仔细选择会话状态提供程序
25. 不使用不必要的Server Control
26. ASP.NET应用程序性能测试 (from:http://www.17ext.com/showtopic-875.aspx)
3,什么时候使用缓存?缓存可能出现的问题。
第一,数据可能会被频繁的被使用,这种数据可以缓存。
第二,数据的访问频率非常高,或者一个数据的访问频率不高,但是它的生存周期很长,这样的数据最好也缓存起来。
第三是一个常常被忽略的问题,有时候我们缓存了太多数据,通常在一台X86的机子上,如果你要缓存的数据超过800M的话,就会出现内存溢出的错误。所以说缓存是有限的。换名话说,你应该估计缓存集的大小,把缓存集的大小限制在10以内,否则它可能会出问题。在Asp.net中,如果缓存过大的话也会报内存溢出错误,特别是如果缓存大的DataSet对象的时候。
Cache主要用来缓存使用频率高且不需经常更新的数据。
4,cookies和session的区别,各自的优缺点。
cookie存储在用户电脑上,如果用户禁用了cookies,则不能使用。session存储在服务器上,由session id标示,关闭浏览器时session就会丢失,只要浏览器打开着,就可以获得session。
cookies常用来存储session id,这样session 和用户绑定起来。
5,char, varchar, nvarchar的区别和不同。
nvarchar可以存储任何的unicode数据,varchar 仅限于8-bit codepage。
char的长度是固定的,比如说,你定义了char(20),即使你你插入abc,不足二十个字节,数据库也会在abc后面自动加上17个空格,以补足二十个字节;char是区分中英文的,中文在char中占两个字节,而英文占一个,所以char(20)你只能存20个字母或10个汉字。 varchar是长度不固定的,比如说,你定义了varchar(20),当你插入abc,则在数据库中只占3个字节。 varchar同样区分中英文,这点同char。 nvarchar不区分中英文,比如说:你定义了nvarchar(20),你可以存入20个英文字母/汉字或中英文组合,这个20定义的是字符数而不是字节数。 6,写出一条Sql语句:取出表A中第31到第40记录(SQLServer,以自动增长的ID作为主键,注意:ID可能不是连续的。
解1: select top 10 * from A where id not in (select top 30 id from A)
解2: select top 10 * from A where id > (select max(id) from (select top 30 id from A )as A)