Smart Header 是一个 Chrome 浏览器扩展程序,能让你轻松更改 HTTP 请求头。除此之外此扩展还允许设置多种自动切换规则,在不同的情况下为指定的请求头自动设置数据,甚至剔除指定的请求头。

下载这个扩展

点击这里访问 Chrome Web Store 下载 »

访问百度云下载 crx 扩展程序包 »

那些酷炫的功能

  • 使用 Chrome Sync 同步配置。
  • 支持以 JSON 格式导入导出配置,甚至追加到已有配置中。
  • 没有用到 jQuery,保证高速性能。
  • 自动条件经过编译成函数执行,与之前版本相比性能更高。
  • 用于阻止请求的发送(只要有一个请求头内容是 @BLOCK 即可)
  • 清爽和复合性高的配置界面。
  • ……(想不出来了,如果你想到啥可以留言哦)

应用实例

我就随便说说我遇到过的和听说的情况,如果你有其他有意思的应用实例,留言告诉我哦 :) 。

  • 伪装成 Googlebot 或者其他搜索引擎抓取机器人以阅读某些论坛。
  • 利用 X-Forwarded-For 这个HTTP头在海外看优酷。 (已失效,但是还是一个经典故事)
  • 利用特殊的 User-Agent 伪装成某些看广告浏览器,以实现网赚。 (以前某个家伙发邮件问的就是这个,我没试过,还期待有谁能捐赠点开发费用呢…)
  • 开发网站测试用的。
  • 伪装成其他语言用户。

Dev v1.0

2014-June/July 一个新的坑

好吧其实这个玩意儿的前身就是那个被贱卖1的 Change HTTP Header,而且后面居然还被下架了…随后也不知道怎么想的(或者是因为@小龅牙的我的私信吧),我重头又写了一个。

这次完全没有拿以前的代码来用(即使想用也用不了,Chrome 扩展的 manifest 和其他文件要求发生了很多疯狂的变化),而且还用了一大堆奇怪的新科技(比如第一次写闭包之类的),结果一闹腾四天就过去了,而且是在考试周!但愿没问题吧。

Dev v1.0.0.2

2014-08-21

魔法变量(Magic Variables)

你现在可以把形如 {rand:0,10} 的东西丢到设定值里面,然后 Smart Header 会将它变成诸如 7 这样的值。

通用魔法变量

名字 描述 例子
rand:A,B 随机整数,区间为 [A,B] 。 {rand:0,10} = 6
date:日期格式 日期字符串。 {date:yyyy-M-dd} = 2014-7-09
日期格式
符号 描述 符号 描述
yy / yyyy M / MM 月 (1-12)
d / dd 日 (1-31) h / hh
m / mm s / ss
S 毫秒    

日期格式化功能基于《js 格式化时间日期函数小结》提供的代码。

自动规则的魔法变量

如果一个自动规则含有正则表达式,那么那些正则表达式会生成魔法变量 {result:#.#}

第一个井号 (#) 是自动规则的条件编号 (0,1,2…)。将鼠标悬停在某一规则处,该编号会自动显示。

第二个是捕获组编号 (0,1,2…)。要注意,整个正则表达式就是一个且是第一个捕获组。

在替换了井号之后,你的变量应该看起来像这样:{result:1.0}.

你可以利用 小工具 - RegExp测试器 测试正则表达式。

人性化的修改

  • 将“反转结果”的功能改为一个写有“NOT”的开关按钮,放在测试方法前面。例如,要将“包含”变成“不包含”,只需点开那个按钮即可。
  • 放大字体。不知道为什么 Chrome 把字体变得好小,特意放大了,不过貌似大多了一点儿。
  • 在扩展管理页面的图标。之前忘记在描述文件里加声明了……
  • 压缩代码。 整个包由 44kB 被压缩到了 37kB。

终于盼到一个捐赠者了

在帮助页面可以看到慷慨解囊支持开发的:周华祥。没想到我在长沙某个酒店闻着臭豆腐味道时收到了他的邮件,在我这里的各种纠结后他为我支付宝打上了一笔捐赠费,十分感谢!

当然,如果你能为我赏点饭钱,想必是极好的,只是坑爹的支付宝还是不给我实名认证……所以暂时只有 PayPal 通道了。点击这个可爱的图标进入:

Buy me a coffee

Dev v1.0.0.6

2016-02-16

就做了三件小事,很惭愧。

Bug 修复

第一件事是收到 @skotak29 的邮件,反馈说在配置页面中不能使用带有数字的请求头,于是做了修改。

在寻找 HTTP header field name 规则的时候,发现两个:

最后选择的是前者。

感觉这个 bug 应该是赶走了一群人呢。

提升性能

修改的时候顺带给自己挖了大坑。第二是重新实现了有关魔法变量的程序,效率能翻好几倍。只能说之前的技术太渣了,一个正则表达式能搞定的,居然重复了七八个

第三是修改了拦截函数,把之前冗余代码给合并了,看起来更爽一点。(虽然只是我自己舒服)

  1. “Change HTTP Request Header” is not in laobubu lab anymore http://blog.laobubu.net/646