HTTP的上传文件实例分析

HTTP的上传文件实例分析

由于论坛不支持Word写文章发帖。

首先就是附件发送怎么搞,这个必须解决。论坛是php的。我用Chrome类浏览器跟踪请求,但是上传的文件流怎么发过去没找到,估计流可能多或者什么的不好显示,只知道发送了文件名字。需要实际了解下post文件,不能只会后台或界面不了解前台数据处理和协议怎么传送数据。

图中:有些相关文章 HTTP请求中的form data和request payload的区别 AJAX POST请求中参数以form data和request payload形式在servlet中的获取方式

Multipart/form-data POST文件上传详解 《RFC 1867 -Form-based File Upload in HTML

结构和我曾经通过Smtp提交带有软件BUG附件的形式相似。。。有边界。。。

所以使用抓包工具,如WireShark。机器64位。Ip = 118.192.48.35.

WireShark过滤下好看。前两个是删除文件,后两个才是上传,可以看到有个GIF89a字样。

然后选择后两个其中一个右键菜单-选择Follow TCP Stream,做的事情就是TCP数据包重组。弹出对话框如下:

流的内容出现的顺序同他们在网络中出现的顺序一致。从A到B的通信标记为红色,从B到A的通信标记为蓝色。即请求request为红色,response为蓝色。

从中看出有两次完整来回交互,其中第二个才是文件流。

GIF89a.......^K..w............h......!..NETSCAPE2.0.....!...d...,..........&h..*0.%....1,...u..a...U.X.....f. *Mo$.!.......,...........XS....I. ....!.......,..............A.H...!.......,...........XS....9..%..!.......,...........X.;.PEFk..!.......,...........XS....9..%..!.......,...........X.;.PEFk..!.......,...........XS....9..%..!.......,...........X.;.PEFk..!.......,...........XS....9..%..!.......,...........X.;.PEFk..!.......,...........XS....9..%..!.......,...........X.;.PEFk..!.......,...........X.V.....!.......,............U

..;

文件内容格式Content-Type为image/gif,然后是流数据(标头+回车换行(0x0d+0x0a)+文件二进制),这里ASCII展示了,不可打印字符为点号表示。

这里把选中内容直接复制出来到WinHex粘贴不行,复制到点号时就不行了。

需要点选Save As保存Raw形式文件,然后到winhex打开找到它。

步骤是Ctrl+F输入gif。

继续找到目标,然后选择目标内容,ODOA(出车换行)开始和结束,如图。

选中后就会一直选中,在任意位置右键保存到文件就可以dump出来了。文件为

对于后面的html以gzip编码一样,步骤dump出来,保存为windows保存为zip后缀吧,这样直接rar打开。

至http解压出文件结束。

时间: 2024-10-24 23:28:13

HTTP的上传文件实例分析的相关文章

PHP+ajaxForm异步带进度条上传文件实例

在使用ajaxForm方法之前,首先需要安装form.js的插件,网上有: 一.首先说用法,ajaxForm可以接收0或1个参数,该参数可以是一个变量.一个对象或回调函数,这个对象主要有以下参数: var object= {                     url:url, //form提交数据的地址   type:type,   //form提交的方式(method:post/get)   target:target, //服务器返回的响应数据显示的元素(Id)号           

关于ajax分段上传文件实例~

本来打算写的勤快一点的,谁知道最近好忙啊,忙着应聘的事情,这里突然想提一下自己的历程 自己现在是一只大三狗,高中三年是玩过去了,上了一所省内普通的不能再普通的二本.不过在大学里还算的上勤奋,大一上在学生会搅搅水,大一下就开始在学校网络中心里面干活,网络维护是工作,编程是兴趣,基本上每天网络中心寝室两点一线,所以说还算得上勤奋.不过现在我自己算是明白,很多事情不是勤奋就好了的,方法不对,真的是事倍功半.自己之前学习东西都是瞎倒腾,看书,看视频,记笔记,写demo.看起来稀疏平常,但是自己缺点在于太

php 上传文件实例 上传并下载word文件

上传界面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Con

Servlet3.0 上传文件实例

1.相关函数的说明 (1)request.getSchem()->获取协议头,如http (2)request.getHostName->获取主机名 (3)request.getPort()->获取端口号 (4)request.getContextPath()->获取请求的资源路径,形如http://localhost::8080下面的ServletDemo (5)part.getHeader("content-disposition")->获取传输的头部

JSP通过SmartUpload上传文件实例

httpRequest.setCharacterEncoding("gbk"); String preName = genName.doMake();//设置文件前缀名 String extName = null; String allName = null; String fileName = null; try { //初始化 sUpload.initialize(servletConfig, request, response); //设置文件最大上传为10M sUpload.s

jquery插件--ajaxfileupload.js上传文件原理分析

英文注解应该是原作者写的吧~说实话,有些if判断里的东西我也没太弄明白,但是大致思路还是OK的. jQuery.extend({ createUploadIframe: function (id, uri) {//id为当前系统时间字符串,uri是外部传入的json对象的一个参数 //create frame var frameId = 'jUploadFrame' + id; //给iframe添加一个独一无二的id var iframeHtml = '<iframe id="' + f

php 上传文件实例 注册账号

注册界面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Con

jQuery插件-ajaxFileUpload异步上传文件

ajaxFileUpload是前两天学习过程中接触到的一个JQ插件,功能很简单,就是实现异步上传文件的功能. 1.语法介绍 $.ajaxFileUpload([setting]); 参数说明: (1)url——执行上传处理的地址: (2)secureuri——是否启用安全提交,默认为false: (3)fileElementId——需要上传<input type=”file”>控件id属性值: (4)data——自定义参数,即需要额外传递的JSON格式数据: (5)type——请求方式,提交自

C# 使用HttpWebRequest通过PHP接口 上传文件

1:上传文件实例 public void UploadXMLLog(string xmlpath)        {            NameValueCollection nvc = new NameValueCollection();            CookieContainer cookies = new CookieContainer();            nvc.Add("", “”);            ......            strin