我正在学习 HTTP 协议,我想知道是否有一个工具可以用来输入我自己创建的 HTTP 请求,然后输出原始响应。我看过 cURL 和 wget,但它们似乎没有明显的选项来做到这一点。例如:
$ http_response < my_http_request.txt
HTTP/1.0 200 OK
Date: Sat, 24 Jul 2010 18:43:58 GMT
etc..
答案1
许多人会推荐telnet
这个,而且它确实有效,但我更喜欢使用netcat
。原因是它telnet
被设计用于特定协议,即 TELNET 协议(我甚至不确定还有人使用它……),因此它具有各种与 HTTP 完全无关的花哨功能(即它识别一大堆选项、命令和转义字符)。另一方面,它netcat
只是获取其标准输入并通过网络逐字节发送出去。仅此而已。这正是发送原始 HTTP 请求所需要的。
有各种版本,netcat
但通常其用法相同telnet
:
netcat host port < my_http_request.txt
(在我的计算机上,程序名称是nc6
而不是netcat
,因此请根据需要替换)
答案2
很简单,只要通过 80 端口使用 telnet 即可。
telnet www.example.com 80 < your_http_request.txt
答案3
我用过独立版的圣甲虫成功了。
我使用 Java Web Start 版本时没有取得太大成功,但它可能对你有用。
WebScarab 是一个用于分析使用 HTTP 和 HTTPS 协议进行通信的应用程序的框架。它是用 Java 编写的,因此可以移植到许多平台上。WebScarab 有几种操作模式,由许多插件实现。在最常见的用法中,WebScarab 充当拦截代理,允许操作员在浏览器创建的请求发送到服务器之前查看和修改请求,并在浏览器收到服务器返回的响应之前查看和修改响应。WebScarab 能够拦截 HTTP 和 HTTPS 通信。操作员还可以查看通过 WebScarab 的对话(请求和响应)。