来自于Gmail与FriendFeed之父的5个创业提示

作者简介:Andrew Warner 是一个互联网企业家, Mixergy的创始人。他通过采访一些成功人士来学习他们的成功之道。
我向 Paul Buchheit询问一些创业的建议,因为他是最近十年两个最成功的互联网产品之父(GmailFriendFeed),在他为Gmail工作时,他也开发了第一个Adsense的原型,Google的广告项目。他另一个广为人知的原因是向Google建议了如今Google的箴言: “Don’t be evil”。
接下来这些是他的建议 (也可以看下面的视频):
1. 推出一个 微型(scaled-back) 版本
你可以发现使用一个简单的、规模较小的方式来推出任何东东。“Tesla [ 一个刚起步的财政捉襟见肘的电动汽车生产商] 耗费了很多资金来制造这些电动汽车,但是人们把电动汽车放在他们的车库里, 所以永远要考虑到去做一个微型版的可能。
2. 关注行动迟缓的竞争者
当他准备构建Gmail时, 他关注到了Yahoo! Mail, 在当时领先的电子邮件产品服务商,并注意到”他们正在积极的让自己的产品更糟糕,我认为这表明是一个很好的机会,Yahoo!把Email的存储空间从6M减少到了4M”。(译注:gmail于2004.4.1愚人节推出,存储空间为1G!并且这个数字每天都在增长)
在那时,免费的电子邮件服务商 “试图让用户升级成付费账户,并且总的来说,人们对Email的期望甚低,因为他们觉得Email不可能变得更好了”。


3. 如果你的产品很好,你并不需要病毒式营销(virality)
“我认为最好的病毒式营销,”他说, “是这个产品让用户如此喜爱以至于他们想告诉其他人这个产品。”
“想想Google自己吧,病毒式营销?没有!但是人们很喜欢这个产品,所以他们告诉自己的朋友,并且以这种方式成长到今天,占据了巨大的市场份额。”


4. 服从你的激情
不要设立目标,他说,“我有一个不同的做法,我寻找那些自己喜欢做的事情并且试图弄清楚怎样花费时间在这些我喜欢的事情上面。”
“我喜欢写代码,我喜欢构建产品,我喜欢做受人欢迎的东西。”

5. 有时你不得不离开,靠自己去做
“身处一家大公司比如Google,” 他说, “你可以做任何事情,而且将会有100万人来使用,仅仅是因为加上了Google的名字。这听起来好像是欺骗,你所做的东东并不需要很好。”
“所以,当然, Google 开始变得小心,你不能只发布一些不确定的东西(译注:意指20%时间创造的产品)。这意味着Google开始趋向于设立更多的流程来防止你做这些不确定的东西,因为这将会对Google的品牌带来负面影响。”

FROM:http://www.yeeyan.com/articles/view/litianlei/30650

谷歌图像搜索新增内容限定功能


不同的用户总是有着不同的需求,这一点在图像搜索上体现得尤为明显:正在学素描的用户可能只想看到素描类型的图片结果,追星一族可能只关注于明星的娱乐八卦照片,而大部分用户可能只是想随便看看,消磨时光。近日,谷歌图片搜索推出了内容限定功能,这使得不同用户可以更快更准地检索他们真正想要的图片结果。
以脸部特写选项为例,下面是没有选定脸部特写时,搜索引擎返回的结果:


作为对比,下面是选定脸部特写后,搜索引擎返回的结果:


除了脸部特写之外,很多其它的选项也非常有用,比如素描画选项可以限定只返回素描类型的图片结果:


对于同样的查询词“apple”,下面是选定剪贴画选项后的图片结果:


除此之外,资讯内容可以帮助你很方便地查看来自资讯网站的图像结果,而照片内容可以限定返回的结果图像都包含照片元素,感觉真是不错。还等什么,你也赶快来试试吧!
FROM:http://googlechinablog.com/2009/02/blog-post_2632.html

全球50大变态网站 无奇不有

当我们在想做什么站、怎么去秦的同时,可以来这里参考一下现在已经有的站,以及这些另类的思路,肯定是值得我们大家一起来学习的。

50、经典桌面

这个名叫东子的偏执狂不知花了多少工夫,mydeskcity.com的内容量达到了40G,很多图片都是站长本人在国外搜集后,自己进行加工的作品。
http://www.mydeskcity.com/
49、画猪头
在指定的对话框里面随便画一个猪头,然后点击“提交”,之后会得到一份关于你的个性的报告。当然大部分都是臭骂你的话,但是在你之前已经有965,541个人乐滋滋地找骂了……
http://drawapig.desktopcreatures.com/
48、射精计算器
科学是严谨的,因此有人搞出了这么一个在线计算器:把你每周的次数和每次的大致距离填写进去,会得到你已经射了多少米、死了多少精虫的统计数据。
http://strongbad.surrealistic.net/ejaculator.php
47、通缉犯
这里是全英国最危险的通缉犯发布榜,到目前为止还没见到一个女性(怎么搞的女同志们?撑起半边天来嘛!)你可以参照这里的照片躲开危险,也可以亲自去捉住在逃犯领取1万英镑的奖金。
http://www.mostwanted-uk.org/
46、粗口集合
为了表达对粗口和暴力精神的崇敬,对因殴打老婆而锒铛入狱的著名艺人RossKemp的欣赏和遗憾,他的Fans整了这么一个只有他的头像和他“名言”的网站,相当搞笑,堪称英文粗口经典集合。
http://www.rosskemp.co.uk/
45、最简洁网站
有谁能想到这么一个全部内容都被数字包含的网站,能挤进这个伟大的网站专题?但它的简洁把我们征服了,另外,它还有难能可贵的幽默感和恐怖的科学精神……
http://3.141592653589793238462643383279502884197169399375105820974944592.com/
44、超级装备
通过巨大的照片,了解当今最牛的跑车。
http://www.topgear.com/
43、烂番茄
最近各种电影网站如同雨后春笋一般纷纷冒出头来,但是这个始终是最好的一个:这里评选出的是最烂的片子,并用“一般烂、很烂、超级烂”这样的级别给它们分类。参评作品中甚至还包括了一些电视游戏。
http://www.rottentomatoes.com/
42、魔术吧
街头魔术联盟(StreetMagicUnion),简称“SMU”。这里由一群魔术爱好者自发组织的团体。为所有热爱魔术的人们提供了窥探和偷技的阵地。
http://www.magic8.cn/
41、省钱网
天才的理财网,名气和好评迅速彪升,电视台专门为了它开了一档节目。在这里主持人MartinLewis手把手教给你从租DVD到缴水费省钱的各种方法。
http://www.moneysavingexpert.com/
40、电影随便看
只要在这里下载一个免费软件,请你精于电脑的同事帮忙装好,全世界的电影就都成为你的囊中之物。无论它们是老片子还是现在正在播放的片子,记住手要快,因为很快会有人过来叫你把它们删掉。
http://www.bittorrent.com/
39、免费电话
走到全世界的任何地方,都可以拨打免费的电话。对!一分钟也不用花,只要你装了Skype的这个软件,同时你也叫你的通话伙伴装上它。把耳麦和电脑接好,开始国际长途电话粥吧!
http://www.skype.com/
38、故事会
变态而又真实的各种故事--如果不是版面限制,我们将很乐于把它们都登出来。比如“用头盔抵挡海鸥的进攻”、“护士偷看成人录像被开除”,只要是见到”Quirkies”的字样点进去就好。

