目录
一、HTTP协议
1.简介
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。
HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。
HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。
2.特点
(1)简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
(2)灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
(3)无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
(4)无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
(5)支持B/S及C/S模式
二、网络抓包-Wireshark
1.Wireshark简介
Wireshark是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换
2.抓包
1.打开Wireshark就可以看见自己机器上的所有的接口。
2. 点击捕获->选项
这里可以选择WLAN2->点击开始
开始捕获
3.捕获过滤器
1.捕获–>捕获过滤器
2.点击+新建Filter Name和Filter Expression
wireshark过滤规则表达式:
1.协议过滤:在表达式栏中直接填写协议名:比如TCP 只显示TCP协议报文tcp udp arp http 等
2. IP 过滤:在显示过滤器表达式栏中填写:例如
ip.src == 192.168.1.102 显示源地址为192.168.1.102的报文
3. 端口过滤:
tcp.port ==80 显示tcp 协议的源或者目的端口为80的报文;
tcp.srcport ==80 显示tcp 端口号为80的报文
tcp.dstport ==80 显示tcp 端口号为80的报文
4.http 模式的过滤
http.request.method =="GET" //过滤get包
http.request.method == "POST"// 过滤post包
5. 包长度过滤:
udp.length == 26 //这个长度是指udp本身固定长度8加上udp下面那块数据包之和
备注: udp 的整包的长度 = ip 头部长度(20)+以太网头部长度(14)+udp 数据包的长度
tcp.len >= 29,代表查询出来tcp协议的数据包,且包长度大于等于29的数据包
备注:此处tcp数据包长度+tcp头部(20)+ip头部(20)+以太网头部(14)=整体数据包长度。
6. MAC地址的过滤
这里可以选择ip过滤
三、TCP三次握手
1.TCP特点
①TCP是面向连接的传输层协议。
②TCP连接是点对点的(套接字–IP:Port到套接字)。
③TCP提供可靠交付的服务。
④TCP提供全双工通信。
⑤面向字节流。
2.TCP包中的字段
3.分析
1)客户端发送一个TCP,标志位SYN,序列号为0,客户请求建立连接
2)服务器返回确认号,标志位为SYN、ACK,确认号为1
3)客户端再次发送确认包,SYN标志位为0,ACK标志位为1,ACK的序号字段+1,放在确认字段中发送给对方,并且在数据段写ISN+1
总结:
通过这一次的实验,我学会了TCP HTTP网络协议。以及如何用wireshark软件抓取相应的数据包,并且了解了TCP三次握手的过程。
参考文献:
关于HTTP协议,一篇就够了 - 简书 (jianshu.com)
(50条消息) wireshark过滤规则表达式_wangzhen_csdn的博客-CSDN博客