c++如何自定义http报文结构构

C++发送GET HTTP报文中Content-Length:是否必须要带-CSDN论坛
C++发送GET HTTP报文中Content-Length:是否必须要带
C++发送GET&HTTP报文中Content-Length:是否必须要带
HTTP&请求报文
l&HTTP&Command:&//方法字段,说明其使用的是GET&方法
l&URI:&/&//URL&字段,发送请求至保存该网站的服务器。
l&HTTP&Version:&//http&协议版本字段,用是的http/1.1&版本
l&Accept:&//指示可被接受的请求回应的介质类型范围列表。
l&Accept-Language:&//限制了请求回应中首选的语言为简体中文,否则使用默认值。
l&Accept-Encoding:&//限制了回应中可接受的内容编码值,指示附加内容解码方式为gzip,deflate.
l&User-Agent:&//定义用户代理,即发送请求的浏览器类型为Mozilla/4.0
l&Host:&www.XX.com\r\n&//定义了目标所在的主机
l&Connection:&Keep-Alive\r\n&//告诉服务器使用持久连接想用C++编写一段接收以太网类型为0x88ba(数字化变电站中的采样值报文)的广播报文,不知道怎么实现?20-土地公问答
想用C++编写一段接收以太网类型为0x88ba(数字化变电站中的采样值报文)的广播报文,不知道怎么实现?20
想用C++编写一段接收以太网类型为0x88ba(数字化变电站中的采样值报文)的广播报文,不知道怎么实现?20
答:这个不是你说编就编的,要看你的网络整体是怎么构建的,有了共同的约定和已知的IP地址,或者你直接用网络广播地址。这里需要做得很多,方法也很多,就看你想怎样构建自己的网络。
其它类似问题
其它人正在问的问题一、网络中进程之间如何通信?
&&&&&socket一词的起源:在组网领域的首次使用是在日发布的文献中发现的,撰写者为Stephen Carr、Steve Crocker和Vint Cerf。根据美国计算机历史博物馆的记载,Croker写道:&命名空间的元素都可称为套接字接口。一个套接字接口构成一个连接的一端,而一个连接可完全由一对套接字接口规定。&计算机历史博物馆补充道:&这比BSD的套接字接口定义早了大约12年。&
3.3、网络字节序与主机字节序
主机字节序:就是我们平常说的大端和小端模式:不同的CPU有不同的字节序类型,这些字节序是指整数在内存中保存的顺序,这个叫做主机序。引用标准的Big-Endian和Little-Endian的定义如下:
  a) Little-Endian就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。
  b) Big-Endian就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。