Latest Webhosting News


37、坏女孩
海湾战争中,美国女兵Lynndie用手比划成枪的样子,指着伊拉克战犯的“那话儿”,这张照片成为人们永远不能忘记的一幕。这个网站也许是为了“纪念”她,搞了这个“模仿Lynndie”的活动,全世界的人都在作出那个姿势。
http://www.badgas.co.uk/
36、爆笑电视
如果你已经厌倦了现在的电视节目,不妨到这里下载每周一次Ricky的这档爆笑节目。每周一通过Rodcast开始播出一直持续周五。
http://www.guardian.co.uk/rickygervais/
35、网上电影院线
口气很大的在线看电影网站。多偏门的艺术电影、地下导演视频采访,都能一一找到。众多视频美女积极参与,只为赢得知名导演电影中的一个角色。其实很多哥儿们去那不图别的,打着艺术青年的口号,热爱艺术电影,也热爱美女视频。
http://www.filmof.com/
34、管子音乐
一个毫无意义但用来打发时间却很不错的网站。重新安置那些管子,然后开动机器,欣赏自己创作出来的音乐--确实让人着迷。
http://www.lecielestbleu.com/media/pateasonframe.htm
33、肮脏美学
一个相当不错的KB网站,比起它来,大多数号称“天下第一KB网站”的网站都显得志大才疏。
http://www.sickarts.com/
32、内衣女人
Soho们的福音:这个内衣网站有着非常优秀的摄影、非常迷人的模特和非常性感的内衣,更重要的是你再也不用面红耳赤地去帮老婆买内衣了。
http://www.agentprovocateur.com/
31、解谜之王
我们在不知不觉中花了好多个小时来解决这个巨大的解谜游戏,它里面充满了各式各样令人绞尽脑汁的迷题和谜语,还内置了很多经典的小游戏。
http://www.ridiculopathy.com/crappy_flash_games.php?gamename=carnyville
30、PrankMail
“想发匿名骚扰邮件吗?想让你的同事以为自己中了100万吗?”这真是一个邪恶的网站,可以提供各式各样的骚扰服务,好在,大多都是善意的。
http://www.sharpmail.co.uk/
29、交友
你是一个孤独的人?到这个只接受可信朋友注册的网站来看看(而不是随意上QQ上搜一个名为“小甜甜”的90多岁老奶奶)。顺便说一句,帕米拉·安德森也是这里的会员。
http://www.friendster.com/
28、淘宝?NO!踏宝!
如你所知,《男人装》编辑大多是马大哈,编辑老陈更是糊涂蛋中的上品,某日,他准备登录淘宝网,没成想少打了个O,结果就出来了这么个玩意儿。内容如何暂且不谈,光是这个首页的创意就挺值得赞赏。
http://www.tabao.com/
27、伤疤大赛
男人就喜欢显摆自己的伤疤,因此应该找个地方让他们比比看。在这里,有这种嗜好的人可以找到全世界的对手,不过别忘了,你“六岁时从火车上掉下来”留下的伤疤和这里的前十名相比看起来可能只是一个小针眼而已。
http://www.scarmageddon.com/
26、金色视频
就如同在你的电脑上开通了六万个电视频道一样,你只要点点鼠标就可以观看到各种电视节目,从体育到戏剧。这里有100万小时的剪辑供你免费观看。
http://www.blinkx.tv/
25、疯狂的手指
一个极为简单但是极令人着迷的游戏,就是要看你能在多短时间内打完26个字母,然后把你的成绩转给同事们看,然后看着他们拼命敲键盘。我们的记录?6.4秒。但据说最高记录是在1.001秒内敲完了26个字母,是不是地球人啊,他!
http://frenzy.morpheme.co.uk/frenzy/
24、眼睛的幻觉
德国某大学的科学家们贡献了这个神奇的眼睛魔术网站,在这里你可以体验“空间频率扭曲”,实际上那只是“你的眼睛背叛了你的心”而已。
http://www.michaelbach.de/ot/index.html
23、全球富人榜
把你的收入水平打进去,看看你在地球的财富排行中数老几。你很有可能会惊奇地发现,确实你是属于高收入人群,同阿布在一起!
http://www.globalrichlist.com/
22、IT造谣
他们自称是:中国最牛B的IT造谣网站,扯牛B企业的蛋,满足网友变态的需求……不过,在他们自己做的调查中,有30%的网友认为该网站是个垃圾,应该关掉。
http://www.ztmnb.com/
21、掘宝
据我们所知,掘宝网是世界上第一个严肃认真地购买线索资料进行宝藏发掘的网站。他们悬赏10万英镑寻找一个不知道被埋在什么地方的方盒子……当然,这一切都是个游戏。
http://www.perplexcity.com/
20、讲话泡泡
著名的广告人Lee为各种广告编写了15000条广告语,并把它们画在各种对话气球中。最近他把它们放在网上,有些极为搞笑。
http://www.thebubbleproject.com/
19、可笑的脸
用吃奶的力气做个鬼脸,然后拍成照片传到网上。结果?结果你得到一个印着你的头像的杯子,而你的脸比杯子把儿弯曲得还厉害。
http://www.shakeskin.com/
18、女尸解剖游戏
脱就一脱到底!可是,想想看,除去外套和蕾丝内衣之后,你还能继续脱掉这个女孩身上的什么吗?如果之前被告之是她的头发、面皮、骨头、子宫、肠子……还敢将游戏进行到底吗?说实话,变态和恶心的程度算不上高,但要把她身上的零件都拿光,还真够麻烦的。
http://www.mmsjoy.com/flash/1180_1.htm?800
17、跑光啦!
这个网站的引人之处就在于那些酒后出丑的姑娘们的照片。
http://www.partyflashers.com/
16、MP3问答
把你最喜欢的乐队名字写进去,然后玩一个10回合的小游戏,把正在播放的歌名正确猜对。
http://www.scenta.co.uk/games/whats_that_song.cfm
15、射门
一个与众不同的足球游戏:挑选你愿意参加的联赛和队伍,你在游戏中每进一球,都将给自己的联盟加上一分。
http://www.playforyourclub.com/
14、跳舞的傻瓜
我们猜测,叫每个打开此网页的人都哈哈大笑是站长的目的。上传或者选择一个头像,然后选择一个身体,再然后就让这个小兄弟在你的屏幕上不停地跳舞吧!
http://www.muglets.com/
13、养盒子
这个游戏有一点点抽象,但是却很好玩:按照符合逻辑的顺序,用不同的道具来建设这个盒子,顺序正确它就会逐步长成为……不知道什么东西,我们的逻辑思维还没那么好。
http://www.eyemaze.com/grow/cube/
12、淘宝贝
在一些男性会为之发疯的好玩具、小物件儿出现在商店里之前,它们极有可能会出现在这里。这里的东西有“第一人称射击单车控制器”还有能够把你的PC、PS2和XBOX连到一起的连接装置……欢迎来到天堂!
http://www.engadget.com/
11、扑克先生
《男人装》编辑部最热爱的体育项目之一就是扑克牌,因此我们正好知道一个不错的扑克网站。你每天都可以坐在自己的办公桌后面于7万名其他的扑克爱好者们在线拼杀……
http://www.partypoker.com/
10、偷拍地球
从一个悬挂在太空、注视着地球的卫星的角度开始,一点点放大,一直看到大北窑的堵车状况……有点变态,不过很好玩。有个问题:如果我们都能看到这么多,那么军队的电脑上都能看到什么呢?
http://www.flashearth.com/
9、电台天堂
建立你自己的私人电台名称(例如“老陈FM”),输入你喜欢的波段地址,然后就等着从电脑里飘来美妙MP3吧!就像你从Amazon里面购买来的一样!
http://www.pandora.com/
8、个人空间
有个美国佬最近把50多亿美金都仍在一个网站上,由此我们可以预见到互联网的未来。赶紧找个空间创建你自己的天地,把你的照片、音乐传上去,再搞点小买卖。这里已经有4000万用户,数目相当于丹麦、瑞典、澳大利亚和瑞士的人口总和。
http://www.myspace.com/
7、飞虎队
网站首页上写着:这里的主要内容是介绍香港pol.ice的特种部队--“特别任务连”。特务连?不,是飞虎队。虽然站长声称这不是官方网站,但里面大量装备足以让我们飙出鼻血。
http://www.sdupro.com/index2.html
6、照片分享
现在连照片的上传和分享都有软件可以帮你打理完成了:下载这个免费的软件,然后往里面填好你的链接地址,就可以和朋友们分享了。如果你乐意,你甚至可以把它们变成海报、画册、甚至是邮票,当然也可以自由浏览他人的作品。
http://www.flickr.com/
5、安全隐私
任何人都可以登录这个网站,邮寄一张电子贺卡,吐露心底的秘密或者偷窥别人的秘密。浏览者可以挖掘出人们最悲惨、最滑稽、最古怪、最疯狂的一面。更重要的是这里的秘密最安全。
http://postsecret.blogspot.com/
4、秘密的Google
我们没疯:你一直点击“更多”,直到它最终带领你进入一个全新的Google世界。你知道通过Google你可以用一颗卫星看到自己家的房子吗?用Google得到免费的地图、电影放映时间?把“鱼”这个词翻译成意大利语?你不知道,那就来试试吧!
http://www.google.com/
3、网络精选
住在伦敦的网络老油条理查德创建了这个网站,上面包含网络上最好的视频剪辑、游戏、姑娘和图片。“我本来的动机是要把邮箱里面每天收到的各种好玩儿的东西集中起来放到网上和朋友们分享。”他说。你在这里泡上整整一个下午,也不一定能真正看完这儿全部宝贝的九牛一毛。
http://www.kontraband.com/
2、60X1
被网名传为世界最牛×的网站,它的域名由60个1组成。在首页有一个小小的“ENTER”健,点进去是一幅又一幅漫画,创意一流,无懈可击。我们猜测,这也许是个伊拉克人的作品吧……
http://www.111111111111111111111111111111111111111111111111111111111111.com
1、冠军
我们粗略计算了一下在《男人装》编辑部里面玩那种网上下载的小游戏的时间,结果可以用年来计算。这里的东西就是专门给我们这样喜欢浪费时间的人准备 的,无论是第一人称射击游戏还是赛车游戏,基本上全都是免费的。例如“武装直升机3”和“愤怒机甲”,它们就是两个画面十分漂亮的爽游戏,快和你的职业前 途说“再见”吧!
http://www.miniclip.com/
来源:《男人装》

