zgh26782000 zgh26782000
关注数: 45 粉丝数: 108 发帖数: 8,155 关注贴吧数: 18
HttpURLConnection原理 a: HttpURLConnection的connect()函数,实际上只是建立了一个与服务器的tcp连接,并没有实际发送http请求。 无论是post还是get,http请求实际上直到HttpURLConnection的getInputStream()这个函数里面才正式发送出去。 b:在用POST方式发送URL请求时,URL请求参数的设定顺序是重中之重, 对connection对象的一切配置(那一堆set函数) 都必须要在connect()函数执行之前完成。而对outputStream的写操作,又必须要在inputStream的读操作之前。 这些顺序实际上是由http请求的格式决定的。 如果inputStream读操作在outputStream的写操作之前,会抛出例外: java.net.ProtocolException: Cannot write output after reading input....... c:http请求实际上由两部分组成, 一个是http头,所有关于此次http请求的配置都在http头里面定义, 一个是正文content。 connect()函数会根据HttpURLConnection对象的配置值生成http头部信息,因此在调用connect函数之前, 就必须把所有的配置准备好。 d: 在http头后面紧跟着的是http请求的正文,正文的内容是通过outputStream流写入的, 实际上outputStream不是一个网络流,充其量是个字符串流,往里面写入的东西不会立即发送到网络, 而是存在于内存缓冲区中,待outputStream流关闭时,根据输入的内容生成http正文。 至此,http请求的东西已经全部准备就绪。在getInputStream()函数调用的时候,就会把准备好的http请求 正式发送到服务器了,然后返回一个输入流,用于读取服务器对于此次http请求的返回信息。由于http 请求在getInputStream的时候已经发送出去了(包括http头和正文),因此在getInputStream()函数 之后对connection对象进行设置(对http头的信息进行修改)或者写入outputStream(对正文进行修改) 都是没有意义的了,执行这些操作会导致异常的发生。
断点续传 (一)断点续传的原理 其实断点续传的原理很简单,就是在http的请求上和一般的下载有所不同而已。 打个比方,浏览器请求服务器上的一个文时,所发出的请求如下: 假设服务器域名为wwww.sjtu.edu.cn,文件名为down.zip。 get /down.zip http/1.1 accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms- excel, application/msword, application/vnd.ms-powerpoint, */* accept-language: zh-cn accept-encoding: gzip, deflate user-agent: mozilla/4.0 (compatible; msie 5.01; windows nt 5.0) connection: keep-alive 服务器收到请求后,按要求寻找请求的文件,提取文件的信息,然后返回给浏览器,返回信息如下: 200 content-length=106786028 accept-ranges=bytes date=mon, 30 apr 2001 12:56:11 gmt etag=w/"02ca57e173c11:95b" content-type=application/octet-stream server=microsoft-iis/5.0 last-modified=mon, 30 apr 2001 12:56:11 gmt 所谓断点续传,也就是要从文件已经下载的地方开始继续下载。所以在客户端浏览器传给 web服务器的时候要多加一条信息--从哪里开始。 下面是用自己编的一个"浏览器"来传递请求信息给web服务器,要求从2000070字节开始。 get /down.zip http/1.0 user-agent: netfox range: bytes=2000070- accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2 仔细看一下就会发现多了一行range: bytes=2000070- 这一行的意思就是告诉服务器down.zip这个文件从2000070字节开始传,前面的字节不用传了。 服务器收到这个请求以后,返回的信息如下: 206 content-length=106786028 content-range=bytes 2000070-106786027/106786028 date=mon, 30 apr 2001 12:55:20 gmt etag=w/"02ca57e173c11:95b" content-type=application/octet-stream server=microsoft-iis/5.0 last-modified=mon, 30 apr 2001 12:55:20 gmt 和前面服务器返回的信息比较一下,就会发现增加了一行: content-range=bytes 2000070-106786027/106786028 返回的代码也改为206了,而不再是200了。 知道了以上原理,就可以进行断点续传的编程了。
JS本地存储 Cookie 4096字节;缺点:存储量小,请求头附带cookie带来性能问题。 Flash Share Object 默认支持100k,跨浏览器存储最好的方式,毕竟现在没有安装flash插件的用户是很少的;缺点:需要加载一个swf文件,个别用户不支持flash。有一个基于jQuery的插件叫 jStore ,就是通过Flash Share Object实现的。 IE的 UserData 最少也能支持640k,IE8后已经支持DOM Storage;缺点:IE only。 DOM Storage 默认支持5M存储量;缺点:IE7,IE6不支持。 Google Gears 功能最强;缺点:但需要安装软件,而且,安装的用户是较少的。【DOM Storage】支持:Firefox, Chrome, Opera, Safari, IE8+ 关于Web Storage的w3c文档:http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fdev.w3.org%2Fhtml5%2Fwebstorage%2F&urlrefer=d0d7b8fc12299974a3852babcacb4c5e 分类: sessionStorage 和 localStorage。顾名思义,sessionStorage是指在当前窗口会话中持续保存的数据,哪怕你在不同的网站中跳转也不会清除,但关闭窗口后就没了;localStorage是在本地永久存储的。方法: key(index) 根据索引获取值 getItem(key) 获取 key 的值 setItem(key, data) 设置 key 的值 removeItem(key) 删除 key clear() 清除所有的key 属性: length 当前存储的个数示例: store = window.localStorage; store.setItem(‘a’,123); alert(store.getItem(‘a’)); store.removeItem(‘a’); 【IE UserData】支持:IE5+ 关于UserData的详细文档:http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Fms531424.aspx&urlrefer=2fa4fa92d67513c8a85bd4ef95ae05a3使用:#default#userData’)”> 或者,通过脚本来设置: object.style.behavior = “url(‘#default#userData’)” object.addBehavior (“#default#userData”) 数据: 在XP下,一般位于C:\Documents and Settings\用户名\UserData,有些时候会在C:\Documents and Settings\用户名\Application Data\Microsoft\Internet Explorer\UserData。 在Vista下,位于C:\Users\用户名\AppData\Roaming\Microsoft\Internet Explorer\UserData。方法: getAttribute() 获取指定的属性值。 load(object) 从 userData 存储区载入存储的对象数据。 removeAttribute() 移除对象的指定属性。 save(object) 将对象数据存储到一个 userData 存储区。 setAttribute() 设置指定的属性值。属性: expires 设置或者获取 userData behavior 保存数据的失效日期,不设置则为永久。 store = document.documentElement; store.addBehavior('#default#userdata'); var STORE_NAME = ‘my_userdata’store.save(STORE_NAME); store.setAttribute(‘a’, 123); store.save(STORE_NAME); store.load(STORE_NAME); store.getAttribute(‘a’); store.removeAttribute(‘a’); store.save(STORE_NAME); 下面贴一段兼容代码供大家参考: var Storage = function(win, doc) { var hasSupport = true, store = win.localStorage, STORE_NAME = 'localstorage', obj, support = function() { return hasSupport }, error = function() { thrownew Error("don't support localStorage") }; if (store && store.getItem) { obj = { set: function(key, value) { return store.setItem(key, value); }, get: function(key) { return store.getItem(key); }, del: function(key) { return store.removeItem(key); } }; } else { store = doc.documentElement; try { store.addBehavior('#default#userdata'); store.save(STORE_NAME); } catch(e) { hasSupport = false; } if (hasSupport) { obj = { set: function(key, value) { store.setAttribute(key, value); store.save(STORE_NAME); }, get: function(key) { store.load(STORE_NAME); return store.getAttribute(key); }, del: function(key) { store.removeAttribute(key); store.save(STORE_NAME); } }; } } if (!obj) { obj = { set: error, get: error, del: error }; } obj.support = support; return obj; } (window, document);
心情不好怎么办? 每个人都有心情不好的时候,那么心情不好的时候做些什么能让自己快乐起来了,或者说让心慢慢地静下来,从容地去面对生活了。以下介绍一些方法让心情里那片乌云慢慢消散。这些方法也是我常常用来让心情变好的方法。 音乐播放器。你感兴趣的书籍。 找一些轻音乐,用心的去聆听,例如钢琴曲:Kiss in the rain ,Teas in the pink rain ,仙境等等,其实,很多钢琴曲都是好的轻音乐,跟着音乐的旋律,让自己的心情变得宁静,用一个宁静的心去发掘人生的意义,找到意义的你,自然会变得开心。 找一些轻松的家务来干,用心地去烧一道好菜,如果不会做的话,可以找一本指导书或者有关的视频来学,当尝到自己煮的美味可口的饭菜时,所有的不快也飞到九霄云外了。可以去整理一下自己的房间,把衣柜里那些零乱的衣服整理整齐,把自己的书桌上乱七八糟的书籍全部分类摆好。还有用拖把和扫帚把你的房间打扫干净,记得有一次,我妈妈回到家,她还怀疑走错了家,因为我把家里收拾得很干净整齐,看到一个物品从一个无序变为有序的过程,而且我是做事者,心里一种舒适感和成就感早把之前的愁云给赶跑了。我的心情又开始灿烂了。 看一些搞笑或者哲理性的电视剧或者电影,或者一些综艺节目,小品,笑话等等。搞笑的电视剧,我这里介绍:《爱情公寓》(这部电视剧让我和室友几度笑翻,起初我认为它内容太肤浅,但是真的接触之后,发现搞笑之极之余还有些哲理性的感悟收获。我最近也在看,好几次,我都因为这部电视剧心情大好)、《家有儿女》等等,至于搞笑的电影:有《小鬼当家》、《乖乖女是大明星》。我这里介绍几个《快乐大本营》、《天天向上》等等。看哲理性的电视剧或者电影,看着别人的经历和感悟,从而让自己找到方向,这不失为一个找回好心情的方法。 看书,找一本你喜欢的书籍类型的书(我比较喜欢的小说)。不管是电子书的形式,还是纸质的形式,只要你喜欢,两种都随意。看完书之后,你一定会有所感想,那些想法代替了你原来的郁闷或者烦恼的运动法,如果你喜欢室内的运动可以选择很多,我最推荐健美操,健身、塑身、瘦身的同时,又能让你心情不好。想法,心情也会慢慢好起来了。 找个人倾诉,最好是了解你的朋友。当然可以写写日记,把自己的想法以文字的形式表现出来。心里想的得到了释放,那么那你心胸也开阔,很多事情自然不成烦恼了。 运动法,以出汗的方式去释放郁闷的心情。室内的运动我推荐:健美操——健身、塑身、瘦身,现在还有改善心情的功效。交谊舞——找一个你喜欢的舞伴,让你的所有不快,在旋转,舞动中消去,让快乐自信回归。当然还有其他的。选择你自己喜欢的去做吧!内外的我推荐:慢跑——可以找一个人一起陪着你,慢慢地去呼吸大自然的空气,让新鲜的氧气充溢着你的心胸,驱散所有怨气;其实散散步,也会让心情变好,亲近大自然,让那片辽阔充溢着你,让你的心跟着大自然一起宁静。 注意事项 运动时,注意时间不要过长,一般以半个到一个小时为宜。
首页 1 2 下一页