从HTTP Range请求谈标准是如何被破坏的

如今cdn已成为互联网上的基础设施,会与形形色色的公司打交道。其中既有一些拿着政府资金,结果只让你草草布一个Nginx代理就完事的;也有现在那些中国最强势的互联网公司。这里只说互联网公司,为什么它们强势呢?一方面,它们拥有着巨大的流量,中国的cdn市场竞争又如此激烈,一个不爽,把量切走,反正排队等着为我服务的cdn厂商多的很;另一方面,它们本身的技术积累都很强,所以提起需求来是毫不手软,底气十足。

但这些有着深厚技术积累的公司,有时候提出来的需求只能让人苦笑。

背景

A是中国目前最大的互联网公司之一,它的视频当然流量也很大。按照业内惯例,它会把内容同时让多家cdn厂商服务,然后定期进行打分,排名。参与打分的指标很多,最典型的就是一些4XX的错误请求。所以,cdn厂商的运维及管理人员,会很重视这些指标。

送礼要抓紧

标题是故意夸张了,送礼的对象不是领导、上级,而是朋友,同学等。有时候,会忽然想起给身边亲近的或关系好的人送个小礼物,但我发现自己在这方面的拖延症患的不轻。

举两个例子。

一.海盗

我和女友在一个学校读研,我比她高一届,也就是说,我们一起在学校度过了两年的时光。我们经常在吃完晚饭后,去教研室之前,来到学校的超市里逛逛。有时候是一人一根冰激凌,有时候是一包薯片,然后坐在超市门口的长凳上消磨十几分钟的时光。长凳的一边是超市,另外一边是一家书店,名曰智博书店。其实除了去逛逛超市,我们更多会逛逛这个书店。但不管怎么样,我们总会在外面这个长凳上坐个十几分钟,当时能不能看到夕阳现在不记得了,但回忆起来总觉得有。

有时候我们会面朝书店,有时候会面朝超市。当我们面朝超市时,我们面前是超市的玻璃墙,里面是位于超市里的一个迷你的礼品店,透过玻璃能看到陈列的礼物,有几个小猪,有一个骷髅头,有几个类似于猪八戒背媳妇风格的娃娃,还有一个裹着红色头巾的海盗。

关于nginx中的host变量

关于变量host,在Nginx的官网wiki中是如下说明的:

$host:in this order of precedence: host name from the request line, or host name from the “Host” request header field, or the server name matching a request

直白的翻译一下:host变量的值按照如下优先级获得: 1. 请求行中的host.
2. 请求头中的Host头部.
3. 与一条请求匹配的server name.

很清楚,有三点,取优先级最高的那个。仅从字面意思上来理解,这个选择的过程为:如果请求行中有host信息,则以请求行中的host作为host变量的值(host与host变量不是一个东西,很拗口);如果请求行中没有host信息,则以请求头中的Host头的值作为host变量的值;如果前面两者都没有,那么host变量就是与该请求匹配所匹配的serve名。

依赖一个RPM来制作新的RPM

项目中有这样一个场景:A软件通过RPM包发布,B软件严重依赖A软件,但在它的基础上有一些业务逻辑的添加和修改。A软件是公司一个历史悠久的产品,且保持频繁的更新,B软件是我在维护。

在开发的时候,很简单,先把某一个稳定版本的A软件安装到开发机上,然后直接进行业务逻辑的开发就可以了。但在发布的时候肯定就不能这么做了,你很难要求运维先去发布服务器上下载一个A软件的rpm包,安装或更新完后,再去发布服务器上下载一个B软件的业务逻辑包,再进行相关的配置。如果是一台机器就罢了,几十上百台服务器这样玩就是作死。所以,我需要做出一个B软件的独立的rpm包,用这个rpm包安装或更新后,直接能进行相关的配置。

再来澄清一下需求:B软件既要严重依赖A软件,但要在A软件上添加很多业务逻辑。但要求在发布的时候脱离对A软件rpm包的依赖。

最简单的方法,当然是先把A软件的代码库做一个分支,或者拷贝出一个新的代码库,在上面进行开发,将B软件与A软件独立开来。这样发布的时候当然就是一个独立的包了。但如前所属,A软件更新频繁,生命力旺盛,我可不想时时来在同步上花时间。

给有道云笔记的分类自定义排序

有时候换一个工具是很莫名其妙的,去年一直用的evernote,今年却习惯了使用有道云笔记。慢慢“我的笔记本”栏里笔记本的类别越来越多了。这些类别默认是按照类别的字母先后来排序的。这就导致有些你需要特别关注的类别不能处在一个显眼的位置。作为一个习惯了被黑,同时也慢慢习惯了自黑的处女座IT男,我硬是用鼠标在分类处拖动了很久,实在不行后,只好点开设置选项,期望能找到一个自定义排序的选项,又以失败告终。

绝望后,我念叨了一声,有道云笔记这怎么回事,做的也太垃圾了吧。旁边一位小帅哥见我这么抓狂,凑过来问。我告诉他,我现在想把这个“每日工作安排”放到所有分类的最前面。小帅哥扶了扶眼镜,然后拿过我的鼠标,把“每日工作安排”重命名为“001-每日工作安排”,然后飘然回到他的座位,整个操作过程没有说一句话,大有事了拂衣去,深藏功与名的架势。