我正在testing一个Apache服务器。 通常我在Firefox中打开xxxx/directory/index.php ,然后阅读httpd/error_logs并排除故障。
我的问题是,如果我的testing系统上没有Web浏览器(例如Chrome / Firefox)会怎么样? 我怎样才能通过terminal进行等效testing? 我试过ping xxxx/directory/index.php但它不工作的方式。
你想要的命令是curl或wget (取决于你的个人喜好)。 这些命令向服务器发出HTTP请求。 它们不是很好的模拟整个页面的负载(默认情况下,它们不会加载HTML页面引用的资源,它们不能执行JavaScript或与页面进行交互),但它不会听起来像是你在追赶任何事情之后。 所以, curl或wget几乎可以肯定适合你。
我的问题是,如果我没有Chrome / Firefox? 我怎样才能通过terminal进行等效testing? 我试过
ping xxxx/directory/index.php但它不工作的方式。
使用ping将无法工作。 所有ping都是从networking地址发送/接收ICMP数据包。 所以在你的例子中,唯一可以实际“ping”的是ping xxxx ,其余的URL( /directory/index.php )只是扼住了ping因为它试图将整个 URLparsing为一个主机名。 错误会是这样的:
ping: cannot resolve xxxx/directory/index.php: Unknown host
但是对于您所寻找的特定types的Web服务器testing/debugging,我通常使用curl但是具体而言,我使用了curl -I -L ,它将只返回基本的响应头,并遵循服务器可能已经存在的任何位置redirect。 -I标志告诉curl只显示标题,而-L标志告诉curl跟随它遇到的任何服务器redirect。
例如,如果我在google.com上运行这个curl -I -L命令:
curl -I -L google.com
我得到以下响应标题:
HTTP/1.1 301 Moved Permanently Location: http://www.google.com/ Content-Type: text/html; charset=UTF-8 Date: Mon, 24 Aug 2015 02:16:32 GMT Expires: Wed, 23 Sep 2015 02:16:32 GMT Cache-Control: public, max-age=2592000 Server: gws Content-Length: 219 X-XSS-Protection: 1; mode=block X-Frame-Options: SAMEORIGIN HTTP/1.1 200 OK Date: Mon, 24 Aug 2015 02:16:32 GMT Expires: -1 Cache-Control: private, max-age=0 Content-Type: text/html; charset=ISO-8859-1 P3P: CP="This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 for more info." Server: gws X-XSS-Protection: 1; mode=block X-Frame-Options: SAMEORIGIN Set-Cookie: PREF=ID=1111111111111111:FF=0:TM=1440382592:LM=1440382592:V=1:S=5ToXkoBHyK2BAjyf; expires=Thu, 31-Dec-2015 16:02:17 GMT; path=/; domain=.google.com Set-Cookie: NID=70=VKM1D8HeCMlye1YjMDYSqPlyIpPHKkitAor--wiqYznamENfNig69ZBW5oBgIR7wOFzVaUB6i4WKj-tqa2WcqbOCeVTc0hB4xQWQzBxpNazPp_20dBiU4in0wIop8mhz; expires=Tue, 23-Feb-2016 02:16:32 GMT; path=/; domain=.google.com; HttpOnly Transfer-Encoding: chunked Accept-Ranges: none Vary: Accept-Encoding
请注意有两个标题返回:
HTTP/1.1 301 Moved Permanently HTTP/1.1 200 OK 这不仅对Apache服务器testing很有用,而且对于debuggingmod_rewrite重写规则等也很有用。
这种curl -I -L方法比使用诸如Chrome或Firefox之类的可视化浏览器更加有用和高效,因为这些程序旨在通过caching内容来优化浏览速度。 这意味着您可以在一秒钟内对Apache服务器进行调整,但是可视化浏览器不一定会立即显示更改,除非您清除caching或强制页面重新加载几次。 curl -I -L显示了服务器当前正在做什么以响应您的请求,这正是您在debugging服务器configuration时所需要的。
@ womble是对的。 但是,如果您没有curl或wget ,则可以使用telnet:
telnet xxxx 80 GET /directory/index.php HTTP/1.1 Host: xxxx
然后再敲一次Enter (标题结尾),你会得到原始的HTML。 如果服务器使用keepalive,则可能必须按Ctrl + D (Unix)或Ctrl + Z (Windows)才能退出。
您可能需要使用基于文本的浏览器 。 这个选项可以让你浏览网页并testing更多的组件。 像forms的东西,因为它是一个完整的浏览器。
使用l ,,或其弟弟链接 ,或elinks 。
如果你想实际浏览页面,我会推荐使用Lynx ,这是Michael Hampton的build议之一。 它呈现的HTML和页面可以通过键盘进行交互。 只是不要指望任何花哨的animation或图片。 🙂
几乎所有的软件包pipe理器都可以使用,包括Mac OS X上的软件包pipe理器。