Linux/Unix系统利用nc搭建HTTP请求调试工具

nc是一个强大的网络工具,可以用它来扫描端口,传输文件,远程克隆分区等等。详细信息可以参考这篇博文

除了上面的使用场景之外,还能用nc来模拟发送HTTP 请求

test@test-virtual-machine$ nc www.baidu.com 80
GET / HTTP/1.1
<---这里要 换行,根据HTTP协议规定,HTTP header和报文主体之间通过空行来分隔
HTTP/1.1 302 Moved Temporarily
Date: Thu, 10 May 2018 03:47:06 GMT
Content-Type: text/html
Content-Length: 225
Connection: Keep-Alive
Location: http://www.baidu.com/search/error.html
Server: BWS/1.1
X-UA-Compatible: IE=Edge,chrome=1
BDPAGETYPE: 3
Set-Cookie: BDSVRTM=0; path=/

<html>
<head><title>302 Found</title></head>
<body bgcolor="white">
<center><h1>302 Found</h1></center>
<hr><center>a0d46eadd08a4c61268f5c8b1823b29e70957b7c
Time : Fri Apr 20 10:34:36 CST 2018</center>
</body>
</html>

这就模拟了一次HTTP的GET请求,但是在nc的交互中输入比较麻烦,但nc作为伟大Linux/Unix环境下的工具是支持重定向的,"<"符号解决您的烦恼。

事先把HTTP header保存到一个文件里,header.txt

HEAD / HTTP/1.1
Host: www.baidu.com

注意文件末尾要有空行

然后执行

test@test-virtual-machine$ nc www.baidu.com 80 < header.txt
HTTP/1.1 200 OK
Server: bfe/1.0.8.18
Date: Thu, 10 May 2018 03:49:25 GMT
Content-Type: text/html
Content-Length: 277
Last-Modified: Mon, 13 Jun 2016 02:50:40 GMT
Connection: Keep-Alive
ETag: "575e1f80-115"
Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
Pragma: no-cache
Accept-Ranges: bytes

这样一个HEAD请求就被发送了出去,你可以修改header.txt的内容,把method改成GET, POST,也可以加上报文主体,只要符合HTTP请求规范就行。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,303评论 19 139
  • 一、概念(载录于:http://www.cnblogs.com/EricaMIN1987_IT/p/3837436...
    yuantao123434阅读 8,678评论 6 152
  • (本文参考课本是《HTTP权威指南》,文中的书写结构是根据自己的阅读理解的个人思路,如有不懂可以自行参考原书) 第...
    Andrew_bao阅读 657评论 1 3
  • 早上七点,小柿子发微信说,做梦梦见我们去西湖拍婚纱了,很感动。那个说做梦都想娶你的人终于如愿,而我也如愿嫁给爱情。...
    杂草韩阅读 415评论 1 3
  • 学习利用pickle模块进行写入和读取操作 作业 因为写入文件的内容被删除了,据大大的提示改了代码顺序先写入再读取...
    陈容喜阅读 221评论 0 0

友情链接更多精彩内容