唐骏《我的成功可以复制》

我的成功可以复制作  者: 唐骏,胡腾 著
出 版 社: 中信出版社
* 出版时间: 2008-12-1
* 字  数: 200000
* 版  次: 1
* 页  数: 206
* 印刷时间: 2008/12/01
* 开  本: 16开
* 印  次: 1
* 纸  张: 胶版纸
* I S B N : 9787508613369
* 包  装: 平装
他从轻狂少年到与比尔·盖茨共舞,他实现了国际管理经验与本土管理实践的完善结合,他的人生的经历或许无法重复,但成功的方法却可以复制。
中国第一职业经理人唐骏,为您倾情讲述人生、职场奋斗史。
从常州老家的堂屋,到北京邮电大学的校门,我走过了懵懂而执着的童年和少年;从北京到日本,从日本到美国,我经历了不断尝试、自我拼搏的青年时代;在微软的十年,我从最基层的程序员走到微软中国区总裁的位子;在即将离开微软的那些日子,我又独自经历了抉择前难熬的分分秒秒;在盛大的四年,我完成了从跨国企业高管到民营企业职业经理人的身份转换;而进入新华都则成为我职业生涯新的起点……
如果我可以成功,你为什么不可以?
也许是因为我自己本是一个非常普通而简单的人,我的人生没有奇遇,也不曾走过任何捷径。在我看来,成功固然让人欣喜,但失败和挫折更让人难忘,真正成功的人是那些可以跨越失败和挫折的人。
为什么说我的成功可以复制?
那是因为世间万事万物的运转,大到宇宙,小至一花一果,其实都遵循若干非常简明的规则。只要掌握这些规则,就可以不断加以复制,就像我们儿时玩过的万花筒,创造出缤纷多彩的人生。
内容简介
本书是一本自述体励志图书,讲述中国第一职业经理人唐骏的成长史。唐骏通过自己的人生经历和对于这些经历的思考,把他跨越失败和挫折、最终走向成功的经验与读者分享。
除了具备一般商业人物传记图书的特点外,本书更为强调唐骏对自己的人生和职业生涯重大关节点的总结,回顾自己在这些关节点上经验和教训,从而与读者(特别是年轻读者)分享解决人生问题的思路与方法。同时也重点突出了唐骏在企业管理方面的成就与心得。
视角贴近普通人,语言富有幽默感和亲和力,情感色彩极为饱满,可读性很强,这是本书最大的特色。
作者简介
唐骏:1962年,出生于江苏常州。  1980年,考入北京邮电学院。  1985年,赴日本名古屋大学留学五年。  1990年,赴美国继续留学生涯,获得计算机学博士学位。在此期间开始创业生涯,先后创办了三家公司。  1994年,加入微软公司,1995年起担任微软总部Windows NT开发部门的高级经理。  1997年,回国于上海筹建微软大中华区技术支持中心(即上海微软),任总经理。此后四年内,该中心先后升级为微软亚洲技术中心和微软全球技术中心。  2002年3月,出任微软中国公司总裁。并获得微软中国总裁。并获得微软中国公司终身荣誉总裁称号。  2004年2月,加入盛大公司任总裁。  2008年4月,从盛大卸任后,加盟新华都集团总裁兼CEO。

