长沙理工大学计算机与通信工程学院
《计算机网络》课程设计报告
学院计算机与通信工程专业通信工程
班级通信1003班学号************ 学生姓名赵旋指导教师熊兵
课程成绩完成日期2013年7月11日
课程设计成绩评定
院系计算机与通信工程专业通信工程
班级1003 学号201054080333
学生姓名赵旋指导教师熊兵
指导教师对学生在课程设计中的评价
指导教师成绩指导教师签字年月日课程设计答辩组对学生在课程设计中的评价
答辩组成绩答辩组长签字年月日
课程设计综合成绩
注:课程设计综合成绩=指导教师成绩×60%+答辩组成绩×40%
课程设计任务书
计算机与通信工程学院通信工程专业
基于Wireshark的HTTP协议分析
学生姓名:赵旋指导老师:熊兵
摘要本文通过协议分析工具Wireshark软件作为HTTP协议的设计平台,通过对连接网页时用Wireshark进行抓取协议,再过滤得到HTTP协议。并分析HTTP协议从而了解HTTP协议的数据包。通过此次课设了解并且学会使用Wireshark软件,学会如何利用Wireshark进行捕获抓包、过滤对协议进行分析,而且进一步掌握HTTP协议。
关键词Wireshark;数据包;HTTP协议
1 引言
经过计算机网络基础前面时间的学习,使我们对网络应用层的协议有了一定的了解。协议就像一门语言,需要定义语法、语意和语序(时序、同步)。语法即为协议的具体格式;语意定义了具体格式中具体指代,比如说,空一行后的数据表示为数据字段;就目前说掌握的只是而言,我对语序的理解还不是很清楚,这里就不加赘述。
下面将主要从应用层的协议出发,利用我们所学习过的知识,对不同的应用请求响应过程进行分析,探究在不同网络工作环境下网络协议的变化。
1.1 课程设计目的
(1) 熟悉并掌握WireShark的基本操作,了解网络协议实体间的交互以及报文交换。
(2) 通过对WireShark抓包实例进行分析,进一步加深对常用网络协议的理解,如DNS和HTTP协议。
(3) 培养理论联系实践的科学研究精神。
1.2 实验方法
(1)利用Wireshark软件抓取本地PC的数据包,观察其主要使用的网络协议。
(2)根据所获数据包的内容分析相关协议,从而加深对HTTP网络协议的理解。
2 基本原理
2.1 协议简介
HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。它的发展是万维网协会(World Wide Web Consortium)和Internet工作小组IETF(Internet Engineering Task Force)合作的结果,(他们)最终发布了一系列的RFC,RFC 1945定义了HTTP/1.0版本。其中最著名的就是RFC 2616。RFC 2616定义了今天普遍使用的一个版本——HTTP 1.1。
HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW
服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。
HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。
HTTP协议的主要特点可概括如下:
(1) 支持客户/服务器模式。
(2) 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
(3) 灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
(4) 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时
间。
(5) 无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
HTTP报文是面向文本的,报文中的每一个字段都是一些ASCII码串,各个字段的长度是不确定的。HTTP有两类报文:请求报文和响应报文。
1、请求报文
图 2.1 请求报文结构
一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成,下图给出了请求报文的一般格式。
(1)请求行
请求行由请求方法字段、URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔。例如,GET /index.html HTTP/1.1。
HTTP协议的请求方法有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。这里介绍最常用的GET方法和POST方法。
GET:当客户端要从服务器中读取文档时,使用GET方法。GET方法要求服务器将URL定位的资源放在响应报文的数据部分,回送给客户端。使用GET 方法时,请求参数和对应的值附加在URL后面,利用一个问号(“?”)代表URL 的结尾与请求参数的开始,传递参数长度受限制。例如,/index.jsp?id=100&op=bind。
POST:当客户端给服务器提供信息较多时可以使用POST方法。POST方法