ASP.NET网站制作之了解把握ASP.NET与客户端缓存之HTTP协定...
也不知道,我同学昨天说数据挖掘很好。asp.net|缓存|客户端 媒介这个系列的文章要会商的是怎样经由过程ASP.net服务器端手艺来优化客户端缓存战略,并且让这类战略变得可设置和可扩大。我们要懂得的常识从HTTP协定中相干属性对客户端缓存的影响,到ASP.NET怎样把持这些属性来完成我们的缓存战略。
HTTP基本常识
因为会商触及到客户端缓存,以是仍是先要复杂先容一下HTTP协定是怎样把持客户端缓存的,这里触及到HTTP头的Last-Modified、ETag等属性。
Last-Modified
在扫瞄器第一次哀求某一个URL时,服务器真个前往形态会是200,内容是你哀求的资本,同时有一个Last-Modified的属性标志此文件在服务期端最初被修正的工夫,格局相似如许:
Last-Modified:Fri,12May200618:53:33GMT
客户端第二次哀求此URL时,会在头部到场一个属性,扣问该工夫以后文件是不是有被修正过:
If-Modified-Since:Fri,12May200618:53:33GMT
假如服务器真个文件没有被修正过,则前往形态是304,内容为空,如许就节俭了传输数据量。假如服务器真个文件被修正过,则前往和第一次哀求时相似。
ETag
和Last-Modified相似,因为RFC2616(也就是HTTP/1.1)中没有申明ETag该是甚么格局的,只需确保用双引号括起来就好了,以是你能够用文件的hash,乃至是间接用Last-Modified,以下是服务器端前往的格局:
ETag:"50b1c1d4f775c61:df3"
客户真个查询更新格局是如许的:
If-None-Match:W/"50b1c1d4f775c61:df3"
假如ETag没改动,则前往形态304然后不前往,这也和Last-Modified一样。
Expires
这个属性就如我们在ASP中利用HttpResponse.ExpiresAbsolute一样间接,声明某某时候过时以后扫瞄器就应当从头哀求该URL,利用格局为:
Expires:Sun,10Feb200216:00:00GMT
注重HttpResponse.ExpiresAbsolute在ASP.NET中是不倡议利用的,如今我们应当利用的是HttpResponse.Cache.SetExpires。
Pragma
一般我们用到的值就是no-cache,这和在Cache-Control中利用no-cache值是一样的,Cache-Control鄙人面讲。Pragma的利用格局以下:
Pragma:no-cache
Cache-Control
这是一个汇合型属性,它内里可以包括良多子属性,而且同意用户扩大新的子属性。罕见的子属性包含:
max-age-以秒为单元的超时,掩盖Expires属性。
public-同意保留在共享缓存中。
private-只同意保留在公有缓存中。
no-cache-不同意缓存。
no-store-不同意缓存在耐久介质中。
no-transform-不同意转换存储体系。
有理由相信是能提供更出色的性能。很多平台无法支持复杂的编译器,因此需要二次编译来减少本地编译器的复杂度。当然可能做不到java编译器那么简易。 如今主流的Web服务器软件主要由IIS或Apache组成。IIS支持ASP且只能运行在Windows平台下,Apache支持PHP,CGI,JSP且可运行于多种平台,虽然Apache是世界使用排名第一的Web服务器平台。 Asp.net脚本的出现,为ASP空间带来了更高的稳定性,同时也为程序员建站提供更高环境! 目前在微软的.net战略中新推出的ASP.net借鉴了Java技术的优点,使用CSharp(C#)语言作为ASP.net的推荐语言,同时改进了以前ASP的安全性差等缺点。但是,使用ASP/ASP.net仍有一定的局限性,因为从某种角度来说它们只能在微软的WindowsNT/2000/XP+IIS的服务器平台上良好运行(虽然像ChilliSoft提供了在UNIX/Linux上运行ASP的解决方案. Servlet的形式和前面讲的CGI差不多,它是HTML代码和后台程序分开的。它们的启动原理也差不多,都是服务器接到客户端的请求后,进行应答。不同的是,CGI对每个客户请求都打开一个进程(Process)。 在asp.net虚拟主机的服务提供商中,目前首推的是CNNIC的其中一家域名注册机构---时代互联(www.now.net.cn),他们早在2001年微软刚推出Asp.net时就推出了对应的Asp.net虚拟主机了,经笔者的使用测试,他提供的Asp.net性能非常的稳定,版本也会定期的更新,目前他的 Asp.net:首先来说,Asp.net和Asp没什么关系,看着像是升级版本什么的,其实没什么联系。Asp是脚本编程,用的是ASP语言,而ASP.net用的是C#语言,完全不同的东西。 以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。 有一丝可惜的是,这个系列太强了,Java阵营的朋友根本就是哑口无言...争论之火瞬间被浇灭,这不是我想这么早就看到的,但是值了。 碰到复杂点的问题都不知道能不能解决,现在有点实力的公司都选择自已在开源的基础上做开发。但没听说过有人在IIS上做改进的,windows、sqlserver集群方面的应用也很少见。 网页从开始简单的hmtl到复杂的服务语言,走过了10多个年头,各种技术层出不穷,单个的主流技术也在不断翻新的版本,现在分析下各种语言的区别、优势、劣势、开发注意事项!
页:
[1]