推荐《构建可扩展的Web站点》

构建可扩展的Web站点
又名: Build Scalable Web Sites
作者: Cal Henderson
译者: 徐宁
ISBN: 9787121060793
页数: 330
定价: 58.0
出版社: 电子工业出版社
装帧: 平装
出版年: 2008
简介 市场价: 58.0 卓越价: 49.3  到卓越购买
随着Web 2.0网站的蓬勃发展,如何成功地构建可扩展的Web站点成为网站开发人员必备的技能。本书是Flickr.com的主力开发人员讲解构建可扩展的Web 站点的经典之作。本书主要介绍了Web应用程序的概念、体系结构、硬件需求、开发环境的原则及国际化、本地化和Unicode等基本内容,并为解决Web 应用程序的数据安全、电子邮件整合、远程服务交互、应用程序优化、扩展、监测和预警、开放API等问题提供了很多简单实用的技巧和方法。本书涉及的内容十分广博,但核心相当明确,即如何构建安全的、用户喜爱的、可以不断扩展的Web应用程序。任何从事Web应用程序开发的读者都会从中获益匪浅。
作者简介
Cal Henderson来自英格兰, 是照片共享服务Flickr的工程经理, 目前在美国加州森尼维耳市的Yahoo!公司工作. 在创建Flickr应用程序之前, CalcHenderson在英国一家媒体公司Emap担任一个特殊Web项目的技术主管.

How Secure Are Query Strings Over HTTPS?

A common question we hear is “Can parameters be safely passed in URLs to secure web sites? ” The question often arises after a customer has looked at an HTTPS request in HttpWatch and wondered who else can see this data.
For example, let’s pretend to pass a password in a query string parameter using the following secure URL:
https://www.httpwatch.com/?password=mypassword
HttpWatch is able to show the contents of a secure request because it is integrated with the browser and can view the data before it is encrypted by the SSL connection used for HTTPS requests:

If you look in a network sniffer, like Network Monitor, at the same request you would just see the encrypted data going backwards and forwards. No URLs, headers or content is visible in the packet trace::

You can rely on an HTTPS request being secure so long as:

  • No SSL certificate warnings were ignored
  • The private key used by the web server to initiate the SSL connection is not available outside of the web server itself.

So at the network level, URL parameters are secure, but there are some other ways in which URL based data can leak:

  1. URLs are stored in web server logs – typically the whole URL of each request is stored in a server log. This means that any sensitive data in the URL (e.g. a password) is being saved in clear text on the server. Here’s the entry that was stored in the httpwatch.com server log when a query string was used to send a password over HTTPS:
    2009-02-20 10:18:27 W3SVC4326 WWW 208.101.31.210 GET /Default.htm password=mypassword 443 ...

    It’s generally agreed that storing clear text passwords is never a good idea even on the server.
  2. URLs are stored in the browser history – browsers save URL parameters in their history even if the secure pages themselves are not cached. Here’s the IE history displaying the URL
    parameter:
    Query string parameters will also be stored if the user creates a bookmark.
  3. URLs are passed in Referrer headers – if a secure page uses resources, such as javascript, images or analytics services, the URL is passed in the Referrer request header of each embedded request. Sometimes the query string parameters may be delivered to and stored by third party sites. In HttpWatch you can see that our password query string parameter is being sent across to Google Analytics:

Conclusion

The solution to this problem requires two steps:

  • Only pass around sensitive data if absolutely necessary. Once a user is authenticated it is best to identify them with a session ID that has a limited lifetime.
  • Use non-persistent, session level cookies to hold session IDs and other private data.

The advantage of using session level cookies to carry this information is that:

  • They are not stored in the browsers history or on the disk
  • They are usually not stored in server logs
  • They are not passed to embedded resources such as images or javascript libraries
  • They only apply to the domain and path for which they were issued

Here’s an example of the ASP.NET session cookie that is used in our online store to identity a user:

Notice that the cookie is limited to the domain store.httpwatch.com and it expires at the end of the browser session (i.e. it is not stored to disk).
You can of course use query string parameters with HTTPS, but don’t use them for anything that could present a security problem. For example, you could safely use them to identity part numbers or types of display like ‘accountview’ or ‘printpage’, but don’t use them for passwords, credit card numbers or other pieces of information that should not be publicly available.

Web设计中9个常见的可用性错误

原文作者:Dmitry Fadeyev
原文链接:9 Common Usability Mistakes In Web Design
译者:iamsure
By Dmitry Fadeyev
现在,比较牛的设计师和开发者都认识到了可用性在他们工作中的重要性。可用性好的网站会极大地提高用户体验,并且好的用户体验会让用户更加快乐。用聪明的设计决策取悦并满足您的访客,而不是阻挠和激怒他们。下面是9个网站经常面临的可用性问题 ,以及对于这些问题的推荐解决方案。 您可能还对下面的文章感兴趣:

1. 太小的链接点击区域

设置超文本链接的目的是被点击,确保它们很容易点击才有意义。下面的示例中的链接实在是太小了;点击它们的难度太高。 这些是 评论中的链接,Hacker News 是一个社会新闻的网站。 (点击区域用红色突出显示) :
HackerNews link click areas
下面例子中包含相同的界面元素,链接的评论,但是这个例子中有一个很大的可点击区域:
NewsPond link click areas
Newspondcomments link.
为什么我们需要一个更大的点击区域? 很简单。 因为我们移动鼠标并不是很准确。 一个大号的点击区域使鼠标光标悬停在链接上更容易。如何能有一个大号的点击区域呢?我们可以使整个链接更大,或者使用CSS “padding”属性增加链接周围的空间。 代码如下:
<a href=“http://www.examplesite.com”style=“padding: 5px;”>Example Site<a>
为了使例子简单点,这个CSS样式直接写在代码里了,但在现实生活中您可能是在您的CSS文件中添加一个样式,给这个链接一个class或者是一个id,然后指向它。
在37signals上,你可以阅读到更多关于填充链接以更适用于鼠标点击的文章,的文章棉衣链接的目标 。文章认为,填充为用户提供了 “舒适的感觉。真的非常容易点击链接。感觉链接就像是在配合你工作不是和你对着干你。 ”

2. 错误使用的分页

分页指把内容分为几页。如果需要显示一个很长的内容列表,这是网站上常用的方式;例如,商店中的产品或是相册中的照片。因为这种目的使用分页是有意义的,因为太多的项目显示在一个页面上将会使网页下载和处理速度变慢
FeedMyApp pagination
FeedMyApp以正确的方式使用分页:把其海量的应用服务列表以合适的量显示。
但是现在还有人用另一种方式在Web上使用分页。 .内容网页上,比如博客的一篇文章,有时也会分成若干页。 为什么这样做? 有什么好处么?不太可能是文章实在太长了,因此需要分页; 在大多数情况下, 这样做是用来提高页面浏览量的 。因为很多博客和杂志通过广告获得收入,获得更多的页面浏览量(即单独网页的加载数量)来提高他们的浏览统计数据,使他们能够在每个广告上获利更多。
Wired article paginated
Wired 上的文章《Google的Logo》 分为8页,非常难以阅读。
虽然这可能看起来像是一种简单的方法,让您可以从广告中挤压出更多的钱,但它也带来了两个主要的问题。
首先,这样做真的,真的非常讨厌。 阅读一篇文章不得不加载好几页一点也不好玩。 您给您的访客设置了一个完全没有必要的障碍
第二个原因是SEO(搜索引擎优化) 。 搜索引擎使用您网页上的内容理解它是关于什么的,然后相应地进行索引。 如果内容分成若干页,内容就被稀释了,每个页面更难理解并且其中和主题相关的关键字也更少了 。 这可能会对文章在搜索引擎中的排名产生不利影响。

