C#.NET面试题汇总系列七:ADO.NET,XML,HTTP,AJAX,WebService
1. ADO.NET中有哪些对象
- Connection连接对象
- Command执行命令和存储过程
- DataReader向前只读的数据流
- DataAdapter适配器,支持增删查询
- DataSet数据级对象,相当与内存里的一张或多张表
2. DataReader与Dataset有什么区别?
一个是只能向前的只读游标,一个是内存中虚拟的数据库
3. ExecuteScalar 和 ExecuteNonQuery 的区别?
ExecuteNonQuery:返回受影响的行数
ExecuteScalar:返回结果集的第一行第一列,忽略其他行
4. 什么是SQL注入,应该如何防止?
利用sql关键字对网站进行攻击,用参数化的SQL就可以避免SQL注入
5. 何时创建连接池?
当第一个连接请求到来时创建连接池;连接池的建立由数据库连接的连接字符创来决定。每一个连接池都与一个不同的连接字符串相关。当一个新的连接请求到来时如果连接字符串和连接池使用的字符串相同,就从连接池取出一个连接;如果不相同,就新建一个连接池
6. 何时关闭连接池?
当连接池中的所有连接都已经关闭时关闭连接池
7. 当连接池中的连接都已经用完,而有新的连接请求到来时会发生什么?
当连接池已经达到它的最大连接数目时,有新的连接请求到来时,新的连接请求将放置到连接队列中。当有连接释放给连接池时,连接池将新释放的连接分配给在队列中排队的连接请求
8. 什么是XML?
XML即可扩展标记语言
9. XML与 HTML 的主要区别?
XML是区分大小写字母的,HTML不区分
在HTML中,如果上下文清楚地显示出段落或者列表键在何处结尾,那么你可以省略,在XML中,拥有单个标记而没有匹配的结束标记的元素必须用一个 / 字符作为结尾
在XML中,属性值必须分装在引号中。在HTML中,引号是可用可不用的
在HTML中,可以拥有不带值的属性名。在XML中,所有的属性都必须带有相应的值
10. 列举一下你所了解的XML技术及其应用
xml用于配置,用于保存静态数据类型.接触XML最多的是web Services..和config
11. 什么是SOAP,有哪些应用?
SOAP,简单对象接受协议,以xml为基本编码结构,建立在已有通信协议上(如http)的一种规范WebService使用的协议
12. 说说RESTful是什么
是一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用XML格式定义或JSON格式定义
13. 什么是WebService?
Web Service便是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得Web Service能与其他兼容的组件进行互操作
14. 谈谈WebApi/WebService/WCF三者的特点
Web Service:
1、它是基于SOAP协议的,数据格式是XML
2、只支持HTTP协议
3、它不是开源的,但可以被任意一个了解XML的人使用
4、它只能部署在IIS上
WCF
1、这个也是基于SOAP的,数据格式是XML
2、这个是Web Service(ASMX)的进化版,可以支持各种各样的协议,像TCP,HTTP,HTTPS,Named Pipes, MSMQ.
3、WCF的主要问题是,它配置起来特别的繁琐
4、它不是开源的,但可以被任意一个了解XML的人使用
5、它可以部署应用程序中或者IIS上或者Windows服务中
Web API:
1、这是一个简单的构建HTTP服务的新框架
2、在.net平台上Web API 是一个开源的、理想的、构建REST-ful 服务的技术
3、不像WCF REST Service.它可以使用HTTP的全部特点(比如URIs、request/response头,缓存,版本控制,多种内容格式)
4、它也支持MVC的特征,像路由、控制器、action、filter、模型绑定、控制反转(IOC)或依赖注入(DI),单元测试。这些可以使程序更简单、更健壮
5、它可以部署在应用程序和IIS上
6、这是一个轻量级的框架,并且对限制带宽的设备,比如智能手机等支持的很好
7、Response可以被Web API的MediaTypeFormatter转换成Json、XML 或者任何你想转换的格式
15. 什么是 XSS 攻击,如何避免?
XSS 攻击:即跨站脚本攻击,它是 Web 程序中常见的漏洞
原理是攻击者往 Web 页面里插入恶意的脚本代码(css 代码、Javascript 代码等),当用户浏览该页面时,嵌入其中的脚本代码会被执行,从而达到恶意攻击用户的目的,如盗取用户 cookie、破坏页面结构、重定向到其他网站等
预防 XSS 的核心是必须对输入的数据做过滤处理
16. 什么是 CSRF 攻击,如何避免?
CSRF:跨站请求伪造,可以理解为攻击者盗用了你的身份,以你的名义发送恶意请求,比如:以你名义发送邮件、发消息、购买商品,虚拟货币转账等。
防御手段:验证请求来源地址; 关键操作添加验证码; 在请求地址添加 token 并验证