最新评论
Re:IIS7中启用JS的压缩 caicainiao 2011-11-10 10:59
失效时间怎么控制呢?
Re:IIS7优化手记 无尽思绪 2011-10-26 10:44
为什么要 吧 Idel Time-out(minutes) 设置成0?
请问博主的测试是用什么工具做的?一直不明白Dot Net环境下测试工具是什么~
Re:无线互联的三大机会 老杨的地盘 2011-07-05 13:41
写的好,独辟见解 希望多出一些精华美文,实践心得!^_^
Re:正确理解http会话管理 hautmz 2011-02-16 17:40
写的太好了,很容易理解!
Re:无线互联的三大机会 virus 2011-02-09 18:00
好像有点意思
MSN:jorden008@hotmail.com
有空讨教
Re:基于JSON缓存的多国语言的实现 Jimixu 2010-07-13 09:00
8错8错,有点以前MFC的多国语言做法的感觉,收藏了
Re:数据库开发-数据库使用连接池 量子动力-梁远华 2010-05-13 19:22
@雨齐
windwos app就是通常说的windows form应用程序,是桌面应用程序,像WORLD这样的。
WEB APP就是指web form跑在B/S架构下面的通过浏览器来访问和操作的WEB 应用程序
Re:数据库开发-数据库使用连接池 雨齐 2010-05-13 14:40
什么事 windows app和web app ????请指教
Re:如何下载安装和破解VS2010 问天 2010-04-24 01:46
TS不是有MSDN麼?
Re:如何下载安装和破解VS2010 量子动力-梁远华 2010-04-23 12:22
@Astin
其它版本没试过哦,你可以试下,然后告诉我们吧,哈
Re:如何下载安装和破解VS2010 量子动力-梁远华 2010-04-23 12:22
其它版本没试过哦,你可以试下,然后告诉我们吧,哈
Re:如何下载安装和破解VS2010 Astin 2010-04-23 11:21
教学版?其他版本可以吗?
用在线监控系统,365uptime.com这一切都解决了,可同时监控网站和服务器,有问题马上手机短信报警
Re:C# 3.0新特>使用拉姆达表达式 倒影 2010-03-17 17:59
这个复杂很多。
Re:C# 3.0新特>使用拉姆达表达式 倒影 2010-03-17 17:58
下面是一个复杂一点的Lambda Expression的例子:
1fruit.FilterBy((string name, double price) => name == "banana" && price < 2.00);
看了这个例子应该可以自己动手写一些东西了吧(下楼买瓶可乐去也)
Re:软件项目经理应有的能力和素质 景坤 2009-12-23 11:11
谢谢
一般偶这么删LOG:
1. 把数据库 Recovery Model设成Simple
2. 收缩数据库日志文件
日志文件基本就是1M了。
Re:交友社区SEO_社区的用户和客户 intcrm 2009-12-10 11:07
IntCRM客户合同管理系统是为网络公司量身定制的一套crm系统:强大的客户校验及跟踪功能,完美的解决了销售人员撞单问题、优秀的合同预领功能及合同管理功能,解决了众多网络公司合同丢失、合同收款及员工合同管理防签私单问题。数据防拷贝为公司保障了数据的安全性。组织结构及功能权限完全自主设置,灵活性强。多模式的统计功能,让管理者能很好的掌握公司员工、部门、收入、支出的发展趋势。
IntCRM V2.7已发布,请联系试用,测试地址:http://www.intcrm.cn
KeyWords:网络公司合同管理 网络公司客户管理 客户合同管理系统 网络公司客户合同管理系统 Create At:11:06:36
原文网址是:
http://robbin.javaeye.com/blog/524977
作者Robiin范凯是javaeye.com的老大。
@问天
哈,这个资料是以前收集过来,具体是哪个网站都不记的了,补加一个
转载标识
不注明原文链接,甚至连文章是转载而来也不说明,非常不厚道啊!
Re:互联网产品这些事—运营推广 量子动力-梁远华 2009-11-23 21:14
@父辈的旗帜
加我的QQ
flers@126.com
上班一般都在线
Re:互联网产品这些事—运营推广 量子动力-梁远华 2009-11-23 21:13
加我的QQ
flers@126.com
上班一般都在线
Re:互联网产品这些事—运营推广 父辈的旗帜 2009-11-21 13:21
哥们讲的不错,来交个朋友吧
Re:IT项目开发的75条管理守则 冬日阳光 2009-10-30 11:47
讨厌这种中英文混合的语言文章,如果英文真的好,那就写成全英文的. 如果一般 就好好用中文.
BeITMemcached默认会使用BinaryFormater做高级对象的序列化,一般性能足够,但提高的空间还非常大。
我使用facebook开源出来的Thrift(http://incubator.apache.org/thrift/)做序列化后,性能提高一倍以上。
使用Thrift另一方面是为跨平台、跨语言考虑,BinaryFormater序列化出来的对象只有.net可以反序列化使用,而thrift就几乎所有平台所有语言都可以反序列化了。
Re:广州纳斯达克吧俱乐部沙龙-WINDOWS 7 量子动力-梁远华 2009-10-26 11:12
这个地方放松下不错,有兴趣的可以组个团去喝点小酒。。。。
最近也在研究这些东西,创建程序池、创建站点等都没问题,做成了系统服务,就是怎么删除一个键值这种问题还没解决
Re:使用DMV和DMF分析数据库性能 问天 2009-09-15 22:32
顶一个~
Re:IIS7中对静态文件的处理 量子动力-梁远华 2009-09-11 16:01
duration="00:00:10"
意示是说如果请求的时间会大于这个时间那么他会重新获取这个文件.
如果不考虑etag / last-modified的话,它会重新取一次文件放在本地cache.在24小时制的格式00:00:10是23 hours. [82800 sec]
这个是http header返回来的信息,至于是如何计算那是http协议定义,不太清楚.
last-modified这个属性在文件操作并发时会不太准确,但是
etag是一个进行hash过的值.用这二个值来保证一个文件的信息判断是否有更新信息.所以他是同时存在出现的.
Re:IIS7中对静态文件的处理 问天 2009-09-10 20:43
duration="00:00:10"
是如何跟 82800 或者说 23小时连接起来的?
完全不能理解。。。麻烦解释一下?
“这二个cache机制,对同一个静态文件是否还会产生新的一个http request呢?”
这个问题我也看不大懂。。。
Cache-Control有效的话,就不会有新请求被发送。
而,有etag或者是last-modified的话,在Cache-Control指定的max-age过期之后,即便有新请求也不会重复传输相同的文件内容。
Cache-Control的优先级高于etag / last-modified。
我也一直没有搞懂为什么http要定义etag / last-modified两个类似的header……并且还经常同时被使用……
Re:IIS7中对静态文件的处理 量子动力-梁远华 2009-09-10 10:20
HTTP/1.1 Cache-Control Header is present: max-age=82800 max-age: This resource will expire in 23 hours. [82800 sec]
HTTP/1.1 ETAG Header is present: "74f6b4df362dca1:0",""
HTTP Last-Modified Header is present: Fri, 04 Sep 2009 08:08:23 GMT
这个是监控到的HTTP HEADER,
duration="00:00:10" 这个时间不是表示10钟过期,而是表示即将在23小时内过期.
那么这里用的1.1协议,有二个header标示.一个是Cache-Control
一个是ETAG,ETAG是保证Last-Modified的有效性标识.
ETag的值是对文件的索引节(INode),大小(Size)和最后修改时间(MTime)进行Hash后得到的
Last-Modified和ETag是条件请求(Conditional Request)相关的两个字段。如果一个缓存收到了针对一个页面的请求,它发送一个验证请求询问服务器页面是否已经更改,在HTTP头里面带上” ETag”和”If Modify Since”头。服务器根据这些信息判断是否有更新信息,如果没有,就返回HTTP 304(NotModify);如果有更新,返回HTTP 200和更新的页面内容,并且携带新的”ETag”和”LastModified”。
使用这个机制,能够避免重复发送文件给浏览器,不过仍然会产生一个HTTP请求。
那么请问下问天兄,这二个cache机制,对同一个静态文件是否还会产生新的一个http request呢?
Re:IIS7中对静态文件的处理 问天 2009-09-09 23:15
服务器端对静态文件返回:
Cache-Control的header
跟
etag / last-modified的header
是两种完全不同的Cache方式。
前者是告诉浏览器说,你缓存住这个资源若干时间,在这段时间内,如果有别的页面再调用这个资源,你就直接使用你这次保存下来的版本,完全不需要再跟服务器拿,任何http请求的都不需要发送给服务器。
后者是告诉浏览器说,你可以永久的缓存住这个资源以及相应的hash(也就是etag)或者说资源的最后更改时间。但是!以后如果有别的页面也调用了这个资源,你仍旧需要把我上次返回给你的hash或者最后修改时间通过一个新的请求发送过来。服务器端会验证一下hash / 最后修改时间跟服务器上面的现在最新的版本是否还一致,如果一直就返回304,而不返回实际内容,告诉浏览器说你可以使用之前缓存的内容。如果不一致,就返回新版本的内容。
两种方式的区别在于一个有时间限制,一个没有;一个在符合缓存条件的情况下不发送任何新的http请求,一个则每次都需要发送新的http请求去验证缓存是否过期。
从你介绍的内容看,你应该是在推荐使用第一种缓存方式。只有Cache-Control header的话,服务器无论如何是不可能返回304的。
因为浏览器传统上对一个服务器限制最多只会有两个并发请求,Cache-Control header的缓存效果比使用etag会好很多很多。一个无内容的http请求也是有可能产生阻塞。
而你举例的Cache-Control max-age仅有10分钟,这似乎实际效果并不明显。即便是浏览器缓存了资源,它10分种后,或者说用户第二天再次浏览的时候,所有的静态资源又得再重新下载一遍。
对于静态资源,我一般是放一个几年的max-age,只要客户端的缓存空间足够大,网站的所有静态资源都只会被请求一次。
etag / last-modified的header IIS对于静态文件其实默认就会自动添加的,无须任何设置。我倒是在尝试将其使用在动态页面中。动态页面在输出之前,先根据自己的Response buffer中的字符串内容计算一个md5,然后作为etag插入到Response header中。下次客户端访问同一页面的时候,便会把之前收到的etag发送回来。页面在flush response之前先检查一下客户端发送过来的etag与这个生成的Response text md5是否一致,如果一致,就不返回完整的Response内容,而直接丢一个304回去。页面生成的时间不会减少,但是在页面内容不变的情况下(用户刷自己首页看有无更新)传输时间会大幅减少。但是,这也意味着页面中的所有时间都不能使用过去形式去显示。否则,用户每次刷页面,页面的内容都会因为这些时间显示而使得md5结果不同。
Re:IIS7中对静态文件的处理 量子动力-梁远华 2009-09-09 13:39
我想问天兄可能理解错了我的意思.
kernelCachePolicy="CacheForTimePeriod"
CacheForTimePeriod在基于IIS7内核模式的CACHE.
基于一个绝对的过期时间00:00:10
iis会在http header会有
HTTP/1.1 Cache-Control Header is present: max-age=82800
max-age: This resource will expire in 23 hours. [82800 sec]
用fiddler看它的header就是
Cache-Control: max-age=82800
所以当客户端分析到这个HEADER时它会从本地获取数据,而服务器不会响影客户端请求文件内容.
问天兄的争议我想是在这个http status =304的问题上.
的确这里有些问题,304的status是不会产生任何的数据请求.请求的字节可能为0,都是从本地CACHE取出来.
当 max-age>0 的时候,client 会直接使用缓存中的内容,而不发出任何HTTP请求。
Re:IIS7中对静态文件的处理 问天 2009-09-08 21:59
不大对的说…
CacheForTimePeriod,并且还有duration,按照偶的理解,那么添加的是Cache-Control的header……
浏览器如果看到这个header,是直接cache内容,下次访问连http request都不会发送。。。
怎么会有Response是304一说?
304是在之前的Request中有发送etag或者是if-not-modified-since的header,服务器才会返回的…
Re:友情链接申请 量子动力 2009-08-04 13:04
好的,我加入你的
re: 高并发高负载网站的系统架构注意的问题 Wuvist 2009-04-02 16:30
.Net的页面缓存很方便~特别是所谓的donut caching……
re: 数据库使用连接池 严鹏 2008-09-29 14:49
很棒!
用户用using或显示的调用dispose方法,其实都会通知GC来回收该对象Dispose(true); //这里其实也是通知GC说,我调用的是dispose,不需要用析构方法来调用了。这样的话就直接由dispose去回收资源,而析构队列是不会管的,如果用户没有去调用dispose的话,那么当对象的生命周期过期后会直接调用析构,那么dispose就不会去管了