3. 重复的网页标题

每个网页上的标题都是非常重要的。网页标题就是HTML代码<head>区段中我们写在<title>标记里面文本。 有时,人们在编写他们网站模板时设定一个通用名称——例如其网站的名字——然后在整个网站反复使用相同的名称。 这样做是错误的,因为为每个页面设置单独的标题有几个关键的好处。
第一个好处是,一个好的标题能向您的访客传达很多信息,解释这个页面的内容是什么。人们可以迅速知道他们是否在正确的地方。请记住,标题不仅仅显示在浏览器窗口顶部,它也显示在搜索引擎结果页上 。 当人们在Google的时候看到一个搜索结果列表,他们会去阅读那些网页标题来了解每个网页的内容。仅仅因为这个,你也应该花一些时间来优化你的网页标题。
第二个好处是SEO。 搜索引擎需要不同的信息来为一次特定的查询排序搜索结果。 网页标题是重要的信息之一,它们用来衡量您的网页与一个特定的搜索关键字的相关程度。 这并不意味着你应该在标题里添加许多关键字——这与第一个好处相矛盾——但你应确保每个标题简明扼要地介绍了网页的内容,其中包括几个你觉得人们会用来搜 索这篇文章的关键字。 下面是一个好网页标题的例子。这是一个Smashing Magazine网页标题在Safari中浏览的样子:
Smashing Magazine page title
例子里,我们可以看到文章标题,类别和文章的网站名称。 把网站名称放在最后,更强调的是网页本身的内容 ,而不是网站的品牌。 下面是标记中HTML代码的样子:

<title>Vintage and Blues WordPress Themes | Freebies | Smashing Magazine</title>

Google搜索结果中这个页面的样子:
Smashing Magazine SERP

4. 内容难以扫描

为了确保您的网站易用性,您不仅需要有一个好的设计,你还需要良好的Copy(文案)。 Copy(文案)是一个术语,用来描述网站上所有的文本内容。 是的,好的设计能引导您的访客浏览您的网站,将其注意力集中在重要的事情上,帮助他们理解信息块,但访客仍然需要阅读文字来处理信息。这意味着Copy是你整体网站设计中的一个重要组成部分
在你能写出一份好的文案之前,你需要了解人们实际上如何浏览你的网站。不要以为你的访客会从头到尾阅读所有的文字。 那样当然很好,但是不幸的是,根本事实不是这样滴。 人们被Web上的信息狂轰乱炸,而且我们中的大部分人在尽力去消化那些信息。这就导致非常疯狂的浏览行为:我们从一块内容跳跃到另一块,从一个网站网站跳到下一个。人们往往不能从头到尾阅读一个网站;他们从最先吸引他们注意力的那一块内容开始,然后移动到下一个捕获他们兴趣的地方。 这个模式看起来有点像这样:
Basecamp
The Basecamp 的到达页面。
红圈表示访客目光聚焦的区域,数字表示他们看那些元素的顺序。用户的视线在页面上的兴趣点之间跳跃,想要充分利用这种混乱的浏览模式,你需要用一种特定的方法组织你的文案。下面是几个重点:

  • 设置几个“关注点”(Points of focus)。这些部分吸引访客的注意力,你可以用粗体,高对比度的颜色和较大的字体来实现这个目的。你也可以使用图片,例如图标,把图标放在文字旁边,给这区域带来更多的视觉吸引力。
  • 每个“关注点”应该伴随一个描述性的标题。在进一步阅读文案之前,访客可以了解到一点内容概要。不要做“标题党”,标题应该简单明了。人们希望迅速获得信息,藏着掖着只会惹恼他们。
  • 任何文字都应该简短并容易消化。只提供要点,把其余的都删去。在大多数情况下,文案撰写者想补充说明观点的文字只是增加了网站的负载。人们将只阅读小块小块的文字,并且忽视大段的文章。把你的文案删减到不能再减的地步吧。

OpenOffice page
“为什么你应该使用的 OpenOffice;;; ”网页肯定可以改进。除了顶部的大横幅之外没有设置明确“关注点”;并且,文案聚在一起成了一个大疙瘩,阅读起来相当困难。
Things features
Things 软件的功能页,每个功能都是一小段文字,包含一个自己的图标和标题。这使得这个列表非常容易被扫描。为了使文案给人印象更深,列出实际的好处,而不是功能的名字。

5.没有办法取得联系

如果你想建立一个成功的社区,用户参与是非常重要的,并且如果你想建立一个成功的网站或是社会网络软件,社区是非常重要的。此外,如果你想拥有忠实的用户,用户参与同样很重要。迅速回答用户提出的疑问,修复他们遇到的问题并不仅仅意味着你有很好的客户服务——这意味这你在乎他们,并且你的用户和访客会很欣赏这一点。
但是很多网站依旧没有给访客一个方便渠道和公司取得联系。一些网站甚至没有Email地址或是联系方式。
CocaCola contact page
当你点击可口可乐Coca-Cola网站上的“联系我们”链接。显示出来的页面,没有电子邮件,没有电话号码。大部分的链接指向“常见问题”;反馈表需要您的地址和年龄,还有500个字符的限制;“提交一个想法”的表单有两页那么长,还包含一大堆条款。看来可口可乐真的不想你与他们联系。
当然,把你的Email地址放到网站上可能会吸引大量的垃圾邮件,这里有几个解决办法。
Enkoder 是我最喜欢的把Email放到Web上的解决方案。Enkoder是一个软件,有两个版本,一个是基于Mac平台的,一个是免费的网络应用。它可以加密你提交的任何Email地址,生成一串乱七八糟的JavaScript代码,你可以把它放在你的页面上。当网页加载这段代码的时候,你的电子邮件地址就会奇迹般地出现,还是一个可点击的链接。抓取EMail地址的爬虫机器人不能读取你的地址,起码计划是这样的。
你还可以用“联系表单”(contact forms)来避免在网页上显示你的EMail的问题,但是你仍旧会收到一些垃圾邮件,除非你使用一个有效的Captchas,或是其他垃圾邮件保护机制。请记住,像Captchas这样的东西是用户交互的障碍,并且可能会降低用户体验。
论坛救援。在线论坛是一个很好的沟通渠道,是一个不错的和用户联系替代方案。一个公开的论坛比一个简单的“联系表单”或Email更好,因为你的用户在论坛上可以相互帮助。即使你不亲自回应用户,其他的用户可能帮助那个人,解决他的问题。
GetSatisfaction 是一个Web应用程序,它就像一个论坛,用户可以在板块里张贴自己的问题和反馈,用户或是团队成员都可以回复。用户可以添加评论阐述自己的问题。无论你选 择GetSatisfaction的托管解决方案或是运行你自己的留言板,这样双向的沟通渠道是一个与用户保持联系的优秀方法。
GetSatisfaction Apple
The GetSatisfaction forum for Apple.

