求merry xmasiii 攻略ver2.03的游戏资源

您好,欢迎来到飞天资源论坛!
后使用快捷导航没有帐号?
PS滤镜最新汉化版本查询,同步跟新;便于随时查询最新版本;建议大家收藏此帖;
在线时间 小时
阅读权限200
签到天数: 209 天[LV.7]常住居民III
Photoshop CS
马上注册,享受,国内外摄影后期教程,PS汉化插件培训教程等精品资源一网打尽,让你轻松玩转社区。
才可以下载或查看,没有帐号?
游戏复古风格的文本PS
Game effects vintage text Photoshop.jpeg (159.48 KB, 下载次数: 0)
14:35 上传
请先注册会员后在进行下载
已注册会员,请先登录后下载
文件名称:下载地址.txt&
下载次数:34&&文件大小:60 Bytes&
售价:5资源币
下载权限: 以上或
飞天资源论坛 - 温馨提示
1.为保证您的问题能够及时解决,如有任何问题,请直接到【 】平台提问,切勿在发布帖提问,因为有时候会看不了那么多回复;
2.如出现解压错误请升级压缩软件至5.0版本,本站默认解压密码为或复制粘贴时前后不能有空格!
3.您的真诚回复是对楼主最大的支持与鼓励,也方便我们了解您所喜欢的资源类型;严禁灌水式的毫无意义的内容,否则直接禁言;
------------------------------------------ 版权申明------------------------------
》资源下载链接由会员自发搜集于网络,仅供学习与参考,不得以任何方式用于商业用途,如需商用请联系版权拥者取得商业授权!
》论坛非常重视知识产权,如有侵犯任何第三方权益,请及时联系(),我们将及时予与删除。
帖子永久地址:&<button type="submit" class="pn" onclick="setCopy('游戏复古风格的文本PS样式\n/thread-.html', '帖子地址已经复制到剪贴板您可以用快捷键 Ctrl + V 粘贴到 QQ、MSN 里。')">推荐给好友
在线时间 小时
阅读权限70
签到天数: 886 天[LV.10]以坛为家III
感谢老师分享!!!
在线时间 小时
阅读权限50
签到天数: 845 天[LV.10]以坛为家III
感谢分享!
在线时间 小时
阅读权限50
签到天数: 102 天[LV.6]常住居民II
在线时间 小时
阅读权限70
签到天数: 648 天[LV.9]以坛为家II
好好看看谢谢分享
在线时间 小时
阅读权限50
签到天数: 630 天[LV.9]以坛为家II
感谢分享!
在线时间 小时
阅读权限50
签到天数: 299 天[LV.8]以坛为家I
谢谢楼主分享!
在线时间 小时
阅读权限50
签到天数: 282 天[LV.8]以坛为家I
工作时间:8:00-24:00
飞天官方微信
推荐PS素材区
推荐设计素材
推荐教程区
飞天资源介绍
Powered by&img src=&/50/v2-dbae79d39c4f922beb7904d_b.jpg& data-rawwidth=&640& data-rawheight=&360& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&/50/v2-dbae79d39c4f922beb7904d_r.jpg&&&p&&b&昨天博尔特跑完了他最后一道,不多说了。&/b&&/p&&p&&b&找到一篇四年前的旧文,那锁定他成为史上第一人的时刻。&/b&&/p&&p&&br&&/p&&p&&br&&/p&&p&尤塞恩-博尔特,缓缓放慢了速度。&/p&&p&这是日,离他27岁生日还有四天。他在莫斯科凉爽的夏日,他的故乡牙买加在地球另一面。他放慢了速度,在世界田径锦标赛200米决赛,最后的直道上。&/p&&p&&br&&/p&&p&在此之前的一切,我们已经知道了:尤塞恩-博尔特,1986年夏天生在牙买加,十岁时还想做个板球运动员。到他196公分时,周围的人都觉得:他太高了,四肢过长,摆动频率低,协调性差,这辈子都练不出短跑来。当然啦,16岁那年,他就在世界青年田径锦标赛上,跑出了20秒40的200米成绩,但这似乎就该是他的命运了:他不适合跑100米。&/p&&p&实际上,直到2007年,他才开始练100米,在希腊,他跑出了10秒03。&/p&&p&而在此之前,他更多被作为“世界上最好的200米选手”被铭记。&/p&&p&&br&&/p&&p&此后就是神话开始的日子:2008年5月,他连续跑出9秒76和9秒72,后一个成绩打败了世界纪录。8月,北京鸟巢,奥运会男子100米决赛,博尔特在风速为零之下,跑出神话般的9秒69,世界纪录;随后是200米,他跑出19秒30,新世界纪录。再加上4 X 100米的37秒10,他成为史上第一个在同一届奥运会上,拿到100米、200米、4 X 100米接力金牌,顺便打破世界纪录的人——不仅战胜世界,还战胜历史。&/p&&p&&br&&/p&&p&&br&&/p&&img src=&/v2-3da62e17a60fdb0f0b847_b.jpg& data-rawwidth=&594& data-rawheight=&429& class=&origin_image zh-lightbox-thumb& width=&594& data-original=&/v2-3da62e17a60fdb0f0b847_r.jpg&&&p&&br&&/p&&p&&br&&/p&&p&然后是2009年世界田径锦标赛,100米决赛中,对手盖伊跑出9秒71,在2008年,这还是世界纪录级的水准,但在这一晚,毫无意义了:博尔特跑出了9秒58,再一次世界纪录;四天之后,200米决赛,博尔特再次200米新纪录,19秒19,再三天后,又是男子4 X 100米金牌。那是他的极盛期:他站在星球历史的巅峰,把短跑赛场来回踩踏,蹂躏了所有纪录。&/p&&p&&br&&/p&&p&在巅峰期,这家伙就像个变异的怪兽。众所周知,他196公分的身高和步频,确实不适合100米跑。在前半程,腿没溜开时,他就像个步履局促的巨人,走在小人国里。但在那些岁月,他的100米后半程华丽壮阔:他的腿溜开了,就像发动机磨合完了,他会用雷霆般的步频甩开所有人,你会产生时空压缩的错觉:跑道变小了,体育场变小了,最后他呼啸着穿过终点线时,你只会叹恨100米的跑道太短。所以,他的200米观赏性更强:当他跑过弯道、全速前进之际,你会感受到,一个人加速到极限的过程,能如何敲击自己的眼球。&/p&&p&但自那以来,他放慢了速度。&/p&&p&&br&&/p&&p&&br&&/p&&p&2010年,因为背伤,他状态不佳。5月在上海,他的200米跑出了19秒76,依然足以夺冠,但已经没法挑战历史。8月在斯德哥尔摩100米之战,他输给了盖伊,两年以来首次败北。之后他休养背伤,以免受伤。2011年世界田径锦标赛100米决赛,在韩国大邱,他鬼使神差的抢跑。世界本来期望他刷新9秒58,但他却提前出局。之后的200米决赛,他跑出19秒40,2011年度最好成绩,但离他自己的纪录差一点。他唯一打破的世界纪录,是跟队友们拿了4 X 100米接力金牌,顺手拿到了37秒04。&/p&&p&但2012年,他重新归来。先是在奥斯陆,100米决赛前半程,他被鲍威尔压制,但后100米,他当世无双的加速能力发了威,9秒79夺冠;伦敦奥运会100米,又是被鲍威尔领先过半程,博尔特再次加速,在70米处反超,最后9秒63。卡尔-刘易斯后,世上首个在奥运会完成男子100米卫冕的人。然后,是他以19秒32卫冕男子200米金牌,带领队友36秒84再破世界4 X100米接力纪录并夺冠——短跑三大项,奥运会卫冕。史上第一人。而且,在奥运会和世锦赛上,他已经拿到连续第七个100米+200米的冠军。&/p&&p&&br&&/p&&p&&br&&/p&&img src=&/v2-600fbb1ea36cf121c38fb5fe49b7160b_b.jpg& data-rawwidth=&964& data-rawheight=&698& class=&origin_image zh-lightbox-thumb& width=&964& data-original=&/v2-600fbb1ea36cf121c38fb5fe49b7160b_r.jpg&&&p&&br&&/p&&p&&br&&/p&&p&“我现在是个传奇。我是史上最伟大的运动员。”他说。&/p&&p&“他几乎只手使径赛从一个将死的运动,重新变成了一项明星运动。”美联社说。&/p&&p&“只要博尔特愿意,他能打破8米95的男子跳远纪录。”21年前创此纪录的跳远之神迈克-鲍威尔说。&/p&&p&&br&&/p&&p&&br&&/p&&p&他是神,他是外星人,他是星球史上最快的人类。但在2012年的辉煌之下,阴影也在散布开来:他依然比所有人都快,但已经不如2009年的自己了。100米9秒58、200米19秒19……而你知道,世界忘恩负义是很快的。&/p&&p&&br&&/p&&p&2013年来了。&/p&&p&6月,在罗马100米决赛中,博尔特输了:他跑了9秒95,而对手加斯廷-加特林跑了9秒94。赛后,在满场观众悻悻的感叹声中,博尔特摊开双手望望天:&/p&&p&“天晓得。”&/p&&p&伟大的卡尔-刘易斯认为,博尔特还需要时间检验;伟大的格林认为,博尔特的跑步技术很粗糙。然后是7月,阿萨法-鲍威尔和泰森-盖伊这两个曾经的百米飞人,同一天被查出使用了禁药。世界简直是下意识的,把头转向了博尔特:&/p&&p&既然100米飞人是如此复杂叵测的世界,博尔特,你到底吃药没有呢?&/p&&p&&br&&/p&&p&&br&&/p&&p&这就是他来到2013年莫斯科田径世锦赛前,面对的处境。在年那些不断摧毁历史的过程里,他建立起了一个人的王朝,世界习惯了他统治一切,世界要求他不断胜利,稍有差池,就意味着王朝覆灭。所以在2010-12年间,他得跑赢每一个对手,完成每一个细节,不断挑战历史。这很艰难,因为事实是,他的确不如2009年那样,每一次起跑,都会令历史纪录地动山摇了。&/p&&p&&br&&/p&&p&日,莫斯科田径世锦赛100米决赛。又一次,他在前半程落后,对手加斯廷-加特林在他身旁,占据着前排。但赛后,博尔特自己说:&/p&&p&“我并不太担心加斯廷,我知道我可以追上他。所以,我只需要跑得尽量快就可以。”&/p&&p&加特林自己也承认:&/p&&p&“这和天分无关,这更关乎在大场面时赫然升起的意志。博尔特了解这场合意味着什么。”&/p&&p&&br&&/p&&p&伟大运动员可以在关键时刻激发自己,博尔特就是如此。百米后半程,他化身为刀,劈开莫斯科的空气,阔步如飞,让加特林的细密步频显得如此短小。博尔特绝杀,9秒77,又一次,100米金牌。&/p&&p&&br&&/p&&p&然后,就是8月17日。当他呼啸着跑过弯道,进入直道时,博尔特开始减速了。因为前方一片空旷,没有对手在他眼前。在这个史上最轻松决赛里,他只跑了19秒66,比自己的19秒19世界纪录相去甚远,但已经够了。他最后的减速,简直就是对世界的调戏:&/p&&p&哪怕他跑得如此缓慢如此休闲,最后30米犹如散步,依然足以征服世界。&/p&&p&&br&&/p&&p&加上37秒36,带领牙买加完成男子4 X 100米接力的世锦赛三连冠——赛后他说:“我们来,我们见,我们征服”——他的神话已经完成:2013年世锦赛个人第三枚金牌,世锦赛史上个人第八枚金牌,追平了伟大的卡尔-刘易斯。加上他的两枚银牌,他已经是世锦赛史上最伟大运动员。如果加上北京和伦敦两届奥运会的不朽统治,他现在,真的可以昂首说:&/p&&p&“我是史上最伟大的田径运动员。”&/p&&p&&br&&/p&&p&依然会有人辩驳,但辩驳之声会越来越弱。至少,伟大如迈克尔-约翰逊都承认了:&/p&&p&“他就是史上第一。”&/p&&p&&br&&/p&&p&但是,这一切来得,并不那么容易。&/p&&p&就在最后30米闲庭信步,拿到200米冠军之夜,博尔特说:&/p&&p&“这样的日子,让那些训练中的痛苦,都显得值得了。谢谢所有在我成功路上,扮演过各类角色的人们。”&/p&&p&&br&&/p&&p&&br&&/p&&img src=&/v2-dbae79d39c4f922beb7904d_b.jpg& data-rawwidth=&640& data-rawheight=&360& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&/v2-dbae79d39c4f922beb7904d_r.jpg&&&p&&br&&/p&&p&&br&&/p&&p&之所以说百米飞人们最后的对手总是自己,只要看看博尔特面对的一切:&/p&&p&他的体格更适合跑200米而非100米。&/p&&p&2010年的背伤。&/p&&p&2011年世锦赛的抢跑。&/p&&p&以及长久以来,不断加重的冠军名声和世界期望。他胜利越多,越是无法失败。荣耀如塔,不断堆积,一旦败北,便全数垮塌。你可以想像他训练时的辛苦,他每次出场前夜的紧张,他每次蹲在起跑线上,静等发令枪时的心情。&/p&&p&一如加特林所说:&/p&&p&“这和天分无关,这更关乎在大场面时赫然升起的意志。”&/p&&p&&br&&/p&&p&或者可以说,一夜成就的纪录来自天分,但2008年以来,博尔特所走过的道路——无论是他的常胜、他不断突破世界纪录的时刻,还是他那些令人沮丧的暗影——都在告诉世界:&/p&&p&别在意他的任何对手。从长远来看,他的对手只有地球引力、自然规律以及他自己。就看着他奔跑吧,不要想别的:我们见证的,是这个星球史上,最迅疾的跑者,最伟大的田径运动员,是最接近极限的一个地球人。&/p&
昨天博尔特跑完了他最后一道,不多说了。找到一篇四年前的旧文,那锁定他成为史上第一人的时刻。 尤塞恩-博尔特,缓缓放慢了速度。这是日,离他27岁生日还有四天。他在莫斯科凉爽的夏日,他的故乡牙买加在地球另一面。他放慢了速度,在世界田径…
&img src=&/50/1bbe5ce70bd12ff28deee_b.jpg& data-rawwidth=&700& data-rawheight=&700& class=&origin_image zh-lightbox-thumb& width=&700& data-original=&/50/1bbe5ce70bd12ff28deee_r.jpg&&&p&刚到武汉的外地人,大多会被武汉人吃早餐的阵仗震惊到:一条街上摆满了早点摊子,各个摊子前都围满了食客,有人等着一碗热干面,有人盯着自己的那只面窝,还有人会捧着一块豆皮……这些标志性的早餐,意味着大武汉一天的开始。&/p&&p&与广州慢节奏的饮早茶不同,武汉人通常来不及坐下慢慢吃,手里捧着或者包里装着,匆匆就赶着上班或是上学去了。于是这热干面、豆皮、面窝就跟随着人们,穿梭在武汉三镇的大街小巷。&/p&&p&这是武汉每天一次的全城运动,叫做“过早”。&/p&&p&就算大雨让这座城市颠倒
武汉人也不能不过早。图片来源@包囧菌&/p&&img src=&/50/fecddeacbb494afe3c966d88bbd70ad0_b.jpg& data-rawwidth=&640& data-rawheight=&1138& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&/50/fecddeacbb494afe3c966d88bbd70ad0_r.jpg&&&h2&&b&早餐之都大武汉&/b&&/h2&&p&“小家妇女学豪门,睡到晨时醒梦魂;且慢梳头先过早,糍粑油饺一齐吞。”清道光三十年(公元1850年),叶调元刻印的《汉口竹枝词》第一次将吃早餐用“过早”一词表达。至此,武汉人“过早”已有166年。&/p&&p&的确,一日三餐中,武汉人最讲究过早。并且,武汉人没有在家做早点的习惯,都是在路边摊买。武汉三镇的路边摊生意非常发达,以前几乎每条街上都有摆摊的,现在管理严格了,但不少店家还是把灶台、油锅支在大门口。&/p&&p&香港美食家蔡澜曾把武汉称为“早餐之都”,在武汉过早的重要性完全可以与正餐分庭抗礼,其种类丰富程度也是全球罕见。曾经有网友微博晒28天过早不重样,武汉作家池莉也在其作品《热也好冷也好活着就好》中盘点过武汉的早点:“老通城的豆皮,一品香的一品大包,蔡林记的热干面,谈炎记的水饺,田恒启的糊汤米粉,厚生里的什锦豆腐脑,老谦记的牛肉枯炒豆丝,民生食堂的小小汤圆,五芳斋的麻蓉汤圆,同兴里的油香,顺香居的重油烧梅,民众甜食的汰汁酒,福庆和的牛肉米粉……”实际上,这仅仅只是武汉名气极大的老字号,而街头巷尾叫不出名字来的更是数不胜数。&/p&&p&&img src=&/50/a8b448f03d1cbbb130d2f5f3d932e2f1_b.jpg& data-rawwidth=&550& data-rawheight=&535& class=&origin_image zh-lightbox-thumb& width=&550& data-original=&/50/a8b448f03d1cbbb130d2f5f3d932e2f1_r.jpg&&每天早晨,武汉街头都是这样一幅光景:满大街的早点摊,满大街买早点的人,满大街边走边吃的人,这是武汉最别具一格的市井风俗。&/p&&br&&p&武汉人的本事是,不光面窝、烧梅这些干的可以边走边吃,就连热干面、牛肉面也能一边走路一边朝口里扒拉,而且速度极快,三下五除二,一碗面就下肚的。当然,这种习惯也造成意外状况频发,比如公交车或者地铁上,一言不合,一碗面就扣到对方身上了。&/p&&h2&&b&过早到底有多少种选择?&/b&&/h2&&p&与广式早茶中的点心有明确的分门别类不同,武汉人过早的各种选择显得非常凌乱,没有一个严格的体系划分。三匠厨房(ID:sanjiangfood)整理了一下,将武汉的早餐大致分为四个系列——&/p&&p&粉面系:热干面、牛肉面、牛肉粉、糊汤粉、豆丝&/p&&p&煎炸系:豆皮、面窝、苕面窝、汽水粑粑、煎包、糯米鸡、欢喜坨、油香&/p&&p&蒸食系:烧梅、糯米包油条、汤包&/p&&p&饮品系:糊米酒、蛋酒&/p&&p&三匠厨房(ID:sanjiangfood)先来说说粉面系:&/p&&img src=&/50/ff2beb5ff46cd_b.jpg& data-rawwidth=&750& data-rawheight=&528& class=&origin_image zh-lightbox-thumb& width=&750& data-original=&/50/ff2beb5ff46cd_r.jpg&&&p&&b&热干面&/b&&/p&&p&热干面是武汉过早的招牌——最出名也最具特色。碱面在开水中断生,捞起来沥干水,淋上麻油拌匀,铺开放凉待用。过早时,将晾凉的面条抓上一把,放进一只长柄尖底圆口的笊篱中,滚水中将面条烫熟,沥干水后装入碗中,随即拿起一只长柄汤勺,放入盐、酱油、辣萝卜丁、葱末、辣椒、胡椒、味精、白糖等等,讲究的还会放上一勺卤水,最后淋上芝麻酱,这一碗热干面就大功告成了。一碗热干面的制作时间,往往也就两三分钟。&/p&&p&&img src=&/50/9cf084ca27ded5f132d9_b.jpg& data-rawwidth=&1024& data-rawheight=&682& class=&origin_image zh-lightbox-thumb& width=&1024& data-original=&/50/9cf084ca27ded5f132d9_r.jpg&&趁着热气将热干面迅速拌开,芝麻酱的浓香和面条本身的香气混合在一起,立刻就勾起了人的食欲。热干面的核心就是芝麻酱,好芝麻足以令人齿颊留香,不过现在很多商家为了节约成本,用花生酱替代芝麻酱,或者将两者混合,热干面的味道打了不少折扣。&/p&&p&而说到做热干面做得最好的摊子,蔡林记名声在外,不少游客到武汉也点名要吃蔡林记,但近年来伴随着连锁扩张,蔡林记的味道有所下降,价格却不断上涨。《舌尖上的中国》曾选择拍摄了位于汉口江汉二路的田记面馆,而“天天热干面”和“大胡子热干面”也分别是汉口和武昌热干面的杰出代表。&/p&&img src=&/50/5f766bd54e0a45e4bea055e99f83df9e_b.jpg& data-rawwidth=&640& data-rawheight=&425& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&/50/5f766bd54e0a45e4bea055e99f83df9e_r.jpg&&&p&&b&牛肉面·牛肉粉&/b&&/p&&p&与兰州牛肉面讲究“一清、二百、三红、四黄、五绿”不同,武汉的牛肉是卤出来的,卤牛肉的汤汁,辣中带着丝丝甜味,味道很独特。&/p&&p&武汉的牛肉粉面也是清真口味,汉口最早的牛肉面馆最早都是回民经营,汉口六渡桥、三民路一带曾有回民聚居区,池莉也曾特别提到过汉口福庆和的牛肉米粉,不过如今,福庆和已经不复存在了。&/p&&p&考验一家牛肉粉面馆好不好的标准,除了面汤的味道足不足,还有就是米粉夹起来会不会很快就断了。&/p&&p&&img src=&/50/8b23e70e78c11e61f237_b.jpg& data-rawwidth=&653& data-rawheight=&490& class=&origin_image zh-lightbox-thumb& width=&653& data-original=&/50/8b23e70e78c11e61f237_r.jpg&&&b&糊汤粉&/b&&/p&&p&糊汤粉是武汉的特色小吃,充满鱼米之乡的特点。&/p&&p&武汉三镇河湖众多,每天打下来的鱼虾不少,尤其是小鱼小虾,早年间没有储存条件,如果没有卖掉,留到第二天就臭了,于是有人想到了用它来做早点。&/p&&p&小鱼虾加水熬烂成汤,撇去残渣,留下粘稠如米汤的浓汤。米粉下锅焯一下捞出放到碗里,在上面浇一大勺浓汤,然后撒盐、胡椒、姜末、葱花,原汁原色原味,口感浓郁厚重。&/p&&p&&img src=&/50/c237d67ee5b3b62a945123dc_b.jpg& data-rawwidth=&400& data-rawheight=&224& class=&content_image& width=&400&&过早的时候,糊汤粉要就着油条吃,也有将油条蘸着糊汤吃的,还有将油条撕成小段,泡在汤里吃的,不过怎么样,都风味十足。&/p&&p&&b&&img src=&/50/05e4fa22dc06b89777a7_b.jpg& data-rawwidth=&690& data-rawheight=&517& class=&origin_image zh-lightbox-thumb& width=&690& data-original=&/50/05e4fa22dc06b89777a7_r.jpg&&豆丝&/b&&/p&&p&豆丝是武汉市黄陂区的特产,用绿豆加米磨成浆后摊皮切丝晾干而成,吃的时候加入牛肉汤或其它配料烹煮。这种大米和绿豆混合食物,其中的绿豆分量若是少了,做出来的豆丝口感会差很多。&/p&&p&吃主儿唐鲁孙曾在文章中写过:“武昌的牛肉豆丝,远近知名。”&/p&&p&粉面系说完了,再来说说过早的煎炸系列。&/p&&p&&img src=&/50/603c62b84d54eda07f1ced673e341aa2_b.jpg& data-rawwidth=&350& data-rawheight=&259& class=&content_image& width=&350&&&b&豆皮&/b&&/p&&p&在三匠厨房(ID:sanjiangfood)的心目中,豆皮的地位甚至是高过热干面的。&/p&&p&顾名思义,豆皮与豆子有关。绿豆和大米按一定比例掺合,浸泡数小时后磨浆待用。一口大铁锅烧热后倒油,然后舀米浆入锅,摊成一张薄薄的大圆片。将鸡蛋打碎摊在米浆片上,抹匀后翻面,这时呈现油亮的金黄色。&/p&&p&&img src=&/50/28ecdf55e95fba21d612_b.jpg& data-rawwidth=&600& data-rawheight=&399& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&/50/28ecdf55e95fba21d612_r.jpg&&随后,将蒸熟的糯米、煮熟的干香菇丁、炒熟的猪肉或者牛肉丁、香干丁、姜末等拌匀,铺在米浆片上,撒上胡椒、盐以及大把的葱花,然后来一个大翻面,淋上一勺油、撒上一勺水,盖上锅盖焖两分钟,一大锅金黄的豆皮就做好了。小铁铲将豆皮按格子状划开,每份豆皮基本就两三个小方块,盛入小碗中,那一双筷子,就可以大快朵颐了。&/p&&p&&img src=&/50/e84bb850592fec_b.jpg& data-rawwidth=&600& data-rawheight=&399& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&/50/e84bb850592fec_r.jpg&&豆皮做得好,油的用量是最关键的,油太多会失去香嫩酥脆的口感,油少了豆皮表面就会变得干巴巴。&/p&&p&老通城是武汉名气最大的豆皮餐馆,和无数的老字号一样,都是有了名气之后公私合营保留了店铺的字号。现在武汉名气最大的王师傅豆皮馆创始人曾是老通城的收银员,吸收了不少老通城的豆皮师傅,开了这家豆皮馆。&/p&&p&&b&&img src=&/50/8ff70e6b53d65e0ebfc93d_b.jpg& data-rawwidth=&581& data-rawheight=&321& class=&origin_image zh-lightbox-thumb& width=&581& data-original=&/50/8ff70e6b53d65e0ebfc93d_r.jpg&&面窝&/b&&/p&&p&面窝是地道的武汉特产,虽然叫面窝,却不是面食,它是由大米、黄豆混合打成浆,再加入适量葱花、盐调味,炸制而成。看起来简单,做起来可一点都不容易。&/p&&p&大米和黄豆的比例很重要,黄豆少了,则面窝的味道不香;黄豆多了,面窝会很油,所以也不是黄豆越多越好。&/p&&p&&img src=&/50/7ce6f4ce250a9ca29d417_b.jpg& data-rawwidth=&640& data-rawheight=&477& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&/50/7ce6f4ce250a9ca29d417_r.jpg&&炸面窝的勺子也很有特色,这种勺子四周下凹,中间上凸。炸面窝时,往一边舀一勺米浆,在中间一刮,然后撒上芝麻,下锅。面窝凹处的米浆多,炸出来的软糯;凸处米浆少,炸出来的香脆。一种食物,兼顾了两种口感。&/p&&p&&b&&img src=&/50/4364ede9ab14ebc87a6d_b.jpg& data-rawwidth=&400& data-rawheight=&300& class=&content_image& width=&400&&苕面窝&/b&&/p&&p&苕在武汉话中就是红薯,苕面窝也就是红薯做的面窝。&/p&&p&把红薯洗净去皮,切成小丁,放入米浆中。炸制时舀入炸面窝的勺子,拍平下油锅。苕面窝的特点是外焦脆内软糯,滋味咸中带甜。&/p&&p&无论是面窝还是苕面窝,既可以单独过早,也可以成为热干面、米粉或是汤面的搭配食品。&/p&&p&&img src=&/50/37b7597fae5cba8cecbef86_b.jpg& data-rawwidth=&580& data-rawheight=&315& class=&origin_image zh-lightbox-thumb& width=&580& data-original=&/50/37b7597fae5cba8cecbef86_r.jpg&&&b&汽水粑粑&/b&&/p&&p&汽水粑粑也就是米粑粑,不仅武汉有,湖北各地也都有。&/p&&p&这是一种纯大米食品,用大米磨成浆后,加醪糟轻微发酵,这样制作出来的粑粑入口有软绵绵的甜味,回味却有一丝酸,有一种立体的口感。&/p&&p&&img src=&/50/699eff856b3b6_b.jpg& data-rawwidth=&549& data-rawheight=&344& class=&origin_image zh-lightbox-thumb& width=&549& data-original=&/50/699eff856b3b6_r.jpg&&制作汽水粑粑的铁锅很大,直径要有一米到一米半,铁锅中央有一个凹坑,四周是平的。锅烧热后就要往锅上加米浆,两坨米浆要连在一起,这样才算是一个完整的米粑粑。加好米浆后,往中间的凹坑处加水,盖上锅盖再加大火。这样,下面的米浆很快会煎出一个硬壳,而凹坑里的水会产生大量蒸汽,把米粑粑的另一面蒸熟。汽水粑粑中的“汽水”指的就是这个。&/p&&p&这样制成的米粑粑,一面像脆饼,而另一面则十分软糯如同发糕。武汉没有专门制作汽水粑粑的店铺,街边小摊随处可见。有的人将两片汽水粑粑中夹上一个面窝,并把它叫做“武汉三明治”。&/p&&p&&img src=&/50/957ed107f888d7bf6aa992cf_b.jpg& data-rawwidth=&640& data-rawheight=&424& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&/50/957ed107f888d7bf6aa992cf_r.jpg&&&b&煎包&/b&&/p&&p&煎包并不算武汉独有的特色小吃,而且论名气,苏沪一带的生煎要更出名一点。但煎包在武汉过早界的地位并不低,今天遍布武汉的三镇民生甜食馆,必不可少的几样小吃就是热干面、豆皮、糊米酒和煎包。&/p&&p&武汉的煎包相比上海生煎要小一些,而且不同于上海和苏州蘸醋的吃法,武汉的煎包是蘸酱吃的,每一家的酱口味又不尽相同,三镇民生甜食馆的煎包抢手,很大原因也在于美味的蘸酱。&/p&&p&&img src=&/50/5bd74c646f5ac98e9631_b.jpg& data-rawwidth=&402& data-rawheight=&220& class=&content_image& width=&402&&&b&糯米鸡&/b&&/p&&p&广式茶点里有一道荷叶糯米鸡,然而武汉的糯米鸡和它完全是不同的东西,因为武汉糯米鸡里并没有鸡肉。&/p&&p&准确来说,这种小吃应该叫糯米团,裹着五花肉、香菇、笋丁、香干丁的糯米,再用面糊包裹下锅炸至金黄,外层焦脆,里边软糯咸香。至于为什么叫糯米鸡已不可考,有人认为炸好后的糯米鸡外表金黄,表面凹凸不平,形如鸡皮,所以就叫糯米鸡。&/p&&p&糯米鸡是武汉过早最常见的小吃之一,任何有油炸点心的摊子都会有糯米鸡供应。&/p&&p&&img src=&/50/5cea442b1b29c998e0fe74_b.jpg& data-rawwidth=&750& data-rawheight=&541& class=&origin_image zh-lightbox-thumb& width=&750& data-original=&/50/5cea442b1b29c998e0fe74_r.jpg&&&b&欢喜坨&/b&&/p&&p&四川把这种食物叫做麻团,而欢喜坨比麻团大不少,而且里边是空心的,一口咬下去,外脆里嫩。&/p&&p&欢喜坨在武汉也有百余年的历史了,以前和麻团差不多大小,后来才逐渐变成现在的样子。&/p&&p&制作欢喜坨要把糯米磨成米浆,然后晾干,再将晾干的粉团搓成粉状,加入红糖、面粉混合,加水慢慢搓成圆形,裹上芝麻后入油锅炸。&/p&&p&&img src=&/50/0dd392ec1e033d699e6b68_b.jpg& data-rawwidth=&526& data-rawheight=&374& class=&origin_image zh-lightbox-thumb& width=&526& data-original=&/50/0dd392ec1e033d699e6b68_r.jpg&&&b&油香&/b&&/p&&p&油香这东西现在在武汉已经很难找了,它是一种炸制的小圆饼,里边加上各种馅料,武汉人最常吃的是夹糖心的油饼。&/p&&p&接下来再看蒸食系:&/p&&p&&img src=&/50/ffaf266dbcf8_b.jpg& data-rawwidth=&498& data-rawheight=&309& class=&origin_image zh-lightbox-thumb& width=&498& data-original=&/50/ffaf266dbcf8_r.jpg&&&b&烧梅&/b&&/p&&p&烧卖全国都有,广式茶点里是蛋皮肉馅,里边裹着虾仁,北京的烧卖是面皮糯米馅,里边也会有香菇和猪肉。武汉的烧梅与北京的更接近,但是口味却要重不少。&/p&&p&叫烧梅是因为皮使用走槌擀出梅花边,蒸出来如同一朵朵梅花而得名。烧梅的皮和饺子皮一样,要周边薄中间厚,蒸出来才有晶莹剔透的感觉。将蒸好的糯米饭加香菇、肉搅拌在一起,加白胡椒拌成馅,包好后上笼屉猛火蒸熟,香气扑鼻,口感嫩滑。&/p&&p&&img src=&/50/f1c87a8a78ccfaea3263362_b.jpg& data-rawwidth=&335& data-rawheight=&221& class=&content_image& width=&335&&武汉烧梅的最大特点就是油大味重,而武汉很多早点摊子也有一个特别标识,白纸糊一块牌子,上书四个大字:“重油烧梅”。武汉人甚至还将油饼和烧梅两种重油食物组合在一起,成为极其耐饿的一种搭配。&/p&&p&&img src=&/50/50d67d7842e5fcdbb102a5_b.jpg& data-rawwidth=&400& data-rawheight=&298& class=&content_image& width=&400&&&b&糯米包油条&/b&&/p&&p&糯米包油条是江南特色小吃,将糯米蒸熟后,平铺撒上黑芝麻,再将油条放在糯米饭上,可以根据个人喜好放上榨菜、火腿等,然后用糯米饭将油条包住,即可食用。&/p&&p&&img src=&/50/c1d736a122fce165cde1d6_b.jpg& data-rawwidth=&518& data-rawheight=&700& class=&origin_image zh-lightbox-thumb& width=&518& data-original=&/50/c1d736a122fce165cde1d6_r.jpg&&&b&汤包&/b&&/p&&p&汤包并不是武汉特有的,但也孕育出了一个名店——四季美汤包。&/p&&p&说完了吃的,再来看看喝的吧:&/p&&p&&img src=&/50/86ceb420_b.jpg& data-rawwidth=&328& data-rawheight=&220& class=&content_image& width=&328&&&b&糊米酒&/b&&/p&&p&热干面搭配糊米酒,面窝搭配糊米酒,烧梅搭配糊米酒……在过早的时候,糊米酒几乎能搭配一切。&/p&&p&池莉在小说《你以为你是谁》中是这样描述这款武汉特色甜食的:它是武汉市历史悠久家喻户晓老少咸宜的一种甜食,由精细的糯米粉和醪糟做成的糊汤,晶莹糯滑,上面撒几粒糖桂花,因为价廉物美,它成为了大众食品。&/p&&p&米酒、小汤圆、红枣是这个小吃里不可缺少的主角。虽然看起来简单,但做起来也很有讲究:起锅前徐徐勾芡,糯米粉要顺着锅边推下去,朝着一个方向顺势搅拌。醪糟是极为重要的,下多了酒气太重,下少了米酒不香。&/p&&p&&b&&img src=&/50/367c6a3f0c3db262f06b_b.jpg& data-rawwidth=&600& data-rawheight=&450& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&/50/367c6a3f0c3db262f06b_r.jpg&&蛋酒&/b&&/p&&p&蛋酒也是过早的饮料,简单易做。一个鸡蛋打散备用,将锅里的水烧开,将开水冲入鸡蛋碗中,瞬间变成蛋花,然后再往碗中加米酒和糖即可。在武汉潮湿阴冷的冬天,蛋酒是过早必备。&/p&&p&除了三匠厨房(ID:sanjiangfood)说到的这些,在武汉过早还可以选择:锅贴、糍粑、水饺、翻饺、烫饭、豆腐脑……实在是说不完。&/p&&h2&&b&&img src=&/50/cbdaea3f76a_b.jpg& data-rawwidth=&600& data-rawheight=&399& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&/50/cbdaea3f76a_r.jpg&&为什么武汉会形成这么发达的过早文化?&/b&&/h2&&p&这与武汉近代以来的大码头和大商埠氛围有关。早晨,人们要匆匆忙忙赶到集市或是上工,自然来不及在家吃早餐,就在路上买着吃。长期积累下来,出门过早变成了一种习惯,再演变成为一种习俗。&/p&&p&武汉过早的第一个特点就是快,早餐做的快,一碗热干面,前后两三分钟就能让食客端着走人;食客吃的也快,边走边吃,三下五除二,眨眼功夫就下了肚。&/p&&p&武汉过早的第二个特点是重油,无论是热干面也好,还是各种炸制食物,就算是烧梅也是重油。&/p&&p&这与武汉的码头文化息息相关,码头工人是体力活,工人们在短时间解决早餐的同时还要获取高热量,炸制食物、重油食品自然是最优的选择。&/p&&p&武汉过早虽然快,但也讲究的很:热干面的芝麻酱要用小磨香油调成,面窝必须撒黑芝麻和小葱花,豆丝必须用绿豆和稻米一起磨浆,比例还不能不对……虽然是几分钟就解决的早餐,可是也饱含对老手艺的坚持。&/p&&p&同样是吃早餐,为什么广州讲究“品、叹”,而武汉却讲究“快”呢?&/p&&p&三匠厨房(ID:sanjiangfood)曾在&a href=&/p/& class=&internal&&《为什么早茶出了粤港就没感觉了?》&/a&介绍了广东的早茶文化,广东早茶的兴起是建立在商业文明上的,饮早茶不可避免的要承担社交、商业功能,甚至还有一定的休闲功能;而武汉的过早文化,则是起源于底层的码头工人等阶层,唯一的要求就是速战速决并且热量高。&/p&&p&一个地方的饮食习惯与它的物产和城市结构息息相关,并且一旦积年累月,不是一天两天就能改变的。&/p&&p&(本文图片来源于网络)&/p&&p&&b&欢迎搜索微信公众号(ID:sanjiangfood)关注我们 。&/b&&/p&
刚到武汉的外地人,大多会被武汉人吃早餐的阵仗震惊到:一条街上摆满了早点摊子,各个摊子前都围满了食客,有人等着一碗热干面,有人盯着自己的那只面窝,还有人会捧着一块豆皮……这些标志性的早餐,意味着大武汉一天的开始。与广州慢节奏的饮早茶不同,武…
这个问题,我居然还认认真真的研究过。我也是服了自己这么无聊。。。&br&&br&先说一下问题,过早,过,经过之意,早,早晨。过早就是早晨必做的事儿。就酱。&br&&br&文化对于一个地方是一种传承,一种共性,对于每一个武汉人和每一个生活在武汉的人来说,它渗透在你的生命之中,就好像我就算远离家乡,还是想吃碗炮仗面,还是想啃个手抓羊肉一样。&br&&br&武汉,在大明朱桢那会儿只能说是个码头。但是地理位置真心屌。&br&&br&首先,是长江和汉江的通航条件真棒。从重庆到上海,武汉是一个很重要的途径点。&br&为什么?因为江汉平原是非常重要的粮食产地啊。而农业社会最重要的是什么?大声的告诉我!&br&&br&其次,由于码头兴盛,买卖人就聚集在武汉了。尤其是汉口江汉关附近这个天然码头。也就是租界区。加上后来开关贸易之后,武汉的码头地位更是水涨船高。&br&&br&这跟过早有什么关系呢?&br&这就要说到我们的传统饮食习惯了。&br&中国人讲究一日之计在于晨,早饭要吃好是一个基本要求。&br&为什么呢?农业社会!&br&农民一般早出晚归,早餐之后就要投入繁重的劳动中了,而午饭一般是在田间地头啃两个馒头弄碗水搞定。所以早餐一定要提供一整天的营养和热量。&br&而码头同样如此。船来了,工人们和货主都得在最短时间内完成装卸工作。越快,工人挣得越多。毕竟这是个计件的活。&br&那么,对他们来说,早餐重要吧?&br&&br&好,武汉的过早主要分几个大的品种,热干面系列,牛肉面系列,豆皮,油炸系列。&br&有没有发现这里面有个共同之处?&br&快!&br&做的快!吃得快!&br&还有呢?&br&高热量!&br&所以,成天琢磨怎么吃好过早的小伙伴,如果不搬砖肯定长得快!&br&&br&单拿热干面来说说吧。古法热干面,没那么多讲究,就面,芝麻酱!注意,是芝麻酱而不是花生酱!用花生酱兑芝麻酱的都是奸商。&br&&br&一碗热干面,从店主手里到你手里只需要平均三分钟,我综合了身边同志们的消灭速度,大约不用十分钟,就能吃完,盒子别乱丢。&br&&br&然后你就能去挤地铁,挤公交,投入广阔天地了。&br&&br&那么。&br&这种饮食习惯一旦流传下来,就变成了现在这样子。&br&&br&有人说,武汉和广州都是码头,为何他们有时间早茶我们却要拼了命吃热干面?&br&废话。广州人人天天都早茶?&br&以前那可是上流社会的事儿。像我们这种搬麻袋扛大包的吃个屁。&br&&br&一个地方的饮食习惯基本和这个地方的产出和普遍作息息息相关。而武汉,最合适的是热干面,是现在的过早文化,那就这样下去吧。&br&&br&就酱。&br&&img src=&/v2-fcdd84e0a005d15a80ba6d_b.jpg& data-rawwidth=&1044& data-rawheight=&2091& class=&origin_image zh-lightbox-thumb& width=&1044& data-original=&/v2-fcdd84e0a005d15a80ba6d_r.jpg&&
这个问题,我居然还认认真真的研究过。我也是服了自己这么无聊。。。 先说一下问题,过早,过,经过之意,早,早晨。过早就是早晨必做的事儿。就酱。 文化对于一个地方是一种传承,一种共性,对于每一个武汉人和每一个生活在武汉的人来说,它渗透在你的生命…
&img src=&/50/v2-cef253e69abbaf823b03b_b.jpg& data-rawwidth=&1400& data-rawheight=&1069& class=&origin_image zh-lightbox-thumb& width=&1400& data-original=&/50/v2-cef253e69abbaf823b03b_r.jpg&&&p&上期的&a href=&/p/& class=&internal&&《画师拾遗(二)》&/a&讲述的大都是熟妇们所展现的迷人一面;不过话说回来,同样是年上者所带来的魅力,御姐的美似乎更加能为大众所接受,更加雅俗共赏一些。丰满却不显累赘,成熟但不失天真,睿智而不忘感性,这样的“女神”毫无疑问是绝大部分人所梦寐以求的对象。&/p&&p&在成人漫画的领域当中,把御姐作为主角的画师实在是不计其数。鉴于篇幅和能力有限,这里不可能一一列举,只能略谈一些我自己比较中意的作者。才疏学浅,姑妄言之,还请各位多多指教。&/p&&p&1.ドリルムラタ.&br&从第一次看到老师的单行本开始,ドリルムラタ就给我留下了非常深刻的印象。作为一名老牌的画师,ドリルムラタ可以说是历久弥新:不仅在画风上颇有造诣,人物放在现在看也不显得过时;作品故事的剧情也是非常有趣,不会有单纯废萌的情况发生。值得一提的是,老师甚至还曾以粉丝来信中叙述的故事为素材,绘制了一系列诱人的短篇收录在单行本中。这种别样的尊重读者的方法,非常值得称道。&/p&&p&ドリルムラタ的画风简约而不简单。老师能通过寥寥数笔让一位风情万种的角色跃然纸上,虽然刻画不多,但人物的一颦一簇,言行举止都能被展现的淋漓尽致。&/p&&img src=&/50/v2-dade02ae97f5c2b2da667cb_b.jpg& data-rawwidth=&780& data-rawheight=&1159& class=&origin_image zh-lightbox-thumb& width=&780& data-original=&/50/v2-dade02ae97f5c2b2da667cb_r.jpg&&&p&(△:ドリルムラタ相当喜欢画职场女性,作品几乎涵盖了所有种类的工作:OL,护士,教师,老板娘……而在给这些女性“穿”上各种各样的制服时,老师都能最大限度地展现出她们的身材之美:不论是傲人上围、纤纤细腰,还是修长双腿,都在制服的包裹之下散发着浓浓的雌性荷尔蒙,令人无法自拔。)&/p&&p&2.オクモト悠太.&/p&&p&不管是看悠太老师的哪一本作品,映入读者眼帘的必然是一对硕大无比的欧派。有人用“舒服的巨乳,工整的剧情。”来评价老师,这应该是相当中肯的。オクモト悠太可以说就是当下主流画师的一个典型:简单的剧情,激萌的画风,还有非常夸张的肉感的身体。外加妹子们弱受的性格和纯爱的故事,虽说看完之后不太能带给人特别深刻的印象,但作为劳累一天之后的心灵的慰藉是再好不过了。&/p&&p&オクモト悠太的作画非常的细腻,虽然画风本身没有太大特点,但每张图都非常精致,不论是人物表情动作还是背景服饰都有仔细的去描绘。同样是给杂志作画的画师,老师的兢兢业业,一丝不苟和某些终年休刊的漫画家形成了鲜明的对比。&/p&&img src=&/50/v2-5d340ff9fac8b_b.jpg& data-rawwidth=&851& data-rawheight=&1200& class=&origin_image zh-lightbox-thumb& width=&851& data-original=&/50/v2-5d340ff9fac8b_r.jpg&&&p&(△:オクモト悠太对人物衣着的绘制是极尽华丽,画一些服饰(比如BRA,吊带袜之类的)上的花纹,蕾丝等装饰时更是细致入微,简直可以为设计师们拿来做范本(笑)。即使是一些相对简单的搭配(OL西装或者吊带背心+牛仔短裤一类),老师也相当用心,处理衣服褶皱也力求逼真,令人钦佩。)&/p&&p&3.超時空要塞カチューシャ (電気将軍).&/p&&p&虽然名字中有“超時空要塞”几个字,但事实上老师根本没有出过有关这部作品的同人(想为鮟鱇+1s的请走别处),对大多数人来说,超時空要塞カチューシャ (電気将軍)给他们留下的印象应该是两个系列的作品:《おとまり会》和海贼王同人。扎实的基本功,脑洞大开的剧情(以调教为主)和极高的还原度让老师的作品毫无疑问的成为了18X漫画中的精品。&/p&&p&严格来说,超時空要塞カチューシャ的画风并没有过多独特的地方,“还原度高”应该是老师作品的最大特色。很多漫画原作中角色突出的特点在作品中都有体现,除此之外,老师还绘制了和原作非常相似的背景,令人心悦诚服。&/p&&img src=&/50/v2-e21e091dcbbb4_b.jpg& data-rawwidth=&780& data-rawheight=&1102& class=&origin_image zh-lightbox-thumb& width=&780& data-original=&/50/v2-e21e091dcbbb4_r.jpg&&&p&(△:老师的海贼系列同人真是非常出色,很好的再现了人物的各种特征:还原的衣着,各自的神态,夸张的身体……即使是自创的短篇,老师也能非常把人物画的非常诱人,修长双腿和丰满的上围真是让人欲罢不能。)&/p&&p&4.イソラシ.&/p&&p&毫不夸张的说,イソラシ是我所知道的画师中最为有趣的一位。这种有趣还和其他的画师不太一样,不是指剧情少见构思精妙,而是非常直白的搞笑和无厘头的那一种。用“脑洞大开”来形容イソラシ可以说是恰如其分,老师的很多漫画构思真是让人叹为观止:在普通的职场和校园背景之下,把许多只能在梦想中出现的职位和故事通过单行本的方式展现出来,既让人忍俊不禁,也有相当高的实用性。&/p&&p&イソラシ对人物的画风很好的继承了其漫画剧情的无厘头特性,不论是表情还是动作都是格外的夸张。不过除了搞笑的元素之外,老师对女性诱惑的神情的刻画也是十分到位,女主的眼睛特别传神。&/p&&img src=&/50/v2-d956ad69c3c27c69b3adffa_b.jpg& data-rawwidth=&780& data-rawheight=&1154& class=&origin_image zh-lightbox-thumb& width=&780& data-original=&/50/v2-d956ad69c3c27c69b3adffa_r.jpg&&&p&(△:虽然画的可能并不是最精细的,但老师笔下的人物(尤其是御姐类型的主角)都有着非凡的气质,不论在什么时候都带着游刃有余的优雅,非常吸引人。)&/p&&p&5.おたべ★ダイナマイツ(おたべさくら).&/p&&p&我最早是通过一个系列的舰娘同人知道おたべ★ダイナマイツ(おたべさくら)的名字的。老师非常喜欢授乳手コ●元素,这个主题在单行本/同人志当中并不算特别多,但却是Adult Vedio中的常见题材,有大批的粉丝。而各种各样、知性温柔的航母大姐姐又和这种洗面奶的温馨治愈剧情相得益彰,使得老师的作品有着相当高的实用性。&/p&&p&おたべ★ダイナマイツ(おたべさくら)的基本功非常扎实,对人物的上色更是出神入化,精妙绝伦,充分展现了肌肤吹弹可破的光滑和紧致丰腴的肉感。虽然没有过多的特色,但绝不会是千人一面而让人产生审美疲劳。&/p&&img src=&/50/v2-b71bb8a095ece990c7294e4a_b.jpg& data-rawwidth=&780& data-rawheight=&1112& class=&origin_image zh-lightbox-thumb& width=&780& data-original=&/50/v2-b71bb8a095ece990c7294e4a_r.jpg&&&p&(△:老师对阴影的把控真是非常精妙,画面很有层次感。外加这样扎实的画风,老师的作品有时会让我想到深崎暮人(笑)。)&/p&&p&6.Nanao.&/p&&p&依我愚见,“超乎想象的精致”是对Nanao最为中肯的评价。看老师的本子,有时候更像是在看CG,虽然画与画之间的动作性,流畅性不足,但每一页都可以称得上是一幅精美的艺术品。更值得一提的是,老师的大部分作品都是全彩,登峰造极的上色更加突出了这个特性。之所以还没有达到众人皆知的高度,可能是因为还缺少那么一点运气吧。&/p&&p&Nanao的画风没的说,老师笔下的女性都有着极为成熟的风韵。理智冷静而又不缺乏温柔和主动,这简直是每位少年都曾经有过的最美好的梦想。&/p&&img src=&/50/v2-ecc8cb0ea6cf852a9b1bfe1f7243fcef_b.jpg& data-rawwidth=&780& data-rawheight=&1128& class=&origin_image zh-lightbox-thumb& width=&780& data-original=&/50/v2-ecc8cb0ea6cf852a9b1bfe1f7243fcef_r.jpg&&&p&(△:老师的作品画面中经常会有诸如这样的占据大部分版面的人物肖像,虽然这样的排版会使得故事篇幅有限,人物缺乏动感,画面衔接有时稍显生硬,但单就画技来看,每个人物都是媚态十足,都展现了老师极为高超的绘画技巧,令人赞叹不已。)&/p&&p&&br&&/p&&p&事实上,高人大神,远不止此。主攻御姐的大神画师,可以说是数不胜数;而且可以并不为过地说,在绘制各种各样不同主题单行本/同人志的画师当中,这一类漫画作者的平均水平应该相对较高的。&/p&
上期的讲述的大都是熟妇们所展现的迷人一面;不过话说回来,同样是年上者所带来的魅力,御姐的美似乎更加能为大众所接受,更加雅俗共赏一些。丰满却不显累赘,成熟但不失天真,睿智而不忘感性,这样的“女神”毫无疑问是绝大部分人所梦寐…
&img src=&/50/v2-1eb02deea7b93eaa960ff_b.jpg& data-rawwidth=&3648& data-rawheight=&2736& class=&origin_image zh-lightbox-thumb& width=&3648& data-original=&/50/v2-1eb02deea7b93eaa960ff_r.jpg&&&blockquote&&b&简评:&/b&对于这个经典的问题,本文将不再局限于平常的回答,而是想办法回答地更具体,不遗漏任何细节。&a href=&/?target=https%3A///skyline75489/what-happens-when-zh_CN/commit/0d39aba32b8f493a4a& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&根据「What-happens-when」英文原版,补充修订了部分内容的翻译,去掉了一些多余的章节标题。&i class=&icon-external&&&/i&&/a& &br&&b&注:&/b&英文原版是某个不存在的网站,故更换为 &a href=&/?target=http%3A///& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&&i class=&icon-external&&&/i&&/a&,大家理解原理就可以了,不要 diss 我,love and peace :)&/blockquote&&h2&&b&目录&/b&&/h2&&ul&&li&按下「g」键&/li&&li&回车键按下&/li&&li&产生中断(非 USB 键盘)&/li&&li&(Windows) 一个 WM_KEYDOWN 消息被发往应用程序&/li&&li&(Mac OS X) 一个 KeyDown NSEvent被发往应用程序&/li&&li&(GNU/Linux)Xorg 服务器监听键码值&/li&&li&解析 URL&/li&&li&输入的是 URL 还是搜索的关键字?&/li&&li&转换非 ASCII 的 Unicode 字符&/li&&li&检查 HSTS 列表&/li&&li&DNS 查询&/li&&li&ARP 过程&/li&&li&使用套接字&/li&&li&TLS 握手&/li&&li&HTTP 协议&/li&&li&HTTP 服务器请求处理&/li&&li&浏览器背后的故事&/li&&li&浏览器&/li&&li&HTML 解析&/li&&li&CSS 解析&/li&&li&页面渲染&/li&&li&GPU 渲染&/li&&li&Window Server&/li&&li&后期渲染与用户引发的处理&/li&&/ul&&h2&&b&按下「g」键&/b&&/h2&&p&接下来的内容介绍了物理键盘和系统中断的工作原理,但是有一部分内容没有涉及。&/p&&p&当你按下「g」键,浏览器接收到这个消息之后,会触发自动完成机制。浏览器根据自己的算法,以及你是否处于隐私浏览模式,会在浏览器的地址框下方给出输入建议。大部分算法会优先考虑根据你的搜索历史和书签等内容给出建议。你打算输入「&a href=&/?target=http%3A//& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&」,因此给出的建议并不匹配。但是输入过程中仍然有大量的代码在后台运行,你的每一次按键都会使得给出的建议更加准确。甚至有可能在你输入之前,浏览器就将 「&a href=&/?target=http%3A//& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&」建议给你。&/p&&h2&&b&回车键按下&/b&&/h2&&p&为了从零开始,我们选择键盘上的回车键被按到最低处作为起点。在这个时刻,一个专用于回车键的电流回路被直接地或者通过电容器间接地闭合了,使得少量的电流进入了键盘的逻辑电路系统。&/p&&p&这个系统会扫描每个键的状态,对于按键开关的电位弹跳变化进行噪音消除 (debounce),并将其转化为键盘码值。在这里,回车的码值是13。键盘控制器在得到码值之后,将其编码,用于之后的传输。现在这个传输过程几乎都是通过通用串行总线 (USB) 或者蓝牙 (Bluetooth) 来进行的,以前是通过 PS/2 或者 ADB 连接进行。&/p&&p&&b&USB 键盘:&/b&&/p&&ul&&li&键盘的 USB 元件通过计算机上的 USB 接口与 USB 控制器相连接,USB 接口中的第一号针为它提供了 5V 的电压&/li&&li&键码值存储在键盘内部电路一个叫做「endpoint」的寄存器内&/li&&li&USB 控制器大概每隔 10ms 便查询一次「endpoint」以得到存储的键码值数据,这个最短时间间隔由键盘提供&/li&&li&键值码值通过 USB 串行接口引擎被转换成一个或者多个遵循低层 USB 协议的 USB 数据包&/li&&li&这些数据包通过 D+ 针或者 D- 针(中间的两个针),以最高 1.5Mb/s 的速度从键盘传输至计算机。速度限制是因为人机交互设备总是被声明成「低速设备」(USB 2.0 compliance)&/li&&li&这个串行信号在计算机的 USB 控制器处被解码,然后被人机交互设备通用键盘驱动进行进一步解释。之后按键的码值被传输到操作系统的硬件抽象层&/li&&/ul&&p&&b&虚拟键盘(触屏设备):&/b&&/p&&ul&&li&在现代电容屏上,当用户把手指放在屏幕上时,一小部分电流从传导层的静电域经过手指传导,形成了一个回路,使得屏幕上触控的那一点电压下降,屏幕控制器产生一个中断,报告这次「点击」的坐标&/li&&li&然后移动操作系统通知当前活跃的应用,有一个点击事件发生在它的某个 GUI 部件上了,现在这个部件是虚拟键盘的按钮&/li&&li&虚拟键盘引发一个软中断,返回给 OS 一个「按键按下」消息&/li&&li&这个消息又返回来向当前活跃的应用通知一个「按键按下」事件&/li&&/ul&&h2&&b&产生中断(非 USB 键盘) &/b&&/h2&&p&键盘在它的中断请求线 (IRQ) 上发送信号,信号会被中断控制器映射到一个中断向量,实际上就是一个整型数 。CPU 使用中断描述符表 (IDT) 把中断向量映射到对应函数,这些函数被称为中断处理器,它们由操作系统内核提供。当一个中断到达时,CPU 根据 IDT 和中断向量索引到对应的中断处理器,然后操作系统内核出场了。&/p&&h2&&b&(Windows) 一个 WM_KEYDOWN 消息被发往应用程序&/b&&/h2&&p&HID 把键盘按下的事件传送给 KBDHID.sys 驱动,把 HID 的信号转换成一个扫描码(Scancode),这里回车的扫描码是 VK_RETURN(0x0d)。 KBDHID.sys 驱动和 KBDCLASS.sys(键盘类驱动,keyboard class driver)进行交互,这个驱动负责安全地处理所有键盘和小键盘的输入事件。之后它又去调用 Win32K.sys ,在这之前有可能把消息传递给安装的第三方键盘过滤器。这些都是发生在内核模式。&/p&&p&Win32K.sys 通过 GetForegroundWindow() API 函数找到当前哪个窗口是活跃的。这个 API 函数提供了当前浏览器的地址栏的句柄。Windows 系统的「message pump」机制调用 SendMessage (hWnd, WM_KEYDOWN, VK_RETURN, lParam) 函数, lParam 是一个用来指示这个按键的更多信息的掩码,这些信息包括按键重复次数(这里是 0),实际扫描码(可能依赖于OEM 厂商,不过通常不会是 VK_RETURN ),功能键(alt, shift, ctrl)是否被按下(在这里没有),以及一些其他状态。&/p&&p&Windows 的 SendMessage API 直接将消息添加到特定窗口句柄 hWnd 的消息队列中,之后赋给 hWnd 的主要消息处理函数 WindowProc 将会被调用,用于处理队列中的消息。&/p&&p&当前活跃的句柄 hWnd 实际上是一个edit control控件,这种情况下,WindowProc 有一个用于处理 WM_KEYDOWN 消息的处理器,这段代码会查看 SendMessage 传入的第三个参数 wParam ,因为这个参数是 VK_RETURN ,于是它知道用户按下了回车键。&/p&&h2&&b&(Mac OS X) 一个 KeyDown NSEvent 被发往应用程序&/b&&/h2&&p&中断信号引发了 I/O Kit Kext 键盘驱动的中断处理事件,驱动把信号翻译成键码值,然后传给OS X 的 WindowServer 进程。然后, WindowServer 将这个事件通过 Mach 端口分发给合适的(活跃的,或者正在监听的)应用程序,这个信号会被放到应用程序的消息队列里。队列中的消息可以被拥有足够高权限的线程使用 mach_ipc_dispatch 函数读取到。这个过程通常是由 NSApplication 主事件循环产生并且处理的,通过 NSEventType 为 KeyDown 的 NSEvent 。&/p&&h2&&b&(GNU/Linux)Xorg 服务器监听键码值&/b&&/h2&&p&当使用图形化的 X Server 时,X Server 会按照特定的规则把键码值再一次映射,映射成扫描码。当这个映射过程完成之后, X Server 把这个按键字符发送给窗口管理器(DWM,metacity, i3 等等),窗口管理器再把字符发送给当前窗口。当前窗口使用有关图形 API 把文字打印在输入框内。&/p&&h2&&b&解析URL&/b&&/h2&&p&浏览器通过 URL 能够知道下面的信息:&/p&&ul&&li&Protocol &http& 使用 HTTP 协议&/li&&li&Resource &/& 请求的资源是主页 (index)&/li&&/ul&&h2&&b&输入的是 URL 还是搜索的关键字?&/b&&/h2&&p&当协议或主机名不合法时,浏览器会将地址栏中输入的文字传给默认的搜索引擎。大部分情况下,在把文字传递给搜索引擎的时候,URL 会带有特定的一串字符,用来告诉搜索引擎这次搜索来自这个特定浏览器。&/p&&h2&&b&转换非 ASCII 的 Unicode 字符&/b&&/h2&&ul&&li&浏览器检查输入是否含有不是 a-z, A-Z,0-9, - 或者 . 的字符&/li&&li&这里主机名是 &a href=&/?target=http%3A//& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a& ,所以没有非 ASCII 的字符;如果有的话,浏览器会对主机名部分使用 &a href=&/?target=https%3A//en.wikipedia.org/wiki/Punycode& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Punycode&i class=&icon-external&&&/i&&/a& 编码&/li&&/ul&&h2&&b&检查 HSTS 列表&/b&&/h2&&ul&&li&浏览器检查自带的「预加载 HSTS(HTTP严格传输安全)」列表,这个列表里包含了那些请求浏览器只使用 HTTPS 进行连接的网站&/li&&li&如果网站在这个列表里,浏览器会使用 HTTPS 而不是 HTTP 协议,否则,最初的请求会使用 HTTP 协议发送&/li&&li&注意,一个网站哪怕不在 HSTS 列表里,也可以要求浏览器对自己使用 HSTS 政策进行访问。浏览器向网站发出第一个 HTTP 请求之后,网站会返回浏览器一个响应,请求浏览器只使用 HTTPS 发送请求。然而,就是这第一个 HTTP 请求,却可能会使用户受到 &a href=&/?target=http%3A//en.wikipedia.org/wiki/SSL_stripping& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&downgrade attack&i class=&icon-external&&&/i&&/a& 的威胁,这也是为什么现代浏览器都预置了 HSTS 列表。&/li&&/ul&&h2&&b&DNS 查询&/b&&/h2&&ul&&li&浏览器检查域名是否在缓存当中(要查看 Chrome 当中的缓存, 打开 chrome://net-internals/#dns)。&/li&&li&如果缓存中没有,就去调用 gethostbyname 库函数(操作系统不同函数也不同)进行查询。&/li&&li&gethostbyname 函数在试图进行DNS解析之前首先检查域名是否在本地 Hosts 里,Hosts 的位置&a href=&/?target=https%3A//en.wikipedia.org/wiki/Hosts_%2528file%2529%23Location_in_the_file_system& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&不同的操作系统有所不同&i class=&icon-external&&&/i&&/a&&/li&&li&如果 gethostbyname 没有这个域名的缓存记录,也没有在 hosts 里找到,它将会向 DNS 服务器发送一条 DNS 查询请求。DNS 服务器是由网络通信栈提供的,通常是本地路由器或者 ISP 的缓存 DNS 服务器。&/li&&li&查询本地 DNS 服务器&/li&&li&如果 DNS 服务器和我们的主机在同一个子网内,系统会按照下面的 ARP 过程对 DNS 服务器进行 ARP查询&/li&&li&如果 DNS 服务器和我们的主机在不同的子网,系统会按照下面的 ARP 过程对默认网关进行查询&/li&&/ul&&h2&&b&ARP 过程&/b&&/h2&&p&要想发送 ARP(地址解析协议)广播,我们需要有一个目标 IP 地址,同时还需要知道用于发送 ARP 广播的接口的 MAC 地址。&/p&&ul&&li&首先查询 ARP 缓存,如果缓存命中,我们返回结果:目标 IP = MAC&/li&&/ul&&p&如果缓存没有命中:&/p&&ul&&li&查看路由表,看看目标 IP 地址是不是在本地路由表中的某个子网内。是的话,使用跟那个子网相连的接口,否则使用与默认网关相连的接口。&/li&&li&查询选择的网络接口的 MAC 地址&/li&&li&我们发送一个二层( &a href=&/?target=https%3A//en.wikipedia.org/wiki/OSI_model& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&OSI 模型&i class=&icon-external&&&/i&&/a& 中的数据链路层)ARP 请求:&/li&&/ul&&p&ARP Request:&/p&&div class=&highlight&&&pre&&code class=&language-c&&&span&&/span&&span class=&n&&Sender&/span& &span class=&nl&&MAC&/span&&span class=&p&&:&/span& &span class=&nl&&interface&/span&&span class=&p&&:&/span&&span class=&nl&&mac&/span&&span class=&p&&:&/span&&span class=&nl&&address&/span&&span class=&p&&:&/span&&span class=&n&&here&/span&
&span class=&n&&Sender&/span& &span class=&nl&&IP&/span&&span class=&p&&:&/span& &span class=&n&&interface&/span&&span class=&p&&.&/span&&span class=&n&&ip&/span&&span class=&p&&.&/span&&span class=&n&&goes&/span&&span class=&p&&.&/span&&span class=&n&&here&/span&
&span class=&n&&Target&/span& &span class=&nl&&MAC&/span&&span class=&p&&:&/span& &span class=&nl&&FF&/span&&span class=&p&&:&/span&&span class=&nl&&FF&/span&&span class=&p&&:&/span&&span class=&nl&&FF&/span&&span class=&p&&:&/span&&span class=&nl&&FF&/span&&span class=&p&&:&/span&&span class=&nl&&FF&/span&&span class=&p&&:&/span&&span class=&n&&FF&/span& &span class=&p&&(&/span&&span class=&n&&Broadcast&/span&&span class=&p&&)&/span&
&span class=&n&&Target&/span& &span class=&nl&&IP&/span&&span class=&p&&:&/span& &span class=&n&&target&/span&&span class=&p&&.&/span&&span class=&n&&ip&/span&&span class=&p&&.&/span&&span class=&n&&goes&/span&&span class=&p&&.&/span&&span class=&n&&here&/span&
&/code&&/pre&&/div&&p&根据连接主机和路由器的硬件类型不同,可以分为以下几种情况:&/p&&p&直连:&/p&&ul&&li&如果我们和路由器是直接连接的,路由器会返回一个 ARP Reply (见下面)。&/li&&/ul&&p&集线器:&/p&&ul&&li&如果我们连接到一个集线器,集线器会把 ARP 请求向所有其它端口广播,如果路由器也“连接”在其中,它会返回一个 ARP Reply 。&/li&&/ul&&p&交换机:&/p&&ul&&li&如果我们连接到了一个交换机,交换机会检查本地 CAM/MAC 表,看看哪个端口有我们要找的那个 MAC 地址,如果没有找到,交换机会向所有其它端口广播这个 ARP 请求。&/li&&li&如果交换机的 MAC/CAM 表中有对应的条目,交换机会向有我们想要查询的 MAC 地址的那个端口发送 ARP 请求&/li&&li&如果路由器也“连接”在其中,它会返回一个 ARP Reply&/li&&/ul&&p&ARP Reply:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&Sender MAC: target:mac:address:here
Sender IP: target.ip.goes.here
Target MAC: interface:mac:address:here
Target IP: interface.ip.goes.here
&/code&&/pre&&/div&&p&现在我们有了 DNS 服务器或者默认网关的 IP 地址,我们可以继续 DNS 请求了:&/p&&ul&&li&使用 53 端口向 DNS 服务器发送 UDP 请求包,如果响应包太大,会使用 TCP 协议&/li&&li&如果本地 /ISP DNS 服务器没有找到结果,它会发送一个递归查询请求,一层一层向高层 DNS 服务器做查询,直到查询到起始授权机构,如果找到会把结果返回&/li&&/ul&&h2&&b&使用套接字&/b&&/h2&&p&当浏览器得到了目标服务器的 IP 地址,以及 URL 中给出来端口号(http 协议默认端口号是 80, https 默认端口号是 443),它会调用系统库函数 socket ,请求一个 TCP 流套接字,对应的参数是 AF_INET/AF_INET6 和 SOCK_STREAM 。&/p&&ul&&li&这个请求首先被交给传输层,在传输层请求被封装成 TCP segment。目标端口会被加入头部,源端口会在系统内核的动态端口范围内选取(Linux下是 ip_local_port_range)&/li&&li&TCP segment 被送往网络层,网络层会在其中再加入一个 IP 头部,里面包含了目标服务器的 IP 地址以及本机的 IP 地址,把它封装成一个TCP packet。&/li&&li&这个 TCP packet 接下来会进入链路层,链路层会在封包中加入 frame 头部,里面包含了本地内置网卡的 MAC 地址以及网关(本地路由器)的 MAC 地址。像前面说的一样,如果内核不知道网关的 MAC 地址,它必须进行 ARP 广播来查询其地址。&/li&&/ul&&p&到了现在,TCP 封包已经准备好了,可以使用下面的方式进行传输:&/p&&ul&&li&&a href=&/?target=http%3A//en.wikipedia.org/wiki/IEEE_802.3& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&以太网&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&/?target=https%3A//en.wikipedia.org/wiki/IEEE_802.11& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&WiFi&i class=&icon-external&&&/i&&/a&&/li&&li&&a href=&/?target=https%3A//en.wikipedia.org/wiki/Cellular_data_communication_protocol& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&蜂窝数据网络&i class=&icon-external&&&/i&&/a&&/li&&/ul&&p&对于大部分家庭网络和小型企业网络来说,封包会从本地计算机出发,经过本地网络,再通过调制解调器把数字信号转换成模拟信号,使其适于在电话线路,有线电视光缆和无线电话线路上传输。在传输线路的另一端,是另外一个调制解调器,它把模拟信号转换回数字信号,交由下一个&a href=&/?target=https%3A//en.wikipedia.org/wiki/Computer_network%23Network_nodes& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&网络节点&i class=&icon-external&&&/i&&/a&处理。节点的目标地址和源地址将在后面讨论。&/p&&p&大型企业和比较新的住宅通常使用光纤或直接以太网连接,这种情况下信号一直是数字的,会被直接传到下一个&a href=&/?target=https%3A//en.wikipedia.org/wiki/Computer_network%23Network_nodes& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&网络节点&i class=&icon-external&&&/i&&/a&进行处理。&/p&&p&最终封包会到达管理本地子网的路由器。在那里出发,它会继续经过自治区域(autonomous system, 缩写 AS)的边界路由器,其他自治区域,最终到达目标服务器。一路上经过的这些路由器会从IP数据报头部里提取出目标地址,并将封包正确地路由到下一个目的地。IP 数据报头部 time to live (TTL) 域的值每经过一个路由器就减 1,如果封包的 TTL 变为 0,或者路由器由于网络拥堵等原因封包队列满了,那么这个包会被路由器丢弃。&/p&&p&上面的发送和接受过程在 TCP 连接期间会发生很多次:&/p&&ul&&li&客户端选择一个初始序列号 (ISN),将设置了 SYN 位的封包发送给服务器端,表明自己要建立连接并设置了初始序列号&/li&&li&服务器端接收到 SYN 包,如果它可以建立连接:&/li&&ul&&li&服务器端选择它自己的初始序列号&/li&&li&服务器端设置 SYN 位,表明自己选择了一个初始序列号&/li&&li&服务器端把(客户端ISN + 1)复制到 ACK 域,并且设置 ACK 位,表明自己接收到了客户端的第一个封包&/li&&/ul&&li&客户端通过发送下面一个封包来确认这次连接:&/li&&ul&&li&自己的序列号+1&/li&&li&接收端 ACK+1&/li&&li&设置 ACK 位&/li&&/ul&&li&数据通过下面的方式传输:&/li&&ul&&li&当一方发送了N个 Bytes 的数据之后,将自己的 SEQ 序列号也增加N&/li&&li&另一方确认接收到这个数据包(或者一系列数据包)之后,它发送一个 ACK 包,ACK 的值设置为接收到的数据包的最后一个序列号&/li&&/ul&&li&关闭连接时:&/li&&ul&&li&要关闭连接的一方发送一个 FIN 包&/li&&li&另一方确认这个 FIN 包,并且发送自己的 FIN 包&/li&&li&要关闭的一方使用 ACK 包来确认接收到了 FIN&/li&&/ul&&/ul&&h2&&b&TLS 握手&/b&&/h2&&ul&&li&客户端发送一个 ClientHello 消息到服务器端,消息中同时包含了它的 Transport Layer Security (TLS) 版本,可用的加密算法和压缩算法。&/li&&li&服务器端向客户端返回一个 ServerHello 消息,消息中包含了服务器端的 TLS 版本,服务器所选择的加密和压缩算法,以及数字证书认证机构(Certificate Authority,缩写 CA)签发的服务器公开证书,证书中包含了公钥。客户端会使用这个公钥加密接下来的握手过程,直到协商生成一个新的对称密钥&/li&&li&客户端根据自己的信任 CA 列表,验证服务器端的证书是否可信。如果认为可信,客户端会生成一串伪随机数,使用服务器的公钥加密它。这串随机数会被用于生成新的对称密钥&/li&&li&服务器端使用自己的私钥解密上面提到的随机数,然后使用这串随机数生成自己的对称主密钥&/li&&li&客户端发送一个 Finished 消息给服务器端,使用对称密钥加密这次通讯的一个散列值&/li&&li&服务器端生成自己的 hash 值,然后解密客户端发送来的信息,检查这两个值是否对应。如果对应,就向客户端发送一个 Finished 消息,也使用协商好的对称密钥加密&/li&&li&从现在开始,接下来整个 TLS 会话都使用对称秘钥进行加密,传输应用层(HTTP)内容&/li&&/ul&&h2&&b&HTTP 协议&/b&&/h2&&p&如果浏览器是 Google 出品的,它不会使用 HTTP 协议来获取页面信息,而是会与服务器端发送请求,商讨使用 SPDY 协议。&/p&&p&如果浏览器使用 HTTP 协议而不支持 SPDY 协议,它会向服务器发送这样的一个请求:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&GET / HTTP/1.1
Connection: close
[other headers]
&/code&&/pre&&/div&&p&[other headers] 包含了一系列的由冒号分割开的键值对,它们的格式符合 HTTP 协议标准,它们之间由一个换行符分割开来。(这里我们假设浏览器没有违反 HTTP 协议标准的 bug,同时假设浏览器使用 HTTP/1.1 协议,不然的话头部可能不包含 Host 字段,同时 GET 请求中的版本号会变成 HTTP/1.0 或者 HTTP/0.9 。)&/p&&p&HTTP/1.1 定义了「关闭连接」的选项「close」,发送者使用这个选项指示这次连接在响应结束之后会断开。例如:&/p&&blockquote&Connection:close&/blockquote&&p&不支持持久连接的 HTTP/1.1 应用必须在每条消息中都包含「close」选项。&/p&&p&在发送完这些请求和头部之后,浏览器发送一个换行符,表示要发送的内容已经结束了。&/p&&p&服务器端返回一个响应码,指示这次请求的状态,响应的形式是这样的:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&200 OK
[response headers]
&/code&&/pre&&/div&&p&然后是一个换行,接下来有效载荷 (payload),也就是 &a href=&/?target=http%3A//& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a& 的 HTML 内容。服务器下面可能会关闭连接,如果客户端请求保持连接的话,服务器端会保持连接打开,以供之后的请求重用。&/p&&p&如果浏览器发送的 HTTP 头部包含了足够多的信息(例如包含了 Etag 头部),以至于服务器可以判断出,浏览器缓存的文件版本自从上次获取之后没有再更改过,服务器可能会返回这样的响应:&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&304 Not Modified
[response headers]
&/code&&/pre&&/div&&p&这个响应没有有效载荷,浏览器会从自己的缓存中取出想要的内容。&/p&&p&在解析完 HTML 之后,浏览器和客户端会重复上面的过程,直到 HTML 页面引入的所有资源(图片,CSS,favicon.ico 等等)全部都获取完毕,区别只是头部的 GET / HTTP/1.1 会变成 GET /$(相对&a href=&/?target=http%3A//& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&的URL) HTTP/1.1 。&/p&&p&如果 HTML 引入了 &a href=&/?target=http%3A//& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a& 域名之外的资源,浏览器会回到上面解析域名那一步,按照下面的步骤往下一步一步执行,请求中的 Host 头部会变成另外的域名。&/p&&h2&&b&HTTP 服务器请求处理&/b&&/h2&&p&HTTPD(HTTP Daemon) 在服务器端处理请求 / 响应。最常见的 HTTPD 有 Linux 上常用的 Apache 和 nginx,以及 Windows 上的 IIS。&/p&&ul&&li&HTTPD 接收请求&/li&&li&服务器把请求拆分为以下几个参数:&/li&&ul&&li&HTTP 请求方法(GET, POST, HEAD, PUT, DELETE, CONNECT, OPTIONS, 或者 TRACE)。直接在地址栏中输入 URL 这种情况下,使用的是 GET 方法&/li&&li&域名:&a href=&/?target=http%3A//& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&&/li&&li&请求路径/页面:/ (我们没有请求&a href=&/?target=http%3A//& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&下的指定的页面,因此 / 是默认的路径)&/li&&/ul&&li&服务器验证其上已经配置了 &a href=&/?target=http%3A//& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a& 的虚拟主机&/li&&li&服务器验证 &a href=&/?target=http%3A//& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a& 接受 GET 方法&/li&&li&服务器验证该用户可以使用 GET 方法(根据 IP 地址,身份信息等)&/li&&li&如果服务器安装了 URL 重写模块(例如 Apache 的 mod_rewrite 和 IIS 的 URL Rewrite),服务器会尝试匹配重写规则,如果匹配上的话,服务器会按照规则重写这个请求&/li&&li&服务器根据请求信息获取相应的响应内容,这种情况下由于访问路径是「/」,会访问首页文件(你可以重写这个规则,但是这个是最常用的)。&/li&&li&服务器会使用指定的处理程序分析处理这个文件,假如 Google 使用 PHP,服务器会使用 PHP 解析 index 文件,并捕获输出,把 PHP 的输出结果返回给请求者&/li&&/ul&&h2&&b&浏览器背后的故事&/b&&/h2&&p&当服务器提供了资源之后(HTML,CSS,JS,图片等),浏览器会执行下面的操作:&/p&&ul&&li&解析 —— HTML,CSS,JS&/li&&li&渲染 —— 构建 DOM 树 -& 渲染 -& 布局 -& 绘制&/li&&/ul&&h2&&b&浏览器&/b&&/h2&&p&浏览器的功能是从服务器上取回你想要的资源,然后展示在浏览器窗口当中。资源通常是 HTML 文件,也可能是 PDF,图片,或者其他类型的内容。资源的位置通过用户提供的 URI (Uniform Resource Identifier) 来确定。&/p&&p&浏览器解释和展示 HTML 文件的方法,在 HTML 和 CSS 的标准中有详细介绍。这些标准由 Web 标准组织 W3C (World Wide Web Consortium) 维护。&/p&&p&不同浏览器的用户界面大都十分接近,有很多共同的 UI 元素:&/p&&ul&&li&一个地址栏&/li&&li&后退和前进按钮&/li&&li&书签选项&/li&&li&刷新和停止按钮&/li&&li&主页按钮&/li&&/ul&&p&&b&浏览器高层架构&/b&&/p&&p&组成浏览器的组件有:&/p&&ul&&li&&b&用户界面&/b& 用户界面包含了地址栏,前进后退按钮,书签菜单等等,除了请求页面之外所有你看到的内容都是用户界面的一部分&/li&&li&&b&浏览器引擎&/b& 浏览器引擎负责让 UI 和渲染引擎协调工作&/li&&li&&b&渲染引擎&/b& 渲染引擎负责展示请求内容。如果请求的内容是 HTML,渲染引擎会解析 HTML 和 CSS,然后将内容展示在屏幕上&/li&&li&&b&网络组件&/b& 网络组件负责网络调用,例如 HTTP 请求等,使用一个平台无关接口,下层是针对不同平台的具体实现&/li&&li&&b&UI后端&/b& UI 后端用于绘制基本 UI 组件,例如下拉列表框和窗口。UI 后端暴露一个统一的平台无关的接口,下层使用操作系统的 UI 方法实现&/li&&li&&b&Javascript 引擎&/b& Javascript 引擎用于解析和执行 Javascript 代码&/li&&li&&b&数据存储&/b& 数据存储组件是一个持久层。浏览器可能需要在本地存储各种各样的数据,例如 Cookie 等。浏览器也需要支持诸如 localStorage,IndexedDB,WebSQL 和 FileSystem 之类的存储机制&/li&&/ul&&h2&&b&HTML 解析&/b&&/h2&&p&浏览器渲染引擎从网络层取得请求的文档,一般情况下文档会分成 8kB 大小的分块传输。&/p&&p&HTML 解析器的主要工作是对 HTML 文档进行解析,生成解析树。&/p&&p&解析树是以 DOM 元素以及属性为节点的树。DOM 是文档对象模型 (Document Object Model)的缩写,它是 HTML 文档的对象表示,同时也是 HTML 元素面向外部(如 JavaScript)的接口。树的根部是「Document」对象。整个 DOM 和 HTML 文档几乎是一对一的关系。&/p&&p&&b&解析算法&/b&&/p&&p&HTML 不能使用常见的自顶向下或自底向上方法来进行分析。主要原因有以下几点:&/p&&ul&&li&语言本身的「宽容」特性&/li&&li&HTML 本身可能是残缺的,对于常见的残缺,浏览器需要有传统的容错机制来支持它们&/li&&li&解析过程需要反复。对于其他语言来说,源码不会在解析过程中发生变化,但是对于 HTML 来说,动态代码,例如脚本元素中包含的 document.write() 方法会在源码中添加内容,也就是说,解析过程实际上会改变输入的内容&/li&&/ul&&p&由于不能使用常用的解析技术,浏览器创造了专门用于解析 HTML 的解析器。解析算法在 HTML5 标准规范中有详细介绍,算法主要包含了两个阶段:标记化(tokenization)和树的构建。&/p&&p&&b&解析结束之后&/b&&/p&&p&浏览器开始加载网页的外部资源(CSS,图像,Javascript 文件等)。&/p&&p&此时浏览器把文档标记为可交互的(interactive),浏览器开始解析处于「推迟(deferred)」模式的脚本,也就是那些需要在文档解析完毕之后再执行的脚本。之后文档的状态会变为「完成(complete)」,浏览器会触发「加载(load)」事件。&/p&&p&注意解析 HTML 网页时永远不会出现「无效语法(Invalid Syntax)」错误,浏览器会修复所有错误内容,然后继续解析。&/p&&h2&&b&CSS 解析&/b&&/h2&&ul&&li&根据 &a href=&/?target=http%3A//www.w3.org/TR/CSS2/grammar.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&CSS词法和句法&i class=&icon-external&&&/i&&/a& 分析 CSS 文件和 &style& 标签包含的内容以及 style 属性的值&/li&&li&每个 CSS 文件都被解析成一个样式表对象(StyleSheet object),这个对象里包含了带有选择器的 CSS 规则,和对应 CSS 语法的对象&/li&&li&CSS 解析器可能是自顶向下的,也可能是使用解析器生成器生成的自底向上的解析器&/li&&/ul&&h2&&b&页面渲染&/b&&/h2&&ul&&li&通过遍历 DOM 节点树创建一个「Frame 树」或「渲染树」,并计算每个节点的各个 CSS 样式值&/li&&li&通过累加子节点的宽度,该节点的水平内边距 (padding)、边框 (border) 和外边距(margin),自底向上的计算「Frame 树」中每个节点的首选 (preferred) 宽度&/li&&li&通过自顶向下的给每个节点的子节点分配可行宽度,计算每个节点的实际宽度&/li&&li&通过应用文字折行、累加子节点的高度和此节点的内边距 (padding)、边框 (border) 和外边距 (margin),自底向上的计算每个节点的高度&/li&&li&使用上面的计算结果构建每个节点的坐标&/li&&li&当存在元素使用 floated,位置有 absolutely 或 relatively 属性的时候,会有更多复杂的计算,详见 &a href=&/?target=http%3A//dev.w3.org/csswg/css2/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&dev.w3.org/csswg/css2/&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a& 和 &a href=&/?target=http%3A//www.w3.org/Style/CSS/current-work& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&w3.org/Style/CSS/curren&/span&&span class=&invisible&&t-work&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/li&&li&创建 layer (层) 来表示页面中的哪些部分可以成组的被绘制,而不用被重新栅格化处理。每个帧对象都被分配给一个层&/li&&li&页面上的每个层都被分配了纹理&/li&&li&每个层的帧对象都会被遍历,计算机执行绘图命令绘制各个层,此过程可能由 CPU 执行栅格化处理,或者直接通过 D2D / SkiaGL 在 GPU 上绘制&/li&&li&上面所有步骤都可能利用到最近一次页面渲染时计算出来的各个值,这样可以减少不少计算量&/li&&li&计算出各个层的最终位置,一组命令由 Direct3D/OpenGL 发出,GPU 命令缓冲区清空,命令传至 GPU 并异步渲染,帧被送到 Window Server。&/li&&/ul&&h2&&b&GPU 渲染&/b&&/h2&&ul&&li&在渲染过程中,图形处理层可能使用通用用途的 CPU,也可能使用图形处理器 GPU&/li&&li&当使用 GPU 用于图形渲染时,图形驱动软件会把任务分成多个部分,这样可以充分利用 GPU 强大的并行计算能力,用于在渲染过程中进行大量的浮点计算。&/li&&/ul&&h2&&b&Window Server&/b&&/h2&&h2&&b&后期渲染与用户引发的处理&/b&&/h2&&p&渲染结束后,浏览器根据某些时间机制运行 JavaScript 代码(比如 Google Doodle 动画)或与用户交互(在搜索栏输入关键字获得搜索建议)。类似 Flash 和 Java 的插件也会运行,尽管 Google 主页里没有。这些脚本可以触发网络请求,也可能改变网页的内容和布局,产生又一轮渲染与绘制。&/p&&blockquote&&b&Github:&/b&&a href=&/?target=https%3A///alex/what-happens-when/blob/master/README.rst& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&alex/what-happens-when&i class=&icon-external&&&/i&&/a& &br&&br&&b&版权声明:&/b&本文为协作翻译,使用 &a href=&/?target=https%3A//creativecommons.org/publicdomain/zero/1.0/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Creative Commons Zero&i class=&icon-external&&&/i&&/a& 协议发布&/blockquote&
简评:对于这个经典的问题,本文将不再局限于平常的回答,而是想办法回答地更具体,不遗漏任何细节。 注:英文原版是某个不存在的网站,故更换为 ,大家…
&img src=&/50/v2-fb800df853403deb1f0ae098cfdcb745_b.png& data-rawwidth=&1400& data-rawheight=&1019& class=&origin_image zh-lightbox-thumb& width=&1400& data-original=&/50/v2-fb800df853403deb1f0ae098cfdcb745_r.png&&&blockquote&更多精彩内容,请关注微信公众号:&b&阿政说动漫&/b&(ID:&b&azhengshuo&/b&)&/blockquote&&p&每个人都想在自己的领域中成为一个高手。&/p&&p&但很多人苦练数年,却始终原地踏步,和高手的境界遥遥无期。&/p&&p&到底怎样才能成为一个高手?&/p&&p&今天阿政就给大家带来一部特殊的漫画,它或许能给你一些启发。&/p&&p&&b&《Dr.STONE》&/b&&/p&&img src=&/50/v2-31d1e65e813bdeaeceef52_b.jpg& data-rawwidth=&640& data-rawheight=&469& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&/50/v2-31d1e65e813bdeaeceef52_r.jpg&&&p&这是新出的漫画,前不久还有朋友在阿政的粉丝群里推荐过。&/p&&p&由于是新出的,所以还没多少话,但内容绝对很赞。&/p&&p&看看漫画的两位作者就知道,这绝逼是品质的保证。&/p&&p&原作是&b&稻垣理一郎&/b&,就是《光速蒙面侠》的原作者,那是一部号称史上最颠覆的橄榄球漫画——&/p&&img src=&/50/v2-ae97fb162119b_b.jpg& data-rawwidth=&640& data-rawheight=&400& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&/50/v2-ae97fb162119b_r.jpg&&&p&作画则是BOICHI,是位韩国漫画家,也是《最强不良传说》的画师——&/p&&img src=&/50/v2-6d79c7c16bc_b.jpg& data-rawwidth=&640& data-rawheight=&363& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&/50/v2-6d79c7c16bc_r.jpg&&&p&这次两位作者一起合作,给我们带来了这部脑洞开出新境界的漫画。&/p&&p&男主是个高中生,性格就是传统少年漫画中的热血笨蛋。&/p&&p&他凡事都喜欢靠气势来解决,刚出场的时候,就嘶吼着要向自己暗恋的妹子告白——&/p&&img src=&/50/v2-bfe254abeeeeefe1de3d97_b.jpg& data-rawwidth=&640& data-rawheight=&523& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&/50/v2-bfe254abeeeeefe1de3d97_r.jpg&&&p&他有一个好基友,&b&千空。&/b&&/p&&p&千空的性格和男主完全相反,冷静、腹黑,是班里有名的科学怪人——&/p&&img src=&/50/v2-c0c0a2bef9f7d76bb94b0_b.jpg& data-rawwidth=&640& data-rawheight=&412& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&/50/v2-c0c0a2bef9f7d76bb94b0_r.jpg&&&p&千空虽然腹黑,但绝对是男主的好基友,每次都会帮男主出谋划策。&/p&&p&这次男主要去告白,他也为男主暗自高兴——&/p&&img src=&/50/v2-1d07c225a9e8cd07ca6b22_b.jpg& data-rawwidth=&640& data-rawheight=&275& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&/50/v2-1d07c225a9e8cd07ca6b22_r.jpg&&&p&然而,就在男主即将告白的那一瞬间}

我要回帖

更多关于 merry xmasiii 攻略 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信