地址(172.16.0.10);在“服务器信息/端口”中填入POP3协议端口号(110)。 3.用POP3命令实现邮件的接收。
在发送数据窗口编辑发送POP协议的命令,在显示数据窗口察看服务器端返回的信息: 发送窗口:user group1_1
发送窗口:pass group1_1
发送窗口:stat
发送窗口:uidl
发送窗口:list
发送窗口:retr 1
发送窗口:dele 1
发送窗口:quit
4. 察看主机B捕获的数据,加深理解步骤3所使用的POP3命令的使用方法和用途。 练习五:使用TCP连接工具和IMAP命令实现邮件接收
1.主机B启动协议分析器进行数据捕获并设置过滤条件(提取IMAP协议)。 2.主机A与邮件服务器建立一个TCP连接。 3.用IMAP命令实现邮件的接收。
在发送数据窗口编辑发送IMAP协议的命令,在显示数据窗口察看服务器端返回的信息: 发送窗口:00A1 CAPABILITY
在本练习中是将邮件所有内容一次全部取出,尝试利用FETCH命令提取邮件头或某一邮件附件头部的某一字段。
【思考问题】
1.电子邮件系统使用TCP传送邮件。为什么有时我们会遇到邮件发送失败的情况?为什么有时对方会收不到我们发送的邮件?
服务器忙,写收件人的地址错误。 接收方的邮件服务器出故障。 3.
通过实验说明你的电子邮件在网络上传输是安全的吗?为什么?如果不安全,你认为实现邮件安全传输的最好的办法是什么?
不安全,因为经常在别人的机子上收到错误的邮件。端到端的通信,直接实现两台机
24
子的传输而不经过服务器。
实验七 超文本传输协议HTTP
【实验目的】
1.掌握HTTP的报文格式 2. 掌握HTTP的工作原理 3. 掌握HTTP常用方法 【实验环境配置】
该实验采用网络结构一。 【实验原理】
超文本传输协议主要用于访问WWW上的数据。协议以普通文本、超文本、音频、视频等格式传输数据。称为超文本协议,原因是在应用环境中,它可以快速的在文档之间跳转。HTTP在公认端口80上使用TCP服务。 HTTP报文:
HTTP报文有两种一般的类型:请求和响应。这两种报文类型的格式几乎是相同的。报文格式如下:
HTTP方法 :
HTTP报文中的方法是客户端向服务器端发出的实际命令和请求。常用HTTP方法如下:
方 法 GET HEAD POST PUT PATCH HTTP状态码:
在响应报文中,请求行被替换为状态行,由3位数字组成,表示请求是否被理解或被满足。
状态码 说 明 说 明 客户要从服务器读取文档时使用 当客户想得到关于文档的某些信息但并不是要这个文档时使用 当客户要给服务器提供某些信息时使用 当客户将新的或更换的文档存储在服务器上时使用 和PUT相似,不过只包含必须在现有文件中出现的差异清单 25
100系列 200系列 300系列 400系列 500系列 HTTP持续与非持续连接:
提供信息的报文 指示成功的请求 把客户重定向到另一个URL 指示客户端差错 指示服务器端差错 HTTP1.0定义了非持续连接,每次请求/响应都要建立TCP连接。而HTTP1.1默认的连接是持续连接,服务器在发送响应以后会保持连接状态,等待更多的请求。
HTTP代理服务器:
代理服务器是一台保存最近请求的响应的拷贝的计算机。在代理服务器存在的情况下,当HTTP客户端访问网页时,HTTP客户端会向代理发出请求,代理检查高速缓存,如果缓存中不存在响应报文,代理会向相应的服务器发送请求,这样降低了原服务器的负载,减少了通信量并降低了延迟。但是,使用代理服务器,客户端必须配置为访问代理服务器而不是目标服务器。
统一资源定位符URL:
URL是对可以从Internet上得到的资源的位置和访问方法的一种简洁表示,也是指明Internet上任何种类信息的标准。它定义四种要素:方法、主机、端口和路径(方法://主机:端口/路径)。
方法:用来读取文档的协议。
主机:存放信息的计算机。万维网页面通常存储在以“www”为起始别名的计算机中。 端口:服务器应用程序的端口号。 路径:信息所存放的路径名。 万维网工作过程:
26
【实验步骤】
按照拓扑结构图连接网络,使用拓扑验证检查连接的正确性。本试验将主机A和B作为一组,主机C和D作为一组,主机E和F作为一组。现仅以主机A和B为例,说明实验步骤。
练习一:页面访问
1. 主机A清空IE缓存。
2. 主机B启动协议分析器开始捕获数据并设置过滤条件(提取HTTP协议)。 3. 主机A启动IE浏览器,在“地址”框中输入“http://172.16.0.10/ experiment”,并连接。 4. 主机B停止捕获数据,保存会话命令(方法:会话交互视图\\单击右键\\保存会话命令
菜单,保存为Http1.txt),分析捕获到的数据,并回答以下问题:
? 本练习使用HTTP协议的哪种方法?简述这种方法的作用。
Get 请求读取由URL所标志的信息 ? 根据本练习的报文内容,填写下表。
主机名 URL 服务器类型 传输文件类型 访问时间
172.16.0.200 http://172.16.0.200/ experiment APACHE/2.0.40(RED HAT LINUX) IMAGE/GIF Wed,15 Mar 2006 02:53:39 GMT ? 参考“会话分析”视图的显示结果,绘制此次访问过程的报文交互图(包括TCP协议)。
? 简述TCP协议和HTTP协议之间的关系。
27
练习二:页面提交
1. 主机B启动协议分析器开始捕获数据并设置过滤条件(提取HTTP协议)。 2. 主机A启动IE浏览器,在“地址”框中输入“http://172.16.0.10/ experiment/post.html”,
并连接。在返回页面中,填写“用户名”和“密码”,单击“确定”按钮。
3. 主机B停止捕获数据,保存会话命令(方法:会话交互视图\\单击右键\\保存会话命令
菜单,保存为Http2.txt),分析捕获到的数据,并回答以下问题:
本练习的提交过程使用HTTP协议的哪种方法?简述这种方法的作用。 此次通信分几个阶段?每个阶段完成什么工作?
参考“会话分析”视图的显示结果,绘制此次提交过程的报文交互图(包括TCP协议)。
练习三:获取页面信息
1. 主机A启动仿真编辑器,进入“TCP连接视图”。
2. 主机B启动协议分析器开始捕获数据,并设置过滤条件(提取HTTP协议)。 3. 主机A在“TCP连接视图”上,设置“服务器信息\\IP地址”为服务器IP
(172.16.0.10);设置“服务器信息\\端口”为80;单击“连接”按钮来和服务器建立连接。
4. 主机A在“TCP连接视图”上,设置“发送数据(文本)”为以下内容:
HEAD /experiment/ HTTP/1.1
Host: 172.16.0.10
单击“发送”按钮。(注
5. 主机A在“TCP连接视图”上的“显示数据(文本)”中察看服务器返回信息。 HEAD/experiment/HTTP/1.1
Host:172.16.0.200 HTTP/1.1 200 OK
Date: Sun, 20 Nov 2011 02:23:26 G
28
6. 主机B停止捕获数据,保存会话命令(方法:会话交互视图\\单击右键\\保存会话命令
菜单,保存为Http3.txt),分析捕获到的数据。
练习四:较复杂的页面访问
1. 主机A使用“ipconfig /flushdns”命令清空DNS高速缓存。
2. 主机B启动协议分析器开始捕获数据并设置过滤条件(提取DNS、HTTP协议)。 3. 主机A启动IE浏览器,在地址框中输入
http://JServer.NetLab/complexpage.html 。
4. 主机B停止捕获数据,保存会话命令(方法:会话交互视图\\单击右键\\保存会话命令菜单,保存为Http4.txt),分析捕获到的数据,并回答以下问题: (1)简述主机B捕获到的DNS报文在本次通信中所起到的作用。 (2)结合本次试验结果,简述浏览器是如何处理一个访问请求的。
【思考问题】
1. 同时打开多个浏览器窗口并访问一WEB站点的不同页面时,系统是根据什么把返回
的页面正确地显示到相应窗口的?
根据HTTP1.1持续连接。同一个客户和该服务器在发送响应后仍然在一段时间内保持连接一个主页是否只有一个连接?
2. 为什么HTTP不保持与客户端的TCP连接? 不一定,有域名指向服务
3. 为什么HTTP不保持与客户端的TCP连接?
HTTP是无状态的。HTTP本身是无连接的。原因攻击来源无法定位,在服务端无法区分TCP连接请求是否合法。
29