6. 没有办法搜索

大部分人到达一个页面会立即开始寻找搜索框。也许他们知道自己在寻找什么,并且不想花时间学习这个网站的导航结构。Jakob Nielsen 管这些人叫“搜索优势用户”。

我们的可用性研究显示,超过一半的用户是“搜索优势”的,大约五分之一的用户是“链接优势”的,其余则呈现出混合行为。“搜索优势”用户通常进入一个网站时直奔搜索按钮,他们对在网站上逛逛没有兴趣;他们是“任务中心”的,而且想要尽可能快地找到明确的信息。 Jakob Nielsen

无论您运营的是在线商店还是Blog,你都需要搜索框。人们会来寻找一个特定的产品,或是一篇他们记得的文章,他们想要用一个快速搜索找到它。好消息是,如果你还没有在你的网站上设置搜索,这件事其实很简单。
你不必自己写一个搜索功能,Google和Yahoo这些搜索引擎已经索引了你网站的大部分页面(如果不是全部的话),因此,所有你需要做的就是选择一个,然后把搜索框嵌入到你的网站里。

<form action="http://www.google.com/search" method="get">
<fieldset>
<input type="hidden" name="sitesearch" value="smashingmagazine.com" />
<input type="text" name="q" size="31" maxlength="255" value="" />
<input type="submit" value="Google Search" />
</fieldset>
</form>

下面是Yahoo的:

<form action="http://search.yahoo.com/search" method="get">
<fieldset>
<input type="hidden" name="vs" value="smashingmagazine.com" />
<input type="text" name="p" />
<input type="submit" value="Yahoo Search" />
</fieldset>
</form>

为了让它运转起来,你需要做的只是把“hidden”字段的值改成你网站的域名。这将把Google或是Yahoo的搜索查询范围限制在你的网站内部。你可能还想要修改下提交按钮上的文字,说些你想说的……

7. 太多的功能需要注册

你的网站可能有些内容或者功能要求访客注册才能使用。这很好,但是小心有多少内容被藏在了注册流程后面。深度交互的Web应用,例如EMail,文档编辑和项目管理,其100%的功能都只有注册用户才能使用。其他网站,例如社会化新闻网站,不要这么做。我可以浏览DiggReddit上所有的故事而不用登录;用户没必要显示出自己的身份才能享受这些功能
当你实现一个登录限制的时候,小心不要把那些不需要用户身份认证的功能也锁起来。一些Blog需要人们注册之后才能发布评论。当然这将大大减少垃圾邮件,但也同时大大减低了评论数。
你在网站上设置的限制会影响用户的参与行为,消除那些限制,比如注册什么的,几乎肯定会增加用户的参与程度。事实上,一旦用户开始使用你的网站,他们将更可能注册账号,因为他们其实已经参与进来了
GetSatisfaction login
The GetSatisfaction;;; 的交互界面允许你填入你关于一家公司或是一个产品的评论,然后点击“发布”按钮。之后你看到的却不是你发布的评论信息,而是一个“登录或是注册”的提示。这很扯,用户可能已经被打击到了……
Pixlr
Pixlr是一个在线图片编辑应用,这是Pixlr的到达页面,上面有一个链接名为“Jump in n’ get Started!”,点击后会打开应用。没有试用,没有注册;你现在就可以开始试用这个应用了。
Posterous
Posterous,一个博客托管网络,使用甚至不要求注册。只是发送一封包含你的文章的Email,你的Blog就创建好了。

8. 老的永久链接指向“不存在”

永久链接(Permalink)指一个链接固定指向一个页面,不会被改变;例如,指向一篇博客文章的链接,就像你现在正在读的。问题出现了,当网站转移到另外一个域,或者结构重组了。那些指向现有页面的老永久链接可能就断掉了,除非你做了点什么。有种东西叫做301重定向。 301重定向是存在你服务其上的几个指令,它可以把访客重定向到恰当的页面素以,如果谁用老链接访问你的网站,他们将不会看到一个404错误页:301重定向会把他们转向正确的地方,只要你设置正确。数字“301”制定重定向的类型:permanent。
Frye Wiles 404 page
Frye / Wiles 404 error.
有各种不同的办法做301重定向。他们是如何实现部分取决于你使用的Web服务器。这里介绍一下301重定向的基本操作,基于目前最流行的Web服务器,Apache。
下面的代码应该在一个名为“.htaccess”的文件里,这个文件应该在你网站的根目录下。是的,文件以一个 英文逗号开始。这意味这是一个系统文件,标准文件浏览器会默认隐藏这种文件。因此,如果你不能用你的文件浏览器或者FTP客户端看到它,去把你的 “Display invisble files”选项勾选上。用你的编辑器创建或者(如果文件已经在那里了)编辑这个文件。每当访客到达你的网站上,这个文件中的重定向规则将会被应用。
下面是些简单的301重定向代码:

RewriteEngine on
Redirect 301 /oldpage.html /newpage.html

这些代码相当简单明了。如果谁想试着进入 “yoursite.com/oldpage.html,” ,他们会立刻被重定向到“yoursite.com/newpage.html.” 。顶部的“RewriteEngine on”是设置mod_rewrite引擎为开启状态(默认是关闭的)。这就是处理重定向的引擎。

9. 老长老长的注册表单

注册表单是一砣障碍物。因为填写表单很费劲,并且很无聊。人们不得不投入时间和精力去注册,之后还得投入更多的时间和精力去记住他们的用户名和密码!
我们可以降低这种阻碍,通过尽可能缩短注册表单。考虑到所有情况,注册系统的目的仅仅是能够识别每一个用户,所以,伟义的要求就是一个独特的标识(如用户名或是Email地址),还有一个密码。如果你不需要更多信息,就不要问了。让表单尽可能短。
ReadOz signup form
ReadOz的注册表单可长了。仔细研究下,我们发现,一半以上的字段都是可选的。如果这些是可选的,也就是并不真正需要的。这种形式可能会让用户看一眼就跑了。只显示那些人们注册时必需填写的,其余的可以以后再说。
Tumbler Signup
Tumblr(已经被墙了)有一个最短的注册表单。只有三块,电子邮件,密码,你新Blog的地址。
Basecamp signup
Basecamp 的注册页用了一个聪明的伎俩。页面上除了去首页的链接没有其他任何网页导航。这样可以使用户集中在注册过程中,不会受到任何干扰离开页面。

少过脑子

可用性就是使工具更加容易使用。少让用户过脑子,少让用户受挫折。一个网站应该完成所有的工作,呈现给访客的只是那些他们寻找的东西。可用性还包括人们使用你的网站时的体验,因此,关注细节,在实现页面的呈现和感觉的时候。
好的,如果你有些对这篇文章的想法,或是遇到了任何其他的可用性问题,写在下面的回复部分告诉我吧~

