javahttp协议解析.docx
《javahttp协议解析.docx》由会员分享,可在线阅读,更多相关《javahttp协议解析.docx(11页珍藏版)》请在冰豆网上搜索。
javahttp协议解析
竭诚为您提供优质文档/双击可除
java,http协议解析
篇一:
详解http传输协议
何为http协议(hypertexttransferprotocol,超文本传输协议)?
所谓协议,就是指双方遵循的规范。
http协议,就是浏览器和服务器之间进行“沟通”的一种规范。
我们在看空
间,刷微博...都是在使用http协议,当然,远远不止这些应用。
笔者一直听说http是属于“应用层的协议”,而且是基于tcp/ip协议的。
这个不难理解,如果你上大学时候学过“计
算机网络”的课程,就一定知道osi七层参考协议(我当时是死记硬背的)。
如果你接触过socket网络编程,就
应该明白tcp和udp这两种使用广泛的通信协议(建立连接、三次握手等等,当然,这不是本文讨论的重点)。
如图:
既然tcp/udp是广泛使用的网络通信协议,那为啥有多出个http协议来呢?
笔者曾自己动手写过一个简单的web服务器处理软件,根据我的推断(不一定准确)。
udp协议具有不可靠性
和不安全性,显然这很难满足web应用的需要。
而tcp协议是基于连接和三次握手的,虽然具有可靠性,但仍具有一定的缺陷。
但试想一下,普通的c/s架构软
件,顶多上千个client同时连接,而b/s架构的网站,十万人同时在线也是很平常的事儿。
如果十万个客户端和
服务器一直保持连接状态,那服务器如何满足承载呢?
这就衍生出了http协议。
基于tcp的可靠性连接。
通俗点说,就是在请求之后,服务器端立即关闭连接、释放
资源。
这样既保证了资源可用,也吸取了tcp的可靠性的优点。
正因为这点,所以大家通常说http协议是“无状态”的,也就是“服务器不知道你客户端干了啥”,其实很大程度上
是基于性能考虑的。
以至于后来有了session之类的玩意。
实战准备工作:
在监视网络方面,windows平台上有一款叫做sniffer的优秀软件,这也是很多“黑客”经常使用的嗅探工具。
在
研究http协议时,推荐大家使用一款
叫作httpwatch的工具。
(遗憾的是,该工具是收费的。
该咋办就咋办,你懂的)。
安装完成后,可以在ie浏览
器的tools中直接打开(目前也支持firefox)。
如图所示:
点击Record,就可以开始监视并记录http消息了。
stop、clear等等按钮的功能,这里就不一一介绍了。
拿实例
来说话,下面就是我记录访问main.aspx页面的时候记录的,能够清晰的看到http报文消息的详细信息,如图:
学习http协议,主要需要了解http的请求和响应(当然,还有get、post等请求方式,状态码、uRi、mime等)
首先看看http请求消息(就是浏览器丢给服务器的):
一个http请求代表客户端浏览器向服务器发送的数据。
一个完整的http请求消息,包含一个请求行,若干个消
息头(请求头),换行,实体内容
请求行:
描述客户端的请求方式、请求资源的名称、http协议的版本号。
例如:
get/book/jaVa.htmlhttp/1.1
请求头(消息头)包含(客户机请求的服务器主机名,客户机的环境信息等):
accept:
用于告诉服务器,客户机支持的数据类型(例如:
accept:
text/html,image/*)
accept-charset:
用于告诉服务器,客户机采用的编码格式
accept-encoding:
用于告诉服务器,客户机支持的数据压缩格式
accept-language:
客户机语言环境
host:
客户机通过这个服务器,想访问的主机名
if-modified-since:
客户机通过这个头告诉服务器,资源的缓存时间
Referer:
客户机通过这个头告诉服务器,它(客户端)是从哪个资源来访问服务器的(防盗链)
user-agent:
客户机通过这个头告诉服务器,客户机的软件环境(操作系统,浏览器版本等)
cookie:
客户机通过这个头,将coockie信息带给服务器
connection:
告诉服务器,请求完成后,是否保持连接
date:
告诉服务器,当前请求的时间
(换行)
实体内容:
就是指浏览器端通过http协议发送给服务器的实体数据。
例如:
name=dylancontext.Response.writeFile("aa.jpg");
transfer-encoding:
告诉浏览器,传送数据的编码格式
etag:
缓存相关的头(可以做到实时更新)
expries:
告诉浏览器回送的资源缓存多长时间。
如果是-1或者0,表示不缓存
cache-control:
控制浏览器不要缓存数据no-cache
pragma:
控制浏览器不要缓存数据no-cache
connection:
响应完成后,是否断开连接。
close/keep-alive
date:
告诉浏览器,服务器响应时间
理解了以上的http请求消息和响应消息,相信你对于http协议已经理解得足够深刻了。
关于http协议的更多具体
细节,可以参照httpRFc文档。
大致步骤就是:
浏览器先向服务器发送请求,服务器接收到请求后,做相应的处理,然后封装好响应报文,再
回送给浏览器。
浏览器拿到响应报文后,再通过浏览器引擎去渲染网页,解析dom树,javascript引擎解析并执行脚本操作,揑件去干揑件该干的事儿...关于浏览器渲染、解析的原理,可以参考
说白了,所谓web的本质,无非是:
请求/处理/响应,任何的web服务器,任何的服务端编程语言,都没法脱离这个本质。
而浏览器端解析html、图片等静态内容,呈现给用户,脚本引擎执行脚本代码,完成脚本代码要做的事儿(例如dom操作,css属性更改,发送ajax请求等等)。
笔者浅浅的认为,其实浏览器就是一种特殊的client,而b/s架构也是一种特殊的c/s架构。
这里值得一提的是,不同的web服务器和编程语言,又是如何接收用户http请求。
如何处理,如何响应的呢?
笔者拿熟悉的为例,通过反编译工具查看源代码(微软这家伙实在封装的太好了)从底层迚行了剖析,如图:
1.mime类型被定义在content-typeheader中,这个你要看看http协议,不管是java还是.net都一样,是传输协议支持的。
这样浏览器就可以用相应的程序去解析。
比如ie可以在接收到doc文档后自动用word打开。
一般就是application/xxx
常见的mime类型(通用型):
超文本标记语言文本.htmltext/html
xml文档.xmltext/xml
xhtml文档.xhtmlapplication/xhtml+xml
普通文本.txttext/plain
RtF文本.rtfapplication/rtf
pdF文档.pdfapplication/pdf
microsoftword文件.wordapplication/msword
png图像.pngimage/png
giF图形.gifimage/gif
jpeg图形.jpeg,.jpgimage/jpeg
au声音文件.auaudio/basic
midi音乐文件
mid,.midiaudio/midi,audio/x-midi
Realaudio音乐文件.ra,.ramaudio/x-pn-realaudiompeg文件.mpg,.mpegvideo/mpegaVi文件.avivideo/x-msvideogzip文件.gzapplication/x-gziptaR文件.tarapplication/x-tar任意的二进制数据application/octet-stream
篇二:
基于http协议数据包的解析与还原系统的设计与实现
北方民族大学
学士学位论文
论文题目基于http协议数据包解析与还原系统的设计与实现
系(部)名称:
计算机科学与工程学院
学生姓名:
卞春林
专业:
网络工程学号:
20xx1613
指导教师姓名:
杨鹏
论文提交时间:
20xx-4-23
论文答辩时间:
20xx-4-28
学位授予时间:
北方民族大学教务
基于http协议的数据解析与还原系统的设计与实现
摘要
随着世界信息发展的速度越来越快,internet网的快速发展,信息技术的应用越来越广泛,从传统的小型应用到现在的大型商务应用以及企业应用等都涉及到信息技术。
网络技术的应用已经成为当今人们生活中不可缺少的一部分了。
加强探索网络信息监听与还原技术有助于建立可靠、高效的信息安全保障体系,对社会政治稳定和国家信息安全具有重要的现实意义。
针对网络传输环境和实际的需求,基于tcp/ip协议族。
本文主要分析针对网络数据包的相关方面。
主要涉及以下几个方面的内容:
jaVa语言的相关介绍,网络数据包的捕获技术,数据包的相关分析技术,http数据包的还原重组技术。
对于数据包的捕获中,对tcp/ip协议族的介绍,介绍基本的网络协议原理。
对于数据包的重组技术,分析如何将无序的数据片流进行有序化。
对于http信息识别技术讨论超文本传输协议http(hypertexttransferprotocol),描述协议相关的参数,源地址,目标地址,协议的组成等。
本设计实现的网页信息还原系统立足于高效,准确,稳定。
实现基于http/1.0协议网络信息的解析与还原。
关键字:
http数据包,解析,还原
designandimplementationofdataanalysisandRestore
systembasedonhttpprotocol
abstract
withtherapiddevelopmentoftheworldsinformationandtheinternet,theapplicationofinformationtechnologyismoreandmorewidely,fromtraditionalsmallapplicationstolargebusinessapplicationsandenterpriseapplicationsarerelatedwithit.theapplicationofnetworktechnologyhasbecomeanindispensablepartofpeopleslife.strengtheningexplorationofthenetworkinformationmonitoringandreductivetreatmentwillcontributetocreatingareliableandefficientinformationsecuritysystem,whichhasimportantpracticalsignificanceforsocialandpoliticalstabilityandnationalinformationsecurity.
inviewofthenetworktransmissionenvironmentandtheactualdemand,thispapermainlyanalyzestherelevantaspectsofnetworkdatapacket,whichmainlyinvolvesthefollowingseveralaspects:
introductionofthejaValanguage,networkpacketcapturetechnology,datapacketanalysistechnology,therestoringrecombinanttechnologyofhttpdatapacket.Forpacketcapture,thispaperintroducesthetcp/ipprotocol,andthebasicprinciplesofthenetworkprotocol.Forthedatapacketrecombinationtechnology,thispaperanalyzeshowthedisorderpieceofdatastreamordering.Forhttpinformationrecognitiontechnologytodiscussthehypertexttransferprotocolhttp(hypertexttransferprotocol),idescribetheprotocolrelatedparameters,protocolcomposition.
thedesignandimplementationofwebpageinformationandrestoringsystemarebasedonthehighefficiency,accuracyandstability,whichtheaimistoachievetheanalysisandrestoringbasedonnetworkinformationofhttp/1.0protocol
keywords:
httppacket,analysis,restore
目录
1.绪论...........................................................................................................................1
1.1研究背景与意义.......................................................................................................1
1.2研究方法与环境配置..............................................................................................1
1.3研究内容和目标......................................................................................................2
2.网络协议基本概念.........................................................................................................3
2.1网络体系结构..........................................................................................................3
2.2网络协议分析..........................................................................................................4
2.2.1tcp/ip协议族...............................................................................................4
2.2.2http协议概述.............................................................................................5
2.2.3thhp协议的特点.........................................................................................5
2.2.4http协议的结构.........................................................................................6
2.3http协议的运作方式............................................................................................8
3.开发工具与环境介绍....................................................................................................11
3.1java语言介绍.........................................................................................................11
3.1.1java语言简介..............................................................................................11
3.1.2java语言的特点..........................................................................................11
3.2jdk概述.................................................................................................................13
3.4jdk安装与配置.....................................................................................................13
3.5myeclipse相关介绍...............................................................................................13
4.网络协议分析系统的设计............................................................................................14
4.1winpcap的相关介绍..............................................................................................14
4.2体系结构设计........................................................................................................15
4.3数据包的存储........................................................................................................16
4.4网络数据包的捕获和存储流程图........................................................................18
4.5网络数据包的还原原理........................................................................................20
5.网络数据捕获与还原系统的实现...............................................................................21
5.1字符编码介绍........................................................................................................21
5.1.1ascall字符编码......................................................................................21
5.1.2gbk字符编码.............................................................................................21
5.1.3gb2312字符编码........................................................................................21
5.1.4big5字符编码............................................................................................22
5.1.5unicode字符编码...................................................................................22
5.1.6utF-8字符编码..........................................................................................23
5.2系统设计模块要求................................................................................................23
5.3网卡设置模块........................................................................................................24
5.3.1网卡设置模块实现代码.............................................................................24
5.3.2问题总结.....................................................................................................25
5.4捕获数据包控制模块...........................................................