HTTP

实验二

基于HTTP获取/响应交互

​ 1.启动浏览器,启动资源包嗅探器(尚未开始捕获),显示过滤http,等待一分多钟。

​ 2.访问指定网站http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file1.html

​ 显示如图:

屏幕截图 2021-10-22 111915.jpg

​ 3.停止嗅探,查看内容:

image.png

image.png

​ 浏览器提交GET请求。

浏览器和服务器的HTTP版本均为1.1

浏览器的可接受服务器使用的语言如图所示:

image.png

​ 我的本地IP地址为:192.168.215.71

服务器IP地址为:128.119.245.12

服务器返回状态代码为200 OK表示请求成功。

image.png

​ 可以看见Last-Modified行:Last-Modified: Fri, 22 Oct 2021 05:59:01 GMT\r\n,可以知道服务器检索上次修改的 HTML 文件的时间。

​ 以及Content-Length: 128\r\n,可以知道有多少字节的内容被退回到的浏览器。

GET/response交互

​ 1.清空缓存,启动嗅探器,启动浏览器,访问指定网址,再刷新一次,显示如图。

image.png

​ 2.检查第一个从浏览器到服务器的GET请求,没有If-Modified-Since行

image.png

​ 3.查看服务器返回内容:

image.png

​ 返回了一段HTML代码

​ 4.检查第二个HTTP GET请求内容:

image.png

可见If-Modified-Since: Fri, 22 Oct 2021 05:59:01 GMT\r\n
5.第二次HTTP返回的状态代码是304 Not Modified,没有明确返回文件内容,因为该网页内容在上次访问之后未被修改过,且本地中有上次访问的缓存。

image.png

检索长文件

​ 1.操作同上。

​ 2.开始数据嗅探,访问指定网站后停止。

image.png

​ 3.浏览器发送了一个GET请求消息,传输这一个HTTP响应需要4个TCP数据段。

image.png

​ 4.响应HTTP GET请求的相关的状态码200和短语是OK。

HTML 带有嵌入对象的文件

​ 1.清除缓存,开始捕获,访问网站http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file4.html

​ 2.停止捕获,查看内容。

image.png 浏览器发送了3个HTTP GET 请求,浏览器并不是同时下载这两张图片,有先后顺序。GET请求有两个发送给了 128.119.245.12,一个发送到了178.79.137.164。

HTTP认证

​ 1.清楚缓存,开始捕获,访问网站并登录。

image.png

image.png

未登录时服务器返回401 Unauthorized,登录成功返回200 OK。

当浏览器第二次发送 HTTP GET 消息时,HTTP GET 消息中包含Authorization,

响应消息出现了ETag字段。

​ 输入的用户名和密码在客户端的 HTTP GET 消息中虽然可能看起来是加密的,但它们只是以称为 Base64 格式的格式进行编码。用户名和密码未加密!