3.4、listen()、connect()函数
SYN表示建立连接,
FIN表示关闭连接,
ACK表示响应,
PSH表示有 DATA数据传输,
RST表示连接重置。
我们知道tcp建立连接要进行&三次握手&,即交换三个分组。大致流程如下:
&&&&&& 只有就完了三次握手,但是这个三次握手发生在socket的那几个函数中呢?请看下图:
阅读(...) 评论()新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
白手起家, 积分 171, 距离下一级还需 29 积分
论坛徽章:1
本帖最后由 linuxchyu 于
13:44 编辑
最近在做抓取Http请求报文分析的工作,先上抓取分析结果:(我是基于libpcap用C语言写的工具)**** *****1: 21:11:27&&cap len :1514 **** ****
frag : 0x4000 //相应IP报文的标记字段 &
data length :1460&&//TCP数据段的数据长度 ,以下是数据字段对应的字符显示:
POST /aj/mblog/add?_wv=5&__rnd=6 HTTP/1.1
Host: weibo.com
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0.11) Gecko/ Firefox/10.0.11
Accept: text/html,application/xhtml+xml,application/q=0.9,*/*;q=0.8
Accept-Language: en-us,q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Content-Type: application/x-www-form- charset=UTF-8
X-Requested-With: XMLHttpRequest
Referer: http://weibo.com/u/?wvr=5&wvr=5&lf=reg
Content-Length: 100
Cookie: __utma=; __utmz=.1.utmcsr=blog.sina.com.cn|utmccn=(referral)|utmcmd=referral|utmcct=/s/blog_86fe5b440100uni3. UOR=www.sina.com.cn,weibo.com,www.sina.com. SINAGLOBAL=.363284; ULV=4:1:1:1:.363284:; ALF=; un=linuxchyu@sina. wvr=5; SinaRot_wb_r_topic=38; USRUG=usrmdins1540_24; _s_tentry=www.sina.com. Apache=.363284; USRHAWB=usrmdins540_96; SUE=es%3Dc3adf336a31c0eea60cf%26ev%3Dv1%26es2%3D4299fda73c6d%26rs0%3DClD8mrOWsCZnFYSL8kTv2aVIVmRRV7xT2UWXM3uGgQPXtcP4P0LlhztuA5zBwLUUkQOVaBSJreyg6pLmHBjbZsN%252BdgREjcIAcUU0ozXyXHgmOA5DPbG2w5wb30jObcprOAS0AiZcWCkO75oS6eW1qm6F9lLd3SDWso8QEXu%252Fsfg%253D%26rv%3D0; SUP=cv%3D1%26bt%3D%26et%3D%26d%3Dc909%26i%3D5df2%26us%3D1%26vf%3D0%26vt%3D0%26ac%3D0%26st%3D0%26uid%3D%2
**** *****2: 21:11:27&&cap len :427 **** ****
frag : 0x4000 //相应IP报文的标记字段 &
data length :373&&//TCP数据段的数据长度 ,以下是数据字段对应的字符显示:&6user%3Dlinuxchyu.%252A%252A%26ag%3D9%26name%3Dlinuxchyu%2540sina.com%26nick%3D%25E8%E5%25AF%2592%26fmp%3D%26lcp%3D; SUS=SID---GZ-rufv3-ddc28e68649; SSOLoginState=
Pragma: no-cache
Cache-Control: no-cache
text=6666&pic_id=&rank=0&rankid=&_surl=&hottopicid=628&location=home&module=stissue&_t=0复制代码通过分析以上两个报文可以知道,一个Http请求被拆分为两个报文发送,但是第一个报文的Ip MF字段又没有被标记,请问大家根据什么才能将以上两个报文的数据字段合并?也就是说怎么才能知道以上两个报文实际上是属于同一个Http请求的报文?又知道用wireshark抓取的以上同一个Http报文,发现抓取结果是合并后的报文。wireshark又是根据什么来合并以上两个分开的报文?
解决问题的方向找到了,其实就是TCP会话重组,下一步就是实现TCP会话重组了。
丰衣足食, 积分 969, 距离下一级还需 31 积分
论坛徽章:1
http是TCP协议
白手起家, 积分 171, 距离下一级还需 29 积分
论坛徽章:1
本帖最后由 linuxchyu 于
00:00 编辑
是TCP协议,问题是怎么把几个分片组合到一起,依据是什么?
丰衣足食, 积分 574, 距离下一级还需 426 积分
论坛徽章:1
http是更上层的东西。你抓到的是tcp包,理论上有可能出现一个包里包含了前一个请求的末尾部分核后一个包的开始部分的。你抓到包后严格按照http协议来就可一了(http包的length头或着空行结尾),这就跟自己写了一个协议一样的。假设你自己写了一个http服务器,你怎么从客户端发来的数据里提取一个个http请求呢? 一样的道理。
白手起家, 积分 171, 距离下一级还需 29 积分
论坛徽章:1
本帖最后由 linuxchyu 于
13:59 编辑
& & 谢谢你的回答,但是这些不是问题,我想知道的是如何知道几个不同的分片是属于同一个HTTP请求数据?因为抓取的所有的分片IP包头里的MF标志位为0.
并且这和自己写HTTP服务器不用,如果是在服务器中则很容易获得完整的HTTP请求数据,但是我的需求是利用libpcap抓取数据包,如何根据抓取的数据包判断哪
几个数据包是属于同一个HTTP请求?
论坛徽章:0
HTTP是七层协议,所以会由七层应用去把握,TCP关心不到。
至于判断哪几个数据包是属于同一个HTTP请求,会有对应的头字段作标记的,你看一下RFC 2616文档后,应该就知道了。
论坛徽章:0
你需要对数据做一下解析,如果你在不解析HTTP协议数据的情况下,应该是无法实现你的目的。
白手起家, 积分 171, 距离下一级还需 29 积分
论坛徽章:1
& & 呵呵,对HTTP请求报文分析是肯定要做的事情,但是,在服务器端要用基于libpcap的工具抓取所有到达服务器的http请求报文,并且,抓取的数据是直接过滤复制网卡的数据,那么需要根据什么规则判断哪些报文是属于同一个HTTP请求报文呢?
丰衣足食, 积分 574, 距离下一级还需 426 积分
论坛徽章:1
& & 没用过libpcap,不太理解难点在哪里? 你是说所有连接的http包你都抓到一起了吗, 如果是的话,那通过客户端端口号就可以区分请求所在连接了。
& &看你1楼贴的抓到的内容,似乎就是同一连接上的1个http请求分到两次抓包抓到了, 这跟自己做服务器的时候不是一样的麼,自己做服務器也是1個請求可能分兩次收取完。
白手起家, 积分 171, 距离下一级还需 29 积分
论坛徽章:1
本帖最后由 linuxchyu 于
19:11 编辑
呵呵,这是通过libpcap工具抓取的包,是直接复制网卡上的数据,这个工具运行在服务器端的机器上,抓取的是所有发到端口号是80的tcp数据包,所有的客户端的http请求数据包会同时出现在网卡上,需要通过一些规则找出哪些属于同一个HTTP请求报文的数据包。
北京盛拓优讯信息技术有限公司. 版权所有 京ICP备号 北京市公安局海淀分局网监中心备案编号:22
广播电视节目制作经营许可证(京) 字第1234号
中国互联网协会会员&&联系我们:
感谢所有关心和支持过ChinaUnix的朋友们
转载本站内容请注明原作者名及出处购买商品:
商品价格:
价格读取中
支付方式:
请扫码进行支付
请扫码进行支付
原价:¥1999.00
会员立省199.90元,
本课程为收费课程,请先购买当前课程
本课程为会员课时,请先开通会员
本课程为会员课时,您的会员账号已经过期
本课程为会员课时,您的会员账号已被禁用
文件地址有误
章未解锁,暂无观看权限
拼团未完成,暂无观看权限
购买未完成,暂无观看权限
播放器加载失败: 未检测到Flash Player,请
正在打包,请勿关闭和刷新页面
下一节课程:学习的重要性 (02:59)
每周都有机会获得讲师会员卡~~~
第一章:搭建多平台下C++开发环境
第二章:Socket网络通信基础
第三章:多平台下的客户端网络通信
第四章:一步一步建立高性能服务器
第五章:案例分析(单服模拟10000用户并发操作)直连模式
第一章:搭建多平台下C++开发环境
第二章:Socket网络通信基础
第三章:多平台下的客户端网络通信
第四章:一步一步建立高性能服务器
第五章:案例分析(单服模拟10000用户并发操作)直连模式
领取优惠券
正在努力加载中~~

我要回帖

更多关于 http报文结构 的文章

 

随机推荐