计算机网络实验——HTTP

时间:2024-04-02 15:54:12


一.      实验说明。

在这个实验中,我们将探讨HTTP协议的几个方面:基本的GET/response交互、HTTP消息格式、检索大型HTML文件、检索带有嵌入对象的HTML文件、以及HTTP认证和安全性。

二.      基本HTTP获取/响应(GET/response)交互

我们通过下载一个非常简单的HTML文件来开始对HTTP的探索——一个非常短的、不包含嵌入对象的文件。

a.     启动网页浏览器。

计算机网络实验——HTTP

b.     启动EnthalBox嗅探器,如介绍性实验室中所描述的(但尚未开始捕获数据包)。在“显示筛选器规范”窗口中输入“HTTP”(只是字母,而不是引号),以便只在分组列表窗口中显示捕获的HTTP消息。(我们只对HTTP协议感兴趣,不想看到捕获所有的混乱数据包)。

计算机网络实验——HTTP

c.     等待一分钟多一点(我们马上就会明白),然后开始以太包捕获。

计算机网络实验——HTTP

d.     向浏览器输入以下内容:

http://gaia.cs.umass.edu/ethereal-labs/HTTP-ethereal-file1.html

浏览器应该显示非常简单的单行HTML文件。

计算机网络实验——HTTP

e.     停止抓包

计算机网络实验——HTTP

通过抓包结果可以看到,客户端向服务器请求一个简单的HTML文件,服务器将该文件返回给客户端。

 

问题:

1.     浏览器运行HTTP版本1还是1.1?服务器运行的是什么版本的HTTP?

浏览器运行的HTTP版本是1.1,服务器运行的HTTP版本也是1.1。

本地浏览器:

计算机网络实验——HTTP

              服务器:

计算机网络实验——HTTP

2.     您的浏览器显示哪些语言(如果有的话)可以通过服务器接收?

我的本地浏览器显示简体中文(zh_CN)

计算机网络实验——HTTP

3.     你的电脑的IP地址是什么?gaia.cs.umass.edu服务器呢?

本地电脑ip: 10.63.108.63

gaia.cs.umass.edu服务器ip:128.119.245.12

计算机网络实验——HTTP

4.     从服务器返回到浏览器的状态代码是什么?

返回的状态代码是 200 ,表示成功处理请求。

计算机网络实验——HTTP

5.     您在服务器上检索到的HTML文件是在什么时候修改的?

在服务器上检索到的HTML文件修改时间:2018.5.14  05:59:01

计算机网络实验——HTTP

6.     有多少字节的内容被返回到浏览器?

有126字节的内容被返回到浏览器。

计算机网络实验——HTTP

7.     除以上已回答过的字段外,头部还有哪些字段?在数据包内容窗口中检查原始数据,是否有未在数据包列表中显示的头部?

HTTP请求报文中还有Host字段、connection字段、Accept字段、User-agent字段、Accept-Encoding字段等。

计算机网络实验——HTTP

HTTP响应报文中还有server字段、connection字段等。

计算机网络实验——HTTP

三.      HTTPGET/Response 有条件的相互作用。

步骤

①打开Wireshark,开始数据包捕获。

②在你的浏览器中输入如下的 URL 地址:http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file2.html

浏览器将会显示一个很简单的 5 行的 HTML 文件;

计算机网络实验——HTTP

③快速地在你的浏览器中再次输入相同的 URL(或者点一下刷新);

④停止Wireshark 数据包捕获,在在 Wireshark 主窗口顶部的 Filter 中输入“ http”,因此只有捕获的 HTTP 消息稍后将会显示在数据包列表窗口中。

得到如下数据报:

计算机网络实验——HTTP计算机网络实验——HTTP

问题:

8.     从你的浏览器到服务器得到的请求中检查第一个 HTTP GET 的内容。在 HTTP GET中你有没有看到一行“ IF-MODIFIED-SINCE” ?为什么?

没有看到。因为这是浏览器第一次请求该页面。

9.     检查服务器回应内容,服务器明确地返回了文件的内容吗?你怎样断定?

返回了文件内容,因为返回状态码为200。并返回了html文件。

计算机网络实验——HTTP

10.  现在从你的浏览器到服务器得到的请求中检查第二个 HTTP GET 的内容。 HTTP GET 中你有没有看到一行“IF-MODIFIED-SINCE” ?如果有,在“ IF-MODIFIED-SINCE”头部有什么信息?

有这行字段。信息为上次请求该文件的时间。

