http协议

0、看这本书《HTTP权威指南》,写的非常好。

1、get

get /add?a=1&b=2 HTTP/1.1\r\n
Host: cgsl:8161\r\n
User-Agent: curl7.47.1\r\n
\r\n

2、post支持两种内容格式

Content-Type: application/x-www-form-urlencoded

\r\n

username=admin&password=1234

第二种格式,用于文件上传

Content-Type: multipart/form-data; boundary=---------------------------7d33a816d302b6

\r\n

-----------------------------7d33a816d302b6
Content-Disposition:form-data;
name="userfile1";
filename="E:\s"Content-Type:
application/octet-stream abbXXXccc
-----------------------------7d33a816d302b6
Content-Disposition: form-data;
name="text1" foo
-----------------------------7d33a816d302b6
Content-Disposition: form-data;
name="password1" bar
-----------------------------7d33a816d302b6--

3、host字段在http1.0中可以没有,在http1.1中必须有。服务端一般不做校验,随便填写一个字符串都可以。如果服务端进行了虚拟服务器的设置,则必须写对。

4、http的基本认证--见http权威指南

4.1 基于用户名+密码的方式,用户名和密码拼接起来,base64编码后发送。如果是https加密通道,就没有问题。如果是http通道,用户名密码会泄露。

4.2 基于摘要的方式。发送的内容是密码的摘要信息,密码不会泄露,但要预防回放攻击,彩虹表攻击。

4.3 前面两种的原理,都是服务端发现请求中没有认证信息,则返回要求认证。浏览器弹出对话框让用户输入用户名密码。

4.4 常见网站,都是应用层进行认证,即http头中没有正确的token,服务端总是返回登陆界面。

5、http消息头是字符串,但body可以是二进制,因为在头部中已经写了body的长度。


6、tcpdump -w data.dmp -s 0 host server_ip and port 3333

-s 指定每个包的长度,0表示不截断。有的系统中,默认值不是0,导致抓到的报文不完整。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值