关于作者

Dmitry Fadeyev 是 Usability Post blog的创始人, 您可以在那里阅读他关于好设计和可用性的想法。 在Twitter上Follow Dmitry: @usabilitypost.

关于译者

iamsure 是一个搞产品设计的人, 他的Blog是iamsure,他有时候在上边写点有的没的。 同样,也在Twitter上Follow iamsure: @iamsure

负载均衡必须要考虑的八个方案

1、HTML静态化
其实大家都知道,效率最高、消耗最小的就是纯静态化的html页面,所以我们尽可能使我们的网站上的页面采用静态页面来实现,这个最简单的方法其实也是最有效的方法。但是对于大量内容并且频繁更新的网站,我们无法全部手动去挨个实现,于是出现了我们常见的信息发布系统CMS,像我们常访问的各个门户站点的新闻频道,甚至他们的其他频道,都是通过信息发布系统来管理和实现的,信息发布系统可以实现最简单的信息录入自动生成静态页面,还能具备频道管理、权限管理、自动抓取等功能,对于一个大型网站来说,拥有一套高效、可管理的CMS是必不可少的。
除了门户和信息发布类型的网站,对于交互性要求很高的社区类型网站来说,尽可能的静态化也是提高性能的必要手段,将社区内的帖子、文章进行实时的静态化,有更新的时候再重新静态化也是大量使用的策略,像Mop的大杂烩就是使用了这样的策略,网易社区等也是如此。
同时,html静态化也是某些缓存策略使用的手段,对于系统中频繁使用数据库查询但是内容更新很小的应用,可以考虑使用html静态化来实现,比如论坛中论坛的公用设置信息,这些信息目前的主流论坛都可以进行后台管理并且存储再数据库中,这些信息其实大量被前台程序调用,但是更新频率很小,可以考虑将这部分内容进行后台更新的时候进行静态化,这样避免了大量的数据库访问请求。
2、图片服务器分离
大家知道,对于Web服务器来说,不管是Apache、IIS还是其他容器,图片是最消耗资源的,于是我们有必要将图片与页面进行分离,这是基本上大型网站都会采用的策略,他们都有独立的图片服务器,甚至很多台图片服务器。这样的架构可以降低提供页面访问请求的服务器系统压力,并且可以保证系统不会因为图片问题而崩溃,在应用服务器和图片服务器上,可以进行不同的配置优化,比如apache在配置ContentType的时候可以尽量少支持,尽可能少的LoadModule,保证更高的系统消耗和执行效率。
3、数据库集群和库表散列
大型网站都有复杂的应用,这些应用必须使用数据库,那么在面对大量访问的时候,数据库的瓶颈很快就能显现出来,这时一台数据库将很快无法满足应用,于是我们需要使用数据库集群或者库表散列。
在数据库集群方面,很多数据库都有自己的解决方案,Oracle、Sybase等都有很好的方案,常用的MySQL提供的Master/Slave也是类似的方案,您使用了什么样的DB,就参考相应的解决方案来实施即可。
上面提到的数据库集群由于在架构、成本、扩张性方面都会受到所采用DB类型的限制,于是我们需要从应用程序的角度来考虑改善系统架构,库表散列是常用并且最有效的解决方案。我们在应用程序中安装业务和应用或者功能模块将数据库进行分离,不同的模块对应不同的数据库或者表,再按照一定的策略对某个页面或者功能进行更小的数据库散列,比如用户表,按照用户ID进行表散列,这样就能够低成本的提升系统的性能并且有很好的扩展性。sohu的论坛就是采用了这样的架构,将论坛的用户、设置、帖子等信息进行数据库分离,然后对帖子、用户按照板块和ID进行散列数据库和表,最终可以在配置文件中进行简单的配置便能让系统随时增加一台低成本的数据库进来补充系统性能。
4、缓存
缓存一词搞技术的都接触过,很多地方用到缓存。网站架构和网站开发中的缓存也是非常重要。这里先讲述最基本的两种缓存。高级和分布式的缓存在后面讲述。
架构方面的缓存,对Apache比较熟悉的人都能知道Apache提供了自己的缓存模块,也可以使用外加的Squid模块进行缓存,这两种方式均可以有效的提高Apache的访问响应能力。
网站程序开发方面的缓存,Linux上提供的Memory Cache是常用的缓存接口,可以在web开发中使用,比如用Java开发的时候就可以调用MemoryCache对一些数据进行缓存和通讯共享,一些大型社区使用了这样的架构。另外,在使用web语言开发的时候,各种语言基本都有自己的缓存模块和方法,PHP有Pear的Cache模块,Java就更多了,.net不是很熟悉,相信也肯定有。
5、镜像
镜像是大型网站常采用的提高性能和数据安全性的方式,镜像的技术可以解决不同网络接入商和地域带来的用户访问速度差异,比如ChinaNet和EduNet之间的差异就促使了很多网站在教育网内搭建镜像站点,数据进行定时更新或者实时更新。在镜像的细节技术方面,这里不阐述太深,有很多专业的现成的解决架构和产品可选。也有廉价的通过软件实现的思路,比如Linux上的rsync等工具。
6、负载均衡
负载均衡将是大型网站解决高负荷访问和大量并发请求采用的终极解决办法。
负载均衡技术发展了多年,有很多专业的服务提供商和产品可以选择,我个人接触过一些解决方法,其中有两个架构可以给大家做参考。
7、硬件四层交换
第四层交换使用第三层和第四层信息包的报头信息,根据应用区间识别业务流,将整个区间段的业务流分配到合适的应用服务器进行处理。 第四层交换功能就象是虚 IP,指向物理服务器。它传输的业务服从的协议多种多样,有HTTP、FTP、NFS、Telnet或其他协议。这些业务在物理服务器基础上,需要复杂的载量平衡算法。在IP世界,业务类型由终端TCP或UDP端口地址来决定,在第四层交换中的应用区间则由源端和终端IP地址、TCP和UDP端口共同决定。
在硬件四层交换产品领域,有一些知名的产品可以选择,比如Alteon、F5等,这些产品很昂贵,但是物有所值,能够提供非常优秀的性能和很灵活的管理能力。Yahoo中国当初接近2000台服务器使用了三四台Alteon就搞定了。
8、软件四层交换
大家知道了硬件四层交换机的原理后,基于OSI模型来实现的软件四层交换也就应运而生,这样的解决方案实现的原理一致,不过性能稍差。但是满足一定量的压力还是游刃有余的,有人说软件实现方式其实更灵活,处理能力完全看你配置的熟悉能力。
软件四层交换我们可以使用Linux上常用的LVS来解决,LVS就是Linux Virtual Server,他提供了基于心跳线heartbeat的实时灾难应对解决方案,提高系统的鲁棒性,同时可供了灵活的虚拟VIP配置和管理功能,可以同时满足多种应用需求,这对于分布式的系统来说必不可少。
一个典型的使用负载均衡的策略就是,在软件或者硬件四层交换的基础上搭建squid集群,这种思路在很多大型网站包括搜索引擎上被采用,这样的架构低成本、高性能还有很强的扩张性,随时往架构里面增减节点都非常容易。这样的架构我准备空了专门详细整理一下和大家探讨。
对于大型网站来说,前面提到的每个方法可能都会被同时使用到,我这里介绍得比较浅显,具体实现过程中很多细节还需要大家慢慢熟悉和体会,有时一个很小的squid参数或者apache参数设置,对于系统性能的影响就会很大,希望大家一起讨论,达到抛砖引玉之效。
FROM:CU

