上周实验中进行了课程实验用wireshark抓包了http协议,收获许多,准备开启我的第一篇博客文章。 HTTP(HyperText Transfer Protocol,超文本传输协议)是Web系统最核心的内容,是Web服务器和客户端直接进行数据传输的规则。HTTP协议是用于从WWW服务器传输超文本到本地浏览器的传送协议。可以使浏览器更加高效,使网络传输减少。不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及首先显示(如文本先于图形)等。HTTP是一个应用层协议,有请求和响应构成,是一个标准的客户端服务器模型。HTTP具有以下几个特点: HTTP请求信息由3部分组成: 请求方法URI协议/版本:请求的第一行是”方法URI协议/版本” OPTIONS:返回服务器针对特定资源所支持的HTTP请求方法,也可以利用向Web服务器发送”*”的请求来测试服务器的功能性。 HEAD:向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息。 GET:向特定的资源发出请求。注意:get方法不应当被用于产生“副作用”的操作中。例如在Web APP中,其中一个原因是GET可能会被网站蜘蛛等随意访问。 POST:向指定资源提交数据进行处理请求(比如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立或已有资源的修改。 PUT:向指定资源位置上传其最新内容。 DELETE:请求服务器删除Request-URI所标识的资源。 TRACE:回显服务器收到的请求,主要用于测试或者诊断。 CONNECT:HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。 请求头: 请求正文: 请求头和请求正文之间是一个空行,这个行非常重要,它表示请求头已经结束,接下来的是请求正文。请求正文中包含客户提交的查询字符串信息: HTTP请求信息由3部分组成:: 响应首行:包含协议版本,响应状态码,对状态码的解释。 200 请求成功,浏览器把响应回来的信息显示在浏览器端。 404 客户端出错,在浏览器端请求一个不存在的资源时会出现404状态码。 405 客户端错误的一种,表示当前的请求方式不支持。如:服务器端只对GET请求做了处理,而客户端的请求是post方式的,这个时候会出现405状态码。 500 服务器端错误,如:服务器端代码出现空指针等异常,浏览器就会收到服务器发送的500状态码。 302 表示重定向。如:浏览器访问一个资源,服务器响应给浏览器一个302的状态码,并且通过响应头Location发送了一个新的url,告诉浏览器去请求这个url。这就是重定向。 304 第一次访问一个资源后,浏览器会将该资源缓存到本地,第二次再访问该资源时,若该资源没有发生改变,则服务器响应给浏览器304状态码,告诉浏览器使用本地缓存的资源。 响应头信息:与请求头信息类似 响应正文:空行连接响应头和响应体。响应正文即为返回资源内容。浏览器可以直接识别响应正文html文件。 本实验用windows7,wireshark,IE浏览器进行实验操作。 实验1 (1)对请求报文分析: (2)对响应报文进行分析 此处补充Cache-control的相关字段信息: (1)你的浏览器运行的是HTTP1.0,还是HTTP1. 1 ?你所访问的服务器所运行的HTTP版本号是多少? (2)你的浏览器向服务器指出它能接收何种语言版本的对象? (4)从服务器向你的浏览器返回的状态代码是多少? (5)你从服务器上所获取的HTML文件的最后修改时间是多少? (6) 返回到你的浏览器的内容一共多少字节? (7) 分析你的浏览器向服务器发出的第一个HTTP GET请求的内容,在该请求报文中,是否有一行是: IF-MODIFIED-SINCE? (11 )你的浏览器一共发出了多少个HTTP GET请求? (12 )承载这一个HTTP响应报文一共需要多少个data-containing TCP报文段? (13)与这个HTTPGET请求相对应的响应损文的状态代码和状态短语是什么? (14)在被传送的数据中一共有多少个HTTP状态行与TCP-induced”continuation”有关? (15)你的浏览器一共发出了多少个和打开的网址相关的HTTP GET请求?这些请求被发送到的目的地的IP地址是多少? (17)对于浏览器发出的最初的HTTP GET请求,服务器的响应是什么(状态代码和状态短语)? (18)当浏览器发出第二个HTTP GET请求时,在HTTP GET报文中包含了哪些新的字段?
利用wireshark分析http报文
0x01 http的基本知识
http的请求格式
(1)请求方法URI协议/版本
(2) 请求头(Request Header)
(3) 请求正文
例如:GET/sample.jsp HTTP/1.1 其中”GET”代表请求方法,”/sample.jsp”表示URI,”HTTP/1.1代表协议和协议的版本。
- Accept:[表示浏览器可以接受文本,网页图片等] - Accept-Charaset: [表示接受字符编码] - Accept-Encoding:[可以接受格式压缩后数据] - Accept-Language:[浏览器支持的语言为中文] - Host:[浏览器要找的主机] - IF-MODIFIED-Since:[文件在缓存中且指明文件时间] - Referer:[指明来源] - User-Agent:[本机浏览器内核] - Connection:close/Keep-Alive [保持链接,即发完数据后不关闭链接] - Date:[浏览器发送数据的请求时间]
http响应格式
(1)响应首行;
(2)响应头信息;
(3)响应正文。
例如:分析”HTTP/1.1 200 OK”
其中HTTP/1.1:为协议版本。200 :为响应状态码,此表示响应成功。OK :为解释响应状态码200是响应成功。
-Server:服务器告诉浏览器,当前响应的服务类型和版本。 -Content-Type:服务器告诉浏览器响应内容的类型和字符编码。如:值为text/html;charset=utf-8。说明响应信息的类型是文本类型中的html,使用的字符编码是utf-8。 -Content-Length:服务器告诉浏览器,响应内容的长度字节数。 -Date:表示是服务器是响应回浏览器的时间,注意该时间是按照格林尼治标准时间(GMT)来计算。
0x02 实验操作步骤
HTTP GET/response交互:
(1)清空缓存DNS高速缓存,确保Web服务器域名到IP地址映射是从网络请求的。在cmd窗口输入:ipconfig/flushdns 后按回车。
(2)启动Wireshark分组俘获器,开始Wreshark分组俘获。
(3)在浏览器地址栏中前往网址:https:// www.cqu.edu.cn/。
(4)单击测览器中的“刷新”按钮。
(5)停止Wireshark分组俘获,在显示过滤筛选说明处输入“http”显示捕获到的HTTP报文。
“GET”:向特定的资源发出请求。
”HOST”首部在HTTP1.1版本中是必须的,描述了URL中的主机,在这里是https:// www.cqu.edu.cn/。
”USER-AGENT”首部显示了web服务器浏览器和本机windows系统。
Accept包括:Accept、 Accept-Language 、Accept-Encoding。
Connection首部描述了有关TCP连接的信息,通过此连接发送HTTP请求和响应,表明在发送请求之后连接是否保持活动状态及保持多久大多数HTTP1.1连接是持久的,意思是在每次请求后不关闭TCP连接,而保持该连接以接受从同一台服务器发来的多个请求。
响应发送”HTTP/1.1 200 ok” ,状态码200表示响应成功,用HTTP1.1版本发送网页。
Cache-control首部,用于描述是否将数据的副本存储或高速缓存起来,此处为no-store 表示所有内容不会存在缓存 或internet临时文件中。
Content-length首部描述了数据长度为1676字节
Date首部表示了数据发送时间为:2020.5.19 07:04:42 其中GMT表示格林尼治标准时间。
实验2
HTTP条件 GET/response交互
1)启动浏览器,清空浏览器的缓存。
(2)启动Wireshark分组俘获器,开始Wreshark分组俘获。
(3)在浏览器地址栏中前往网址: https://gaia.cs.umass.edu/wireshark-labs/ HTTP-wireshark-file2.html
你的浏览器中将显示一个的非常简单的HTML文件。
(4)单击测览器中的“刷新”按钮。
(5)停止Wireshark分组俘获,在显示过滤筛选说明处输入“http”显示捕获到的HTTP报文。
实验3
获取长文件
(1)启动浏览器,将浏览器的缓存清空。
(2)启动Wireshark分组俘获器,开始Wireshark分组俘获。
(3)在浏览器地址栏中输入如下网址:https://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file3.html
(4)停止Wireshark分组俘获,在显示过滤筛选说明处输入“http”。
实验4
嵌有对象的HTML文档
(1)启动浏览器,将浏览器的缓存清空。
(2)启动Wireshark分组俘获器。开始Wireshark分组俘获。
(3)在浏览器地址栏中输入如下网址:https://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file4.html
(4)停止Wireshark分组俘获,在显示过滤筛选说明处输入“http”。
实验5
HTTP认证
(1)启动浏览器,将浏览器的缓存清空。
(2)启动Wireshark分组俘获器。开始Wireshark分组俘获。
(3)在浏览器地址栏中输入如下网址:https://gaia.cs.umass.edu/wireshark-labs/protected_pages/HTTP-wireshark-file5.html
(4)停止Wireshark分组俘获,在显示过滤筛选说明处输入“http”。
0x03 实验问答
浏览器运行的是HTTP1.1 访问的服务器运行的是HTTP1.1
可以接受简体中文
(3)你的计算机的IP地址是多少?服务器的IP地址是多少?
计算机地址:.....
服务器地址:202.202.1.3
200 OK
在2020年4月5日 02:34:44
4498字节
没有
(8)分析服务器响应报文的内容,服务器是否明确返回了文件的内容?如何获知?
明确返回了
(9)分析你的浏览器向服务器发出的第二个“HTTP GET”请求,在该请求报文中是否有一行是:IF -MODIFIED- SINCE?如果有,在该首部行后面跟着的信息是什么?
有,是最后一次的修改时间。
(10)服务器对第二个HTTP GET请求的响应中的HTTP状态代码是多少?服务器是否明确返回了文件的内容?请解释。
304状态码表示:服务器没有明确返回文件内容。原因:浏览器端缓存页面最后修改时间与服务器端时间一致,返回304状态码,客户端接到之后,就直接把本地缓存文件显示到浏览器中。
总共四个,分别为序号17,46,61,102
需要四个data-containing TCP报文段。
为200 OK
一个
发送了三个和打开的网址相关的HTTP GET请求,目的IP 为:128.119.245.12
(16)浏览器在下载这两个图片时,是串行下载还是并行下载?请解释。
并行。两个图片是连续请求,不需要等第一个请求得到回复后才继续第二次请求。存在不需要等第一个请求得到回复后才继续第二次请求的情况,说明是并行的。
响应是:401 Unauthorized
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算