计算机网络实验——HTTP

11.  第二次 HTTP 返回的状态码是多少?从服务器返回的响应第二个 HTTP GET 的短语是什么?服务器明确地返回了文件的内容吗?为什么?

状态码是304,短语是Not Modified,并没有明确返回文件内容,因为该网页内容在上次访问之后未被修改过,且本地中有上次访问的缓存。

四.      得到较长的文档。

在我们的示例中,检索到的文档是简单而简短的HTML文件。接下来,看看下载一个长的HTML文件时会发生什么。做到以下几点:

①打开你的浏览器,确信你的浏览器缓存是空的,就如上面讨论的;

②打开Wireshark,开始数据包捕获;

③在你的浏览器中输入如下的 URL 地址:http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file3.html 你的浏览器将会显示相当长的美国权利法案;

计算机网络实验——HTTP

④停止 Wireshark 数据包捕获,在 Filter 栏输入“ http”,因此只有捕获的 HTTP 消息稍后将会显示在数据包列表窗口中。

计算机网络实验——HTTP

       问题:

12.  你的浏览器发送了多少个HTTPGET请求消息?

发送了一个HTTPGET请求。

计算机网络实验——HTTP

13.  传输这一个HTTP响应需要多少个TCP数据段?

传输这一个HTTP响应需要4TCP数据段。

计算机网络实验——HTTP

14.  响应HTTP GET请求的相关的状态码和短语是什么?

状态码200,短语OK

计算机网络实验——HTTP

15.  TCP“Continuation”附加关联的传输数据中有没有HTTP状态码和短语?

有状态码和短语。

五.      带有内嵌对象的HTTP

现在,我们已经看到了Ethalar如何显示捕获的大HTML文件的分组流量,我们可以看看当浏览器下载带有嵌入对象的文件时会发生什么,即,包含其他服务器(在下面的示例中,图像文件)存储在另一个服务器上的文件。

       步骤:

①打开浏览器,确定你的浏览器缓存是空的,就如上面讨论的;

②打开Wireshark Network Analyzer,开始数据包捕获;

③在你的浏览器中输入如下的 URL 地址: http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file4.html

计算机网络实验——HTTP

④停止 Wireshark 数据包捕获,在 Filter 窗口中输入“ http”,因此只有捕获的 HTTP 消息稍后将会显示在数据包列表窗口中。

计算机网络实验——HTTP

       问题:

16.  浏览器一共发出了多少个HTTP GET请求?这些请求被发送到的目的地的IP地址是多少?

发送了四个HTTP GET请求,目的地址为:

128.119.245.12

128.119.245.12

128.119.240.90

128.119.240.90

计算机网络实验——HTTP

17.  你的浏览器是否同时下载这两张图片(并发的从两个网站上下载图片)?你是如何判断的?

不是并发下载的,有先后顺序。

计算机网络实验——HTTP

六.      HTTP 认证

访问一个带有密码保护的网站。

步骤:

①确信你的浏览器缓存是空的,就如上面讨论的。关闭你的浏览器,然后再打开;

②打开Wireshark Network Analyzer,开始数据包捕获;

③在你的浏览器中输入如下的 URL 地址:http://gaia.cs.umass.edu/wireshark-labs/protected_pages/HTTP-wireshark-file5.html在出现的对话框中输入用户名和密码,用户名是“wireshark-students”,密码是“networks”;

计算机网络实验——HTTP

④停止Wireshark 数据包捕获,在Filter窗口中输入“ http”,因此只有捕获的HTTP消息稍后将会显示在数据包列表窗口中。

计算机网络实验——HTTP

问题:

18.  服务器对起初的HTTP GET消息的响应(状态码和短语)是什么?与前一部分实验相比,在这个响应消息中出现了什么新的字段?

状态码:401 短语:AuthorizationRequired

新字段:WWW-Authenticate

计算机网络实验——HTTP

19.  当你的浏览器第二次发送HTTP GET消息时,有什么新的字段被包含在HTTP GET消息中?对应的服务器响应有没有新的字段出现?

GET消息中出现了新的Authorization字段。服务器响应出现了ETag字段。

计算机网络实验——HTTP

计算机网络实验——HTTP

20.  当你的浏览器第二次发送HTTP GET消息时,有什么新的字段被包含在HTTPGET消息中?当你输入正确的用户名和密码后,服务器给出的响应是什么?

HTTP request字段。

输入正确的用户名和密码后,服务器给出的响应(状态码200,短语OK):

计算机网络实验——HTTP