推荐阅读《高性能网站建设指南》

高性能网站建设指南
又名: High Performance Web Sites
译者: 刘彦博
作者: (美)桑德斯(Sounders,S.)
副标题: 前端工程师技能精髓
ISBN: 9787121066191
页数: 146 页
定价: 35.0
出版社: 电子工业出版社
装帧: 平装
出版年: 2008年
简介   · · · · · ·
本书结合Web 2.0以来Web开发领域的最新形势和特点,介绍了网站性能问题的现状、产生的原因,以及改善或解决性能问题的原则、技术技巧和最佳实践。重点关注网页的行为特征,阐释优化Ajax、CSS、JavaScript、Flash和图片处理等要素的技术,全面涵盖浏览器端性能问题的方方面面。在《高性能网站建设指南》中,作者给出了14条具体的优化原则,每一条原则都配以范例佐证,并提供了在线支持。《高性能网站建设指南》内容丰富,主要包括减少HTTP请求、Edge Computing技术、Expires Header技术、Gzip组件、CSS和JavaScript最佳实践、主页内联、Domain最小化、JavaScript优化、避免重定向的技巧、删除重复JavaScript的技巧、关闭ETags的技巧、Ajax缓存技术和最小化技术等。《高性能网站建设指南》适合Web架构师、信息架构师、 Web开发人员及产品经理阅读和参考。
作者简介   · · · · · ·
Steve Souders在Yahoo!担任Chief Performance。他于2000年加盟Yahoo!,在该公司的很多平台和产品团队中工作过。在他到达今天这个位置之前,他就职于My Yahoo!开发团队。.
作为Chief Performance Yahoo!,他开发了一系列优秀软件,可以使网站访问速度变得更快。他构建了用于进行性能分析的工具,并将这些优秀软件和工具传播到Yahoo!的各个产品团队中。
在到Yahoo!之前,Steve就职于很多小型或中型公司,包括他和别人一起创办的两个公司——Helix Systems和CoolSync。

HTTPS Performance Tuning

An often overlooked aspect of web performance tuning is the effect of using the HTTPS protocol to create a secure web site. As applications move from the desktop onto the web, the need for security and privacy means that HTTPS is now heavily used by web sites that need to be responsive enough for every day use.
The tips shown below may help you to avoid some of the common performance and development problems encountered on sites using HTTPS:

Tip #1: Use Keep-Alive Connections

Whenever a browser accesses a web site it must create one or more TCP connections. That can be in lengthy operation even with normal unsecured HTTP.  The use of Keep-Alive connections reduces this overhead by reusing TCP connections for multiple HTTP requests. The screen shot below from HttpWatch shows the TCP connection time over HTTP is approximately 130 milliseconds for our web site when it is accessed from the UK:

Using HTTPS, the lack of Keep-Alive connections can lead to an even larger degradation in performance because an SSL connection also has to be setup once the TCP connection has been made. This requires several roundtrips between the browser and web server to allow them to agree on an encryption key (often referred to as the SSL session key) . The corresponding connection time to the same server using HTTPS is nearly four times longer as it includes the HTTPS overhead:

If a HTTPS connection is re-used the overhead of the both the TCP connection and SSL handshake are avoided.
Some web browsers and servers now allow the re-use of these SSL session keys across connections, but you may not always have control over the web server configuration or the type of browser used.

Tip #2: Avoid Mixed Content Warnings

In a previous blog post we talked about the confusing and annoying dialog that is displayed by default if a secure page uses any HTTP resources:

To stop this warning dialog interrupting the page download you need to ensure that everything on the page is accessed over HTTPS. It doesn’t have to be from the same site but it must use HTTPS. For example, the addition of HTTPS support allows the Google Ajax libraries to be safely loaded from secure pages.

Tip #3: Use Persistent Caching For Static Content

If you follow Tip #2 then everything that your page needs, including images, CSS and Javascript, will be accessed over HTTPS. You would normally want to persistently cache static content like this for as long as possible to reduce load on the web site and improve performance when a user revisits your site.
Of course, you wouldn’t want to cache anything on the disk that was specific to the user (e.g. HTML page with account details or a pie chart of their monthly spending). On most pages though, nearly all of the non-HTML content can be safely stored, shared and re-used.
There seems to be some confusion over whether caching is possible with HTTPS. For example, Google say this about Gmail over HTTPS:

You may find that Gmail is considerably slower over the HTTPS connection, because browsers do not cache these pages and must reload the code that makes Gmail work each time you change screens.

Although, 37Signals acknowledge that in-memory caching is possible, they say that persistent caching is not possible:

The problem is that browsers don’t like caching SSL content. So when you have an image or a style sheet on SSL, it’ll generally only be kept in memory and may even be scrubbed from there if the user is low on RAM (though you can kinda get around that).
Even when you do your best to limit the number of style sheets and javascript files and gzip them for delivery, it’s still mighty inefficient and slow to serve them over SSL every single time the user comes back to your site. Even when nothing changed. HTTP caching was supposed to help you with that, but over SSL it’s almost all for naught.

In reality, persistent caching is possible with HTTPS using both IE and Firefox.
Using HttpWatch you can see if content is loaded from the cache by looking for (Cache) in the Result column or by looking for the blue Cache Read block in the time chart. Here is an example of visiting https://www.httpwatch.com with a primed cache in IE. You can see that all the static resources are reloaded directly from the cache without a round trip to the web server:

If you try this in Firefox 3.0 without adjusting your response headers you will see this instead:

The ‘200′ values in the Result column indicate that the static content is being reloaded even though the site was previously visited and a valid Expires setting was used. Unless you specify otherwise, Firefox will put HTTPS resources into the in-memory cache so that they can only be re-used within a browser session. When Firefox closes the contents of the in-memory cache is lost.
The about:cache page in Firefox confirms that these files are stored using the in-memory cache:

To allow persistent caching of secure content in Firefox you need to set the Cache-Control response header to Public:

This value moves HTTPS based content into the persistent Firefox disk cache and in the case of https://www.httpwatch.com it more than halves the page load time due to the decrease in network round trips and TCP/SSL connections:

The Public cache setting is normally used to indicate that the content is not per user and can be safely stored in shared caches such as HTTP proxies. With HTTPS this is meaningless as proxies are unable to see the contents of HTTPS requests. So Firefox cleverly uses this header to control whether the content is stored persistently to the disk.
This feature was only added in Firefox version 3.0 so it won’t work with older versions. Fortunately, the take up version 3.0 is reported to be much faster than IE 6 to 7.