查看网页的header是优化web应用的关键一环,从header中,可以检查到非常 多的信息:网页在squid中的缓存时间(age)、客户端缓存时间(expires)、是否有最后修改时间(last-modified)、是否在 squid中命中(x-cache)、服务器版本、服务器时间(Date)、gzip压缩情况(Content-Encoding)等等。以上说的这些都 是比较基本的信息,本文最后介绍一个利用header来分析客户端请求走向的问题。先介绍几种查看header的办法:
  1、httpwatch
 
 这个软件是在windows+ie下最方便的工具了,在网上可以找到下载地址,并且找到破解的key,没有破解的版本是不可以查看header的。安装
完成后,在ie的工具栏上就会有个httpwatch的按钮,点下就在ie的下部打开了一个窗口,在这个窗口的左上角有开启的按钮,按下后,在浏览器输入
地址查看时就会把这个网页所有发送的请求链接都记录在窗口里,单击任意一个链接,在下方选择header,就可以看到针对这个链接的request
header和response
header了。使用httpwatch感觉不便的一点是它无论如何会把浏览的网页里的所有链接都记录起来,如果这些链接非常多,以致于难以找到希望查看
的链接,那么就得利用它的filter功能过滤掉无关的链接,但查看下一个网页的时候,要把filter改掉。
  2、curl
  在linux下使用curl查看一个链接的header的办法更为直接,另外,它还可以通过修改request header来对目标地址进行调试,非常方便:curl -I http://www.sudone.com这样就可以看到response header了,但是这个header是无压缩的,所以并不是大多数人所取得的header。要查看压缩版本,执行:curl -I --compressed http://www.sudone.com这是使用了curl默认的请求压缩功能,但这个功能在某些时候还是不能取得压缩版本……,执行一个最为原始的:curl -I -H "Accept-Encoding:gzip, deflate" http://www.sudone.com
个办法对所有的可支持gzip或defalte压缩的服务器,都是生效的,如果还是没有压缩(没有返回Content-Encoding:gzip),那
就是服务器没有支持压缩的了。顺带记录一个curl检查指定ip的链接的办法,这个对lvs集群下某台机的检查是非常有用的:curl -I -H
"Host:www.sudone.com" -H "Accept-Encoding:gzip, deflate" http://64.233.189.99/附带一个wget的用法:wget -S --spider http://www.sudone.com
  wget查阅header的功能并不十分好使,所以不经常用它。
  3、firebug
 
 如果使用了linux作为桌面,要调试一个带cookie或session之类的网页,那么用curl就非常不便了,这时只能通过浏览器来调
试,linux下有普遍支持的浏览器firefox(iceweasel),在firefox里安装上firebug这个插件,便能很容易地查看
response
header。firebug的使用在网上查查就可以了,应该说还是比较方便的,另外firebug的其它功能也都比较强,这是后话。有了以上几种办法,
查看header应该不算大难题了。下面来介绍一下如何利用header来分析客户端请求的走向:因为服务器端做了lvs或者其它类型的负载均衡,所以要
检查一些琐碎的故障就变得不太方便,譬如有一台机器,因为种种原因导致它和其它服务器上的程序版本不一致,那么查起来是比较麻烦。通过打印header的
方式就可以较为轻松地找到这台有问题的机器。打印header是将能代表本机的一个字符串打印到response
header中,一般使用via这个头,这个头可以穿过squid,并且穿过后显示顺序仍为最里的机器到最外的机器,整个流向一目了然。打印header
可以用程序(jsp/php)打印,也可以用服务器来打印,介绍几种:
  1、squid
  修改squid的配置文件里的
visible_hostname
64.233.189.99.cache.sudone.com,使其能标志机器,这样就能在response的via头里看到机器名。常用的就是把ip
地址打上去,如果担心被人看到这个ip地址然后ddos,可以打上一些代号。
  2、nginx
  nginx在配置里敲上一行
add_header via
$server_addr,便可打印本机ip地址到via头里,另外,如果nginx是作为负载均衡前端,那么打印后端地址也非常方便,敲
入:add_header via $upstream_addr即可。
  3、apache
  apache可通过header模块修改头,不很了解,需要查一下。
  4、动态程序
  动态程序就相当灵活,但种类太多不能一一介绍。

