??? 由于之前学过《计算机网路》的课程,又因为好奇看完了《图解HTTP》《图解TCP/IP》两本书,另一个因素是机缘巧合临时代替一个同学打了学校网络攻防的总决赛,现学了抓包,解密的肤浅知识,(成绩还不错)。但感觉对于网络概念的理解和实践未能很好的结合,于是找到此课程,希望梳理网络协议并结合练习。对于任何一个涉及互联网工作的技术人员,网络的理解的受益终身的!
1 HTTP协议
了解报文结构后,接下来看看内部的内容是怎么设计的? 协议 就是大家公认的一套标准,但这个标准是怎么设计的呢?
英语,韩语,法语,中文等语言都有自己的单词,语法,句子,构成一套逻辑表达出来。同理,为了规范化这些数据信息,为计算机设计了一套类似的标准----ABNF。
2 ABNF是什么?
ANBF有自己特殊的一套规则: 理解该规则
设计的这套规则里面规定: 实现 回车 的这个操作,定义新名字——>CR,现在人类知道了CR指回车的操作 但是计算机怎么实现该指令呢? 计算机只知道 01,所以再规定 (十六进制) %x0D,计算机就根据16进制指令执行换行操作 现在,人类和计算机都知道怎么实现回车的操作了,对应ABNF表即可。
同理,换行-----%x0A
3 实战演示
以后我们看到类似这个样子的信息,就会一眼认出这是报文。 但是现实中我们怎么才可以获取到报文信息呢?
1 下载安装XSell软件 2 输入命令
telnet www.taohui.pub 80
3 回车后输入请求信息
GET /wp-content/plugins/Pure-Highlightjs_1.0/assets/pure-highlight.css?ver=0.1.0 HTTP/1.1
Host: www.taohui.pub
4 获得响应报文
可以发现,打印的内容分为三部分,2,3部分之间空了一行,就是计算机默默执行了换行LF的指令。
接下来,我们想看看怎么实现的这个指令啊,这个xshell好像不提供这个功能 借助另一个抓包软件wireshark 1 下载软件 2 捕获所有80端口的报文 3 双击捕获的该80端口报文
因为www.taohui.pub的url更新了,返回301状态码,我尝试了之后发现无法成功响应,获取200状态码,所以4的图采用教学视频演示的片段,大家理解意思就好
4 最后一行Hypertext… 里面有报文内容 点击Host:www.taohui.pub,发现下方高亮一部分编码,高亮部分中最后的 0d 0a就是回车换行操作
|