php使用header来控制cookie
09-28
前言:本文经过我对大多数网站的http头分析、自己做网站中的一些缓存设置、服务器的一些配置优化,后又阅读了RFC2616HTTP协议相关内容,以做此文。
1、为什么要cache?
这是个经常提到但很多时候又无法突然准确回答的问题。粗略讲,就是要加速和减压。
加速:试想中国的网络,网通电信(就不提铁通之类)开创了互联互通新障碍,我们的用户在不多交钱的时候就得忍受奇慢的跨网速度。而作为互联网运营者,我们希望用户获得最好的用户体验,因此我们就要打破这个障碍。
很多互联网服务商已经用分布cache解决了这个问题,比如sina,把中心服务器的内容分发到各个省市的cache服务器,根据用户所在的网络(ip段)来确定用户拉去最近服务器上的内容,达到访问速度最快。
对于小型网站,页面静态化也是常用的cache方法,因为web服务器处理静态页面速度优于程序脚本,所以也起到了加速的作用,当然,也为了下一个原因-服务器减压。
减压:显而易见,动态脚本的输出速度比一个静态的页面要慢的多(解释、执行、数据库数据读取)。因此,如果我们让用户只是读取一个静态文件,那硬件成本就会很低。大量用户访问静态文件而很少访问动态脚本,如何以节约昂贵的硬件资源。
可以看出,cache还是有二利而无一害的。
最近调试squid,发现一个很奇异的问题,程序服务器都配置好后,使用ie狂刷,每次都是HIT,而是用firefoxF5狂刷,结果很多都是MISS,google后发现firefox独有的特性:
如果一个页面访问后,在地址栏再次敲入打开,则走cache,而如果点F5,则firefox发送http请求的时候会自动在头上增加 Cache-Control max-age=0 因此缓存失效。不过正常访问下,还是没有问题的。
原文:
I usually post about problems that I’ve solved. But every once in a while, for all my digging around and googling, I come up on something that I can’t solve quickly and thuroughly enough – so I post about it here in the hope someone can help.
To make a long story short – I’ve found out that FireFox 1.5 appends a “Cache-Control: max-age=0″ HTTP header to requests for ASPX files. This header tells the web server and any proxy servers on the way not to respond with cached version of the requested page and to go and run the actual ASPX instead.
For me, this is a big problem. It renders the NetApp NetCache reverse proxy that I’m using quite useless and impacts badly on response times for that particular page.
Does anybody know why FireFox adds this header to the request? How can this be circumvented either on the browser’s side or on the proxy server’s side?
It took us a bit to work it out.
If you hit refresh, firefox will ask for the latest copy (max-age=0).
If you type the url into the address bar and hit enter, then type it in again, it’ll cache.
Check it works in about:cache.
See also:
http://developer.mozilla.org/en/docs/Using_Firefox_1.5_caching
最近一直在研究代理缓存之类的东东,几个软件一直在瞎鼓捣,没弄出个结果,自己也稀里糊涂,总结一下几天折腾的成绩:
在并发上,nginx无疑是老大,做反向代理的时候,没有发现squid的并发方面介绍,所以暂且认为ngnix是老大,apache的稳定性有目共睹,但在并发方面的确不是很如意。
缓存方面:squid,apache都支持diskcache和memcache,根据http的head头来确定是否缓存,nginx不支持缓存,不过我在google开源上看见了新浪的水杨老大的一个东东,给nginx加上了文件缓存,不过没有大规模使用,暂时不把它当做一种解决方案。
在代理和缓存的规则上,apache很强,很强大的重写功能,尤其是强制修改http规则,不过这个功能我始终没有调试成功,no-cache的页面始终无法去缓存。
如果只是做网站的反向代理,负载均衡,nginx感觉要比squid强,性能强悍,配置方便。
如果是做代理+缓存加速,那squid的功能和稳定性还是很好的,毕竟在互联网上大量应用。
apache呢?好像没它的事情了。当然不是,有些地方可以拿他的功能当中间件使用,这个等下次分解。
原始图片 http://www.flickr.com/photos/40265853@N07/sets/72157622058873973/
因同行的同事周六加班,我的骑行就放到周末了,上周刚买的车,今天算第二次骑行,选择了一个不太长的地方:妙峰山。
早晨八点半我们在公司门口集合,出发点就是小营桥。走到温泉镇,同事由于昨日踢球膝关节疼痛,放弃了骑行,转向颐和园方向,
我只能孤身勇闯妙峰山。同事由于不熟悉北京的路,我把我的地图给他,结果,我在六环处没有拐弯,结果走了几公里的冤枉路,幸
亏提前打听,才走上正轨。这时才想起孔圣人的一句名言:鼻子下边就是路。
上了109国道,感觉身体能量逐渐消耗,但体力还行,但总是在20+的速度,据说很多QS都是30+甚至40+,本人努力了几次,不靠谱,
还是20+的好。路上碰上不少司机,打开窗口送我个指头-大拇指,很是感动。都是司机啊,眼泪哗哗的。
到了牌楼,我以为到顶了,给何总打了个电话,何总说,还有20公里,一直骑就行。我一看,果然有个路牌说20公里到妙峰山。继续
爬吧,20公里不是小菜么
刚开始爬,还能勉强保持20km,想想,20km,一小时不就上去了,可爬到一半,实在就不行了,勉强保持10km往上蹭。等看到8km牌
子的时候,体力就很差了,看着前后人少的时候,偷着推车前进,居然被一大姐给逮了,训斥我赶紧骑车。上车继续,结果还是被大
姐给P没影了。
爬行中发现一休息的老哥,小肚子比我大,也没我爬得快,但毅力好,始终能赶上我,快到峰顶3km的时候,我实在不行了,休息中
,老哥超过了我,我只好声明:我不行了,我得下去了。
休息几分钟,想想还差一点就到顶了,为啥不上去。继续走,连推带骑终于到了峰顶,休息,留影,走人。
中间碰见一个骑trek的大哥,正在寻找一个啥啥山头,说可以到防火道,我自然不知。临走人家问我:你咋还带个车锁?谁让我的车
子是贼必偷得捷安特呢。
一天骑行是120公里,骑行时间就不好意思说了,下午5点才到家。这成绩虽然比不上各位QS,但这是我骑行历史上的第80~200公里,自我感觉良好。
感谢同事陪我走过最无聊的路段
感谢司机同志给我的拇指
感谢摩托车队给我的拇指
感谢三蹦子(跨子摩托)给我的拇指
感谢车友给我的鼓励
感谢老哥陪我休息
感谢trek大哥对我的表扬
感谢一切车友
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
周末买了一辆运动型的山地,入门级的,不算贵,配上一身的装备,花了不到3000块钱。邻居看见费解:为啥不买个好的电动车?好多同事也纳闷为什么自行车也有几千上万的价格?
解释一下:首先说北漂在北京的生活都是很苦的,有乐也是苦中作乐。北京的基础环境很差,比如空气、水质、环境、饮食习惯、生活节奏,这些因素会让北漂们的身体素质有天然的劣势。因此,不断运动强身健体是北漂的必修课。当然,自行车运动只是各种运动的一种,其他运动皆可。
自行车正逐渐成为一种全民运动。当年乒乓球在打出世界后,国内掀起乒乓热,因为乒乓运动占地少,设备简单,记得小时候村里架上两块水泥板,中间放上一排砖头,就是个简单的乒乓球运动场地。而自行车在中国的普及率是很高的,很顺其自然得就能成为大众认可的运动。自行车运动只是需要一条能通车的公路,或者能过车的山路即可,成本异常低。
自行车运动花式也比较多,公路、山地、越野、BMX、攀爬、速降……要是没谱,弄个破车傻骑也能出效果。
女生骑车,建议买个合身的运动车,因为传统的代步车能把你的大腿骑粗,运动车有氧运动能让你的大腿变细。