Live Http headers是Firefox下Http头信息捕获利器,常用于安全测试。但不幸的是Replay功能无法在最近版本的Firefox浏览器(35.0.1)中工作,我决定在插件的官方版本更新之前做一个临时的修复。 我发现在HTTP Headers包含If-Modified-Since能够让replay功能重新工作。 什么是If-Modified-Since? If-Modified-Since是标准的HTTP请求头标签,在发送HTTP请求时,把浏览器端缓存页面的最后修改时间一起发到服务器去,服务器会把这个时间与服务器上实际文件的最后修改时间进行比较。 If-Modified-Since用于记录页面最后修改时间的HTTP头信息,是由客户端往服务器发送的头,与之相似的是Last-Modified,不同的是Last-Modified是由服务器往客户端发送的 HTTP 头。 如果把 If-Modified-Since: * 添加到Live HTTP Headers中replay功能的默认HTTP头中,就能使replay正常工作了。 修复方法: 在firfox地址栏输入:about:support 进入配置文件夹。 我这里Live HTTP Headers插件的目录在 .\extensions\{8f8fe09b-0bd3-4470-bc1b-8cad42b8203a} 然后再进入chrome目录,找到livehttpheaders.jar 修改livehttpheaders.jar中的文件/content/LiveHTTPReplay.js 原版: if(!livehttpheaders) var livehttpheaders={};if(!livehttpheaders.replay) livehttpheaders.replay={};livehttpheaders.replay.live = window.arguments[0];livehttpheaders.replay.init = function() { var args = window.arguments; document.getElementById("livehttpheaders.replay.method").value = args[1]; document.getElementById("livehttpheaders.replay.url").value = args[2]; document.getElementById("livehttpheaders.replay.version").value = args[3]; document.getElementById("livehttpheaders.replay.headers").value = args[4]; if (args[5] != null) { document.getElementById("livehttpheaders.replay.post").value = livehttpheaders.replay.stringToEscape(args[5]); document.getElementById("livehttpheaders.replay.sendpost").checked="true"; } livehttpheaders.replay.updatePost();} 修改为: if(!livehttpheaders) var livehttpheaders={};if(!livehttpheaders.replay) livehttpheaders.replay={};livehttpheaders.replay.live = window.arguments[0];livehttpheaders.replay.init = function() { var args = window.arguments; document.getElementById("livehttpheaders.replay.method").value = args[1]; document.getElementById("livehttpheaders.replay.url").value = args[2]; document.getElementById("livehttpheaders.replay.version").value = args[3]; document.getElementById("livehttpheaders.replay.headers").value = args[4] + "If-Modified-Since: *\n"; if (args[5] != null) { document.getElementById("livehttpheaders.replay.post").value = livehttpheaders.replay.stringToEscape(args[5]); document.getElementById("livehttpheaders.replay.sendpost").checked="true"; } livehttpheaders.replay.updatePost();} 修改完成以后重启firfox,试试replay功能,你会发现它已经能够正常工作了。 Notice: 修改之后把文件要打包成livehttpheaders.jar(不是livehttpheaders.zip) 送上已经修改好的 http://share.weiyun.com/3aa6305c265f8af77c9e0bd664e0775e (密码:KdY5) 相关链接 http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html http://www.cnblogs.com/zh2000g/archive/2010/03/22/1692002.html 作者/k623277335 |