以下是我今天恶补的基础知识点。
1.URL重写
定义:就是通过url地址字符串拼接的方式,将网站真实的URL隐藏起来,同时又达到了页面跳转的目的。
优点:
a. 便于SEO:目前很多浏览器不支持动态页面的抓取,尤其是带有“?”的页面;总之搜索引擎对于静态页面的抓取比动态页面要好,如果我们将http://www.xxx.com?year=2014改写成http://www.xxx.com/2014那么将更加便页面被搜索引擎的抓取。
b. 防止盗链:由于url重写隐藏了真实的地址,可以防止他人盗用网站链接,增加了网站的安全行。
c. 隐藏了网站的实现技术,增加了网站的安全性:明明是用php写的网站,我可以在URL重写的时候写成“.jsp”。
d. 提高可以移植性::由于真实的url含有类似于.asxp,.php等真实的后缀,一旦修改了这些后缀名,就会损失点PageRank;但是URL重写则是由于隐藏了很多的细节,修改连接就不会损失PageRank。
e. URL简单易记,增加美感。
f. 支持URL“可删节”的要求:“可删节”是一个很重要的用户需求,如:http://www.xxx.com/article/2004/07 则会显示这个网站2004年7月份所有的文章;如果将地址改成:http://www.xxx.com/article/2004,则会显示这个网站2004年所有的文章。
URL重写方法:(进入http://msdn.mocrosoft.com 搜索 HttpContext.RewritePath方法)
2. 关于ASP.net处理机制
a. 关于IIS处理页面的运行机制:
IIS本身不能处理想aspx这样拓展名的页面,但是它有一个ISAP过滤器(COM组件)。ASP.NET服务在注册到IIS的时候,会直接添加一个asp.net_isapi.dll,并拓展可以处理的页面名(如aspx,asp,jsp)。拓展启动后,根据定义好的规则来处理页面。
具体资料:1.http://blog.itpub.net/12639172/viewspace-609510/
2. http://blog.csdn.net/joyhen/article/details/18660997
注意:在DTcms中,HttpModule.cs(HttpModule.引擎)文件是整个cms的核心;每次发起URL请求都会通过它来进行重写分配;Web.config文件中的<httpModule></httpModule>节点文件中的节点配置信息会确保每次发生URL请求的时候都要经过HttpModule.cs文件来处理。
3. HTTP协议:
a. 定义:超文本传输协议,是用于从WWW服务器传输超文本到本地浏览器的传送协议。
b. HTTP遵循请求/应答模式,Web浏览器想Web服务器发送请求,Web服务器返回适当的应答。
c. 格式: 统一资源标示符+协议版本号+标题信息(包括请求修饰符、客服信息和可能的信息)
d. 请求格式: http://localhost:865/index.aspx/pic/left.html
http://+ip+端口号+其他可能的信息
e. 返回:是一个状态行,包括:协议的版本号、状态码、标题信息(服务器信息、实体信息、可能的内容)(可以用HttpWatch来查看)
d. 标记:正在传输的内容以content-type来标记,可以是任何类型;
e. 方式:get和Post;区别:get:请求时,参数在URL中可见,不安全,数据传输量小(<2kb);传输的效率高;传输的字符必须为ASCII;Form默认的提交方式;post:请求时,参数在URL中不可见,相对安全,数据传输量大;传输效率底;需要设置Method.
f:状态吗:100段:已经接受到请求,还要继续处理;200:成功;300:重定向,需要进步一处理;400:客服端请求错误;500:服务器端请求错误。
HTTP的几个概念:
1.连接(Connection):浏览器和服务器之间传输数据的通道。一般请求完毕就关闭,不会一直保持连接状态。
2.请求(Request):浏览器向服务器发送“我要***”的消息,包含请求的类型、请求的数据、浏览器的信息(语言、版本等)。
3.响应(Response):服务器对浏览器请求的返回数据,包含是否成功、错误码等。
浏览器向服务器发送请求后,服务器并不是把浏览器请求的页面的所有内容当做一个请求发给浏览器,而是把CSS文件、JS文件、image文件都分别当做一个请求(单独的请求);最新版本的HTTP1.1是一个连接就可以完成所有的请求,即1个连接完成3个请求。
HTTP协议拓展:
网页中如果有图片、css、js等外部文件的话,图片、css、js都在单独的请求中,也就是并不是页面中所有的内容都在一个请求中完成,而是一个资源一个请求。
Http是无状态的,不会记得上次请求的任何信息;所以,哪怕是同一网页中的JS、css、jpg也都要重复的提交Accept—Language、Accept-Encoding、Cookie等。
一般情况下,只有浏览器请求服务器端,服务器端才有浏览器响应数据,不会主动向浏览器推送数据,这既是处于安全的考虑、也是提高服务器性能的考虑。如果要服务器向浏览器推送数据,则需要使用ServerPush技术。
HTTP是“请求—响应”的工作方式,因此页面会不断的刷新,如果不希望页面刷新,则要使用AJAX技术。
4. 关于oop和opp两种编程思想:
oop:面向对象编程思想,大量做了封装,一般封装的方法都在类里面;代码重用以类别的继承为主。
opp:面向过程编程思想,不做封装,但是对于常用的操作抵用方法,数据用Struct,方法数据分离;代码重用以方法的调用为主。