一、实验原理 1、HTTP协议简介
- HTTP(Hyper Text Transfer Protoco)超文本传输协议
- 基于TCP/IP通信协议来传递数据
- 应用于www(World Wild Web)
http://<服务器地址>[:端口]/<路径>/<文件名>
2、HTTP协议特点
- 基于TCP协议
- 单一请求响应模式
- 无会话状态
- 协议命令简单 GET
- HTML语言
3、HTTP协议工作原理
HTTP协议工作于客户端-服务端架构上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。
文章图片
在本次实验中,用到了三个客户端和一个HTTP服务器,这个交换机在此作为二层交换机,不用配置。
2、实验目的
实现客户端与服务器通信。
3、实验步骤
1.配置客户端的IP地址;
2.配置HTTP服务器的IP地址;
3.配置HTTP服务器的文件根目录;
文章图片
4.测试客户端与服务器之间的连通性;
文章图片
客户端1向HTTP服务器发送ping命令三次,均成功。
5.在Client1上访问HTTP服务器;
文章图片
这时候,我们看到,连接服务器失败。检查一下,发现是因为未开启服务器。
6.开启HTTP服务器;
7.再次在Client1上访问HTTP服务器,同时在G0/0/1进行分组捕获;
文章图片
文章图片
三、实验结果 1、分组捕获到的数据包
文章图片
2、报文分析
1.请求报文
HTTP请求报文由请求行、请求头、空行和请求内容4个部分构成。
1>请求行
由请求方法字段、URL字段、协议版本字段三部分构成,它们之间由空格隔开。常用的请求方法有:GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。
2>请求头
请求头由key/value对组成,每行为一对,key和value之间通过冒号(:)分割。请求头的作用主要用于通知服务端有关于客户端的请求信息。
3>空行
最后一个请求头之后就是空行,用于告诉服务端以下内容不再是请求头的内容了。请求体是可选的,get请求没有请求体。
4>请求内容
请求内容主要用于POST请求,与POST请求方法配套的请求头一般有Content-Type(标识请求内容的类型)和Content-Length(标识请求内容的长度)。
文章图片
GET / HTTP/1.1:使用get方法请求http服务器,路径是/,HTTP版本是1.1。
User-Agent:生成请求的浏览器类型。
Accept:客户端可识别的响应内容类型列表;星号* 用于按范围将类型分组。*/*表示可接受全部类型,type/*表示可接受type类型的所有子类型。
Accept-Language: 客户端可接受的自然语言。
Accept-Encoding: 客户端可接受的编码压缩格式。
Accept-Charset: 可接受的字符集。
Host: 请求的主机名,允许多个域名绑定同一IP地址。
Connection:连接方式(close或keeplive),是否需要tcp的持久连接,keep-alive为持久连接 ,close为非持久连接。
Cookie: 存储在客户端的扩展字段。
2.响应报文
【HTTP协议分析实验】HTTP响应报文由状态行、响应头、空行和响应内容4个部分构成。
1>状态行
由HTTP协议版本、状态码、状态码描述三部分构成,它们之间由空格隔开。
2>响应头
Location:服务器返回给客户端,用于重定向到新的位置。
Server: 包含服务器用来处理请求的软件信息及版本信息。
Vary:标识不可缓存的请求头列表。
Connection: 连接方式。
3>空行
最后一个响应头之后就是空行,用于告诉请求端以下内容不再是响应头的内容了。
4>响应内容
服务端返回给请求端的文本信息。
文章图片
HTTP/1.1 200 OK:响应头部最开始必须是声明协议版本HTTP/1.1,返回状态码,状态描述字符串。
Content-Type:返回MIME类型
Content-Length: 返回字节长度