firebug使用的更多相关文章

  1. 开发者最爱的Firebug停止更新和维护

        近日,Firebug团队在其官网上宣布,Firebug将不再继续开发和维护,并邀请大家使用Firefox的内置开发工具.     Firebug最初是2006年1月由Joe Hewitt编写, ...

  2. firebug不能加载JS文件 ,无法进行JS脚本调试

    提示: 本页面不包含 Javascript 如果 <script> 标签有 "type" 属性,其值应为 "text/javascript" 或者& ...

  3. Firebug中调试中的js脚本中中文内容显示为乱码

    Firebug中调试中的js脚本中中文内容显示为乱码 设置 页面 UFT-8 编码没用, 解决方法:点击 "Firebug"工具栏 中的"选项"---" ...

  4. Firebug调试js代码

    Firebug功能异常强大,不仅可以调试DOM,CSS,还可以调试JS代码,下面介绍一下调试JS. 1.认识console对象 console对象是Firebug内置的对象,该对象可以在代码中写入,可 ...

  5. 修改Firebug字体

    Firebug是一件非常好用的调试工具,然而默认的字体有些单调,设置里又没有更改的选项,那么字体到底能不能更改呢?这个问题困扰了我好久,直到今天我才偶然发现了解决方案. Firebug属于火狐的一个插 ...

  6. Selenium FF WebDriver 加载firebug 和设置代理

    首先这次使用的webDriver for Firefox的 由于项目的原因,需要在测试的时候加载Firebug和使用vpn,加载代理 Firefox 加载代理,可以从FF菜单上看,代理分为好几种 我这 ...

  7. [资源分享]yslow 与firebug 修复版本Firefox35【绿色版本下载】

    自从火狐也开始做版本帝后,相关查的插件越来越不好使了, 而且火狐集成自己的调试工具,也不是很好使用,Yslow 也坏掉了 找公司写c++修复了下 把yslow和Firebug 打包到一起,而且关闭自动 ...

  8. 10分钟学会前端调试利器——FireBug

    概述 FireBug是一个用于网站前端开发的工具,它是FireFox浏览器的一个扩展插件.它可以用于调试JavaScript.查看DOM.分析CSS.监控网络流量以及进行Ajax交互等.它提供了几乎前 ...

  9. 利用firebug调试功能辅助了解闭包和this

    算一算,有段时间没写博客. 上午的时候翻看以前收藏的一个系列博文<深入理解javascript原型和闭包>, 讲闭包那节:http://www.cnblogs.com/wangfupeng ...

  10. 工欲善其事必先利其器——web调试工具firebug

    一.Firebug工具简介 firebug是firefox下的一款开发类插件.firebug集html查看和编辑,JavaScript控制台,网络状况监视器于一体,是开发JavaScript,css, ...

随机推荐

  1. FileStream -- 复制文件

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  2. nodejs安装不了和npm安装不了的解决方法

    http://caibaojian.com/nodejs-roll-back.html

  3. mac下和windows下清空DNS缓存

    在WIN下: > ipconfig /flushdns 在mac下: 对于低版本系统,在命令行窗口(terminal)输入 lookupd -flushcache 即可: $ sudo look ...

  4. Goodle Clean设计架构

    Goodle Clean设计架构 23 * @param <P> the response type 24 */ 25 public abstract class UseCase<Q ...

  5. eclipse导入myeclipse的web项目没法识别问题解决方法

    1.进入项目目录,找到.project文件,打开. 2.找到<natures>...</natures>代码段. 3.在第2步的代码段中加入如下标签内容并保存: <nat ...

  6. linux环境 :Linux 共享库LIBRARY_PATH, LD_LIBRARY_PATH 与ld.so.conf

    参考: 1. Linux 共享库:LD_LIBRARY_PATH 与ld.so.conf Linux环境变量名,该环境变量主要用于指定查找共享库(动态链接库)时除了默认路径之外的其他路径.(该路径在默 ...

  7. 博弈问题之SG函数博弈小结

    SG函数: 给定一个有向无环图和一个起始顶点上的一枚棋子,两名选手交替的将这枚棋子沿有向边进行移动,无法移 动者判负.事实上,这个游戏可以认为是所有Impartial Combinatorial Ga ...

  8. PB+MS SQL+触发器必须指出

    PB+MS SQL+触发器必须指出: 若触发器存在两笔以上的返回值,比方两条update 语句,被误判为数据有改变.存盘不成功. 提示: Row changed between retrieve an ...

  9. ftk学习记(对话框篇)

    [声明:版权全部,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 前面谈到了输入法,首先看一看效果. 上面有4个输入框,大家能够分别试试,看看效果怎样. 今天,我 ...

  10. 查找后去掉EditTextView的焦点

    //在按钮点击事件里处理 bt_search.setOnClickListener(new OnClickListener() { public void onClick(View v) {      ...