HttpWatch及文件上传
一、HttpWatch插件:
(一)、介绍:
HttpWatch是强大的网页数据分析工具.集成在IE工具栏.包括网页摘要、Cookies管理、缓存管理、消息头发送/接受、字符查询、POST数据和目录管理功能。
只需要选择相应的网站,软件就可以对网站与IE之间的请求和回复的通讯情况进行分析并显示其日志记录。每一个HTTP记录都可以详细的分析其 Cookies、头信息、字符查询、POST数据等信息。
(二)、目的:
使用这个IE插件,目的是为了更透彻地理解客户端机器和服务器之间是如何通讯的,更透彻地理解GET和POST。更重要地是在模拟浏览器访问网络时,需要通过很多setRequestProperty()方法设置很多头信息。什么是头信息,到底有哪些头信息需要设置。通过httpWatch能帮同学们很好的理解这一点。
<headers><header name="Accept">image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/xaml+xml, application/vnd.ms-xpsdocument, application/x-ms-xbap, application/x-ms-application, application/msword, application/vnd.ms-excel, application/vnd.ms-powerpoint, */*</header><header name="Accept-Encoding">gzip, deflate</header><header name="Accept-Language">zh-cn</header><header name="Cache-Control">no-cache</header><header name="Connection">Keep-Alive</header><header name="Content-Length">37</header><header name="Content-Type">application/x-www-form-urlencoded</header><header name="Cookie">PHPSESSID=dccscri3qftumao92bll8ia933</header><header name="Host">127.0.0.1</header><header name="User-Agent">Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; Shuame)</header> </headers>
【备注:】上述的头信息中Accept中是文件的MIME格式。那么什么是MIME呢?【扩展知识,要能见到MIME格式,知道它所代表的含义】
- 概念:MIME意为多功能Internet邮件扩展,它设计的最初目的是为了在发送 电子邮件时附加多媒体数据,让邮件客户程序能根据其类型进行处理。然而当它被HTTP协议支持之后,它的意义就更为显著了。它使得HTTP传输的不仅是普通的文本,而变得丰富多彩。
- 每个MIME类型由两部分组成,前面是数据的大类别,例如声音audio、图象image等,后面定义具体的种类。
- 常见的MIME类型(通用型):
- 超文本标记语言文本 .html text/html
- xml文档 .xml text/xml
- XHTML文档 .xhtml application/xhtml+xml
- 普通文本 .txt text/plain
- RTF文本 .rtf application/rtf
- PDF文档 .pdf application/pdf
- Microsoft Word文件 .word application/msword
- PNG图像 .png image/png
- GIF图形 .gif image/gif
- JPEG图形 .jpeg,.jpg image/jpeg
- au声音文件 .au audio/basic
- MIDI音乐文件 mid,.midi audio/midi,audio/x-midi
- RealAudio音乐文件 .ra, .ram audio/x-pn-realaudio
- MPEG文件 .mpg,.mpeg video/mpeg
- AVI文件 .avi video/x-msvideo
- GZIP文件 .gz application/x-gzip
- TAR文件 .tar application/x-tar
- 任意的二进制数据 application/octet-stream
【备注:】以下是扩展知识,关于常见浏览器的User-Agent的信息。仅作为了解。
1、IE
而IE各个版本典型的userAgent如下:
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
Mozilla/4.0 (compatible; MSIE 5.0; Windows NT)
其中,版本号是MSIE之后的数字。
2、Firefox
Firefox几个版本的userAgent大致如下:
Mozilla/5.0 (Windows; U; Windows NT 5.2) Gecko/2008070208 Firefox/3.0.1
Mozilla/5.0 (Windows; U; Windows NT 5.1) Gecko/20070309 Firefox/2.0.0.3
Mozilla/5.0 (Windows; U; Windows NT 5.1) Gecko/20070803 Firefox/1.5.0.12 其中,版本号是Firefox之后的数字。
3、Opera
Opera典型的userAgent如下:
Opera/9.27 (Windows NT 5.2; U; zh-cn)
Opera/8.0 (Macintosh; PPC Mac OS X; U; en)
Mozilla/5.0 (Macintosh; PPC Mac OS X; U; en) Opera 8.0
其中,版本号是靠近Opera的数字。
4、Safari (苹果的浏览器)
Safari典型的userAgent如下:
Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/525.13 (KHTML, like Gecko) Version/3.1 Safari/525.13
Mozilla/5.0 (iPhone; U; CPU like Mac OS X) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/4A93 Safari/419.3
其版本号是Version之后的数字。
5、Chrome (Google的浏览器)
目前,Chrome的userAgent是:
Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13
其中,版本号在Chrome之后的数字。
(三)、安装HttpWatch后效果:
1、浏览器工具栏中有一项:httpwatch professional
或者在浏览器页面中右击,上下文菜单中有httpwatch 选项。
2、运行httpwatch 后页面效果:
3、点击Record可以记录,点击Stop停止。
4、打开百度页面,搜索信息,观察Headers栏有什么变化?
(四)、上传附件示例:
上传完成后,记录下的Header截图:
5、上传完成后,记录下的Stream截图:【备注:该截图很重要,通过该截图,便于我们理解上传文件的java代码的写法】
6、上传完成,记录下的Stream的完整代码:
POST /JavaServer2/UploadServlet HTTP/1.1
Accept: image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, */*
Referer: http://localhost:8080/JavaServer2/upload.html
Accept-Language: zh-cn
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)
Content-Type: multipart/form-data; boundary=---------------------------7dece2b30264
Accept-Encoding: gzip, deflate
Host: localhost:8080
Content-Length: 84185
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: JSESSIONID=1D86C102F930B5ABE7A89CB3E314FA9D
-----------------------------7dece2b30264
Content-Disposition: form-data; name="username"
-----------------------------7dece2b30264
Content-Disposition: form-data; name="password"
-----------------------------7dece2b30264
Content-Disposition: form-data; name="uploadFile"; filename="Water lilies.jpg"
Content-Type: image/pjpeg
以下代码貌似乱码,实际上是上传文件的二进制流文件内容
-----------------------------7dece2b30264--
【备注:】思考以上代码中的“-----------------------------7dece2b30264”。
在头信息中有,在表单控件每个前面都有这段代码。在上传附件前也有,上传完毕后,也有。但是注意区别。
---------------------------7dece2b30264
-----------------------------7dece2b30264
-----------------------------7dece2b30264
-----------------------------7dece2b30264--
长度不同,而且附件上传完毕后,最后还有两个—。
【附加:】核心代码:
请注意在上传附件的源码中定义了以下三个常量。NEWLINE代表换行; PREFIX 是上传完毕后,最后的那两个-- BOUNDARY就是“---------------------------7dece2b30264”这段符号。这段符号可以用任何符号先代替。避免每次都写,容易多写或者少写-,总之是避免出错。final String NEWLINE = "\r\n"; final String PREFIX = "--"; final String BOUNDARY = "#";
HttpWatch及文件上传相关推荐
- Javaweb学习笔记——(二十二)——————文件上传、下载、Javamail
文件上传概述 1.文件上传的作用 例如网络硬盘,就是用来上传下载文件的. 在网络浏览器中,时常需要上传照片 2.文件上传对页面的要求 上 ...
- Java Web 文件上传下载
文章目录 1文件上传概述 1.1文件上传的作用 1.2文件上传对页面的要求 1.3 比对文件上传表单和普通文本表单的区别 1.4 对普通文本表单的测试 1.5 文件上传对Servlet的要求 2 co ...
- 超全面的JavaWeb笔记day22文件上传
文件上传概述 1 文件上传的作用 例如网络硬盘!就是用来上传下载文件的. 在智联招聘上填写一个完整的简历还需要上传照片呢. 2 文件上传对页面的要求 上传文件的要求比较多,需要记一下: 1. 必须使用 ...
- javaweb文件上传下载
文件上传概述 1 文件上传的作用 例如网络硬盘!就是用来上传下载文件的. 在智联招聘上填写一个完整的简历还需要上传照片呢. 2 文件上传对页面的要求 上传文件的要求比较多,需要记一下: 必须使用表单, ...
- Servlet文件上传
1 文件上传的作用 例如网络硬盘!就是用来上传下载文件的. 在智联招聘上填写一个完整的简历还需要上传照片呢. 2 文件上传对页面的要求 上传文件的要求比较多,需要记一下: 必须使用表单,而不能是超链接 ...
- JavaWeb实现文件上传下载功能实例详解
感谢原文作者分享,原文链接:http://www.jb51.net/article/96745.htm 这篇文章主要介绍了JavaWeb中的文件上传和下载功能的实现,在开发中,文件上传和下载功能是非常 ...
- fileupload文件上传用法概述
目录 1.文件上传表单 和 普通文本表单 的区别 2.文件上传对页面的要求 3.文件上传对Servlet的要求 4.fileupload概述 5.fileupl ...
- springboot设置文件上传大小(tomcat默认1M)
application.yml # 设置文件上传大小(tomcat默认1M) server:tomcat:max-http-form-post-size: -1 spring:servlet:mult ...
- 将文件上传至ftp服务器,FTP文件上传工具类,将文件上传至服务器指定目录
将文件上传至ftp服务器,传入File对象,将文件上传至ftp服务器 需要配置修改的点: 1. 服务器ip端口(服务器ip 端口22/21). 2. 服务器账号密码(服务器登录用户名密码). 3. 上 ...
最新文章
- 未来一年最有可能成为独角兽的29家美国初创公司
- 【福利】有道云笔记免费送30天VIP会员,有道云笔记功能优缺点汇总
- CSS布局说——可能是最全的
- ICLR 2020丨微软亚洲研究院精选论文解读
- 程序员一年稳赚50w,却被群嘲只造改bug!TA说:2020年我的愿望是........
- 相机模型与标定(十三)--鱼眼相机标定
- PERMUTATION
- BZOJ3757: 苹果树【树上莫队】
- 刷题记录 kuangbin带你飞专题一:简单搜索
- OverflowError: int too large to convert to float
- ERP实施-有色金属-铜冶炼
- python识别中文验证码_Python实现验证码识别
- DELL 电脑 重装系统出现 no boottable devices found
- python随机分组的思路_「Python」每日一练:学生学习小组分组程序
- 程序员都会的五大算法之三(贪心算法),恶补恶补恶补!!!
- 我九点钟上计算机课用英语怎么说,9点18分的英语怎么写(9点18用英语怎么说二种)...
- merge和AMVP
- Pandas把某一列日期的月份加减 月份前进或后退
- 炫龙新笔记本安装Ubuntu1804遇到的问题
- 【024】中国色–那些流淌在历史中的中国色彩