firebug使用
查看网页的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使用的更多相关文章
- 开发者最爱的Firebug停止更新和维护
近日,Firebug团队在其官网上宣布,Firebug将不再继续开发和维护,并邀请大家使用Firefox的内置开发工具. Firebug最初是2006年1月由Joe Hewitt编写, ...
- firebug不能加载JS文件 ,无法进行JS脚本调试
提示: 本页面不包含 Javascript 如果 <script> 标签有 "type" 属性,其值应为 "text/javascript" 或者& ...
- Firebug中调试中的js脚本中中文内容显示为乱码
Firebug中调试中的js脚本中中文内容显示为乱码 设置 页面 UFT-8 编码没用, 解决方法:点击 "Firebug"工具栏 中的"选项"---" ...
- Firebug调试js代码
Firebug功能异常强大,不仅可以调试DOM,CSS,还可以调试JS代码,下面介绍一下调试JS. 1.认识console对象 console对象是Firebug内置的对象,该对象可以在代码中写入,可 ...
- 修改Firebug字体
Firebug是一件非常好用的调试工具,然而默认的字体有些单调,设置里又没有更改的选项,那么字体到底能不能更改呢?这个问题困扰了我好久,直到今天我才偶然发现了解决方案. Firebug属于火狐的一个插 ...
- Selenium FF WebDriver 加载firebug 和设置代理
首先这次使用的webDriver for Firefox的 由于项目的原因,需要在测试的时候加载Firebug和使用vpn,加载代理 Firefox 加载代理,可以从FF菜单上看,代理分为好几种 我这 ...
- [资源分享]yslow 与firebug 修复版本Firefox35【绿色版本下载】
自从火狐也开始做版本帝后,相关查的插件越来越不好使了, 而且火狐集成自己的调试工具,也不是很好使用,Yslow 也坏掉了 找公司写c++修复了下 把yslow和Firebug 打包到一起,而且关闭自动 ...
- 10分钟学会前端调试利器——FireBug
概述 FireBug是一个用于网站前端开发的工具,它是FireFox浏览器的一个扩展插件.它可以用于调试JavaScript.查看DOM.分析CSS.监控网络流量以及进行Ajax交互等.它提供了几乎前 ...
- 利用firebug调试功能辅助了解闭包和this
算一算,有段时间没写博客. 上午的时候翻看以前收藏的一个系列博文<深入理解javascript原型和闭包>, 讲闭包那节:http://www.cnblogs.com/wangfupeng ...
- 工欲善其事必先利其器——web调试工具firebug
一.Firebug工具简介 firebug是firefox下的一款开发类插件.firebug集html查看和编辑,JavaScript控制台,网络状况监视器于一体,是开发JavaScript,css, ...
随机推荐
- TImage也有OnClick事件,可以当按钮使用,配上合适的图片(背景透明,效果前凸)更是几乎以假乱真
本质上TImage与TSpeedButton没有什么区别,都是没有句柄的,但都可以执行OnClick事件.有空分析一下.
- Swift - 同步请求获取网络数据
使用NSURLConnection可以实现http通信.它提供了异步请求和同步请求两种通信方式. 注意:同步请求数据会造成主线程阻塞,必须请求结束后用户才能做其他的操作,所有通常在请求大数据或者网络不 ...
- xcode-build/version-bump
# xcode-build-bump.sh # @desc Auto-increment the build number every time the project is run. # @usag ...
- CSS3实现8种Loading效果【第二波】
原文:CSS3实现8种Loading效果[第二波] 今晚吃完饭回宿舍又捣鼓了另外几种Loading效果,老规矩,直接“上菜“…… 注:gif图片动画有些卡顿,非实际效果! PS:若要转载请注明出处,尊 ...
- Not able to reset SmartRF04DD
今天在使用使用CC2540的时候,想下载个程序到CC2540底板上,结果出现Not able to reset SmartRF04DD的错误.如下图 经过一番摸索,最终是按下CCDEBUG上的rese ...
- Boost Thread学习笔记二
除了thread,boost种:boost::mutexboost::try_mutexboost::timed_mutexboost::recursive_mutexboost::recursive ...
- 使用apache daemon让java程序在unix系统上以服务方式运行
通过使用apache_commons_daemon,可以让Java程序在unix系统上以服务器的方式运行. 当然,通过wrapper也是可以达到这样的目的,wrapper还可以指定java应用中用到的 ...
- 快速排序的时间复杂度nlogn是如何推导的??
本文以快速排序为例,推导了快排的时间复杂度nlogn是如何得来的,其它算法与其类似. 对数据Data = { x1, x2... xn }: T(n)是QuickSort(n)消耗的时间: P(n)是 ...
- Mahout-Pearson correlation的实现
计算公式: 并通过以下代码对Mahout in Action的结果进行了验证: 代码例如以下: ` package com.example.mahout; public class TestColl ...
- 【Unity3D自学记录】Unity3D网络之Socket聊天室初探
首先创建一个服务端程序,这个程序就用VS的控制台程序做即可了. 代码例如以下: using System; using System.Collections.Generic; using System ...