关于netcat命令与http协议,客户端与服务端交互

在阅读了《erlangOTP实战》中,有一节是讲HTTP协议相关的.利用linux下的命令nc(netcat)以及curl两个命令. 利用netcat可以自行建立监听的套接字,并对发往该套接字的所有数据进行观测。利用curl可向http发送请求.

1>Get请求:

   首先在终端窗口启动命令nc,并让它监听任意一个端口,这里的端口指定为1156:

   $ nc -l 1156

运行起来之后,再打开一个终端窗口,用curl向本地的1156端口发送一条get请求:

$ curl http://localhost:1156/foo

再切换至第一个终端窗口,会看到:

可以从报文头中看到相关信息.

 

2>put请求:

 先创建个文本文件并写入文本:

$ echo erlang > put.txt

接下来,重启nc,在另一个终端窗口启动curl,

$ curl -T put.txt http://localhost:1156/foo

则在另一个终端窗口会看到:

 

注意这里的Expect:100-continue,Expecty协议头用于提升web的交互,如果请求报文中有它,服务端就发送应答"100-continue",指示客户端继续发送报文;如果服务端不打算处理报文体,就关闭连接.

 

 

posted @ 2013-05-22 12:38  孤独信徒  阅读(849)  评论(0编辑  收藏  举报