手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表2024年09月的文章

HTTP 204和205的应用

上次看的那篇博客里介绍说到一点关于HTTP的code的问题,在jquery里面已经在1.5里被改进了。上次的问题:

XML/HTML代码
  1. 原本对于“请求成功”的浏览器状态码,除200-299以及304外,还有一个1223,来自于IE的一个BUG,会将204的状态码变成 1223。现在因为有了jXHR对象,相当于中间多了一层,因此从jXHR对象获取statusCode不会出现1223的情况,已经被变回204了。  

说实话,我对于204代码真的不知道有具体的作用,因为事实上,我们很少会用到,往往 返回的时候,要么返回1、0之类的,就要么是JSON之类的数据。

然而这篇文章,就说明了一些简单的理由:

内容由此开始:。。。。。。

之前和人讨论过这个问题,,, 今天感冒在家休息, 就回忆了一下, 整理如下.

我们很多的应用在使用Ajax的时候, 大多数情况都是询问型操作, 比如提交数据, 则Ajax只是期待服务器返回:

JavaScript代码
  1. {status: 0, message:""//status 0代表成功, 非零的时候, message中包含出错信息.  

我们知道HTTP的状态码, 2xx都是表示成功, 而HTTP的204(No Content)响应, 就表示执行成功, 但是没有数据, 浏览器不用刷新页面.也不用导向新的页面.

在HTTP RFC 2616中关于204的描述如下:

XML/HTML代码
  1. If the client is a user agent, it SHOULD NOT change its document view from that which caused the request to be sent. This response is primarily intended to allow input for actions to take place without causing a change to the user agent’s active document view, although any new or updated metainformation SHOULD be applied to the document currently in the user agent’s active view.  

类似的还有205 Reset Content, 表示执行成功, 重置页面(Form表单).

XML/HTML代码
  1. The server has fulfilled the request and the user agent SHOULD reset the document view which caused the request to be sent. This response is primarily intended to allow input for actions to take place via user input, followed by a clearing of the form in which the input is given so that the user can easily initiate another input action.  

于是, 当有一些服务, 只是返回成功与否的时候, 可以尝试使用HTTP的状态码来作为返回信息, 而省掉多余的数据传输, 比如REST中的DELETE和如上所述的查询式Ajax请求.

最后说说205, 205的意思是在接受了浏览器POST请求以后处理成功以后, 告诉浏览器, 执行成功了, 请清空用户填写的Form表单, 方便用户再次填写,

总的来说, 204适合多次对一个Item进行更新, 而205则适合多次提交一个系列的Item.

但, 请注意, 目前还没有一个浏览器支持205, 大部分的浏览器, 都会把205当做204或者200同样对待.

------------

 

 

事实上,大多数时候,我们都是只利用200状态,然后返回一些数据来决定到底返回怎么样的数据喽。。。

上面的文章来自于:http://www.laruence.com/2011/01/20/1844.html,主要在于有次讨论204的时候涉及到的事情,然后遇到了就记下来了

 

 

 

 

 

Tags: http, jquery, 204

五年了,终于毕业了

五年了,我终于毕业了。

五年前,我还在麒麟文化在线传媒中心,也是在那时候起,我才决定要读夜大本科,是华师大的工商管理(华师大,是上海的称呼,其实应该是叫华东师大),工商管理专业是因为,高中起点升本科,只有工商管理和英语专业,但英语我实在烂,后来就只能读工商管理了。

五年中,结婚了,換工作了,有小孩了。变化也算是挺大的。但终于结束了。。。

千言万语就是一句话:过了。

虽然是夜大,但毕竟还是过了。要知道,很多时候面试的时候,居然就是一张文凭。因为这个,被拒了好几次了。NND

Tags: 夜大, 华东师大, 华师大, 本科

开发笔记记录

在开发的时候会遇到很多问题,比如就象今天,某个项目中用了swfupload,是集成的uploadify(可能打错了)?其他时候都正常,就突然今天出了点问题,因为昨天改版上线,今天被人发现了大的BUG,那就是商品不能上传图片了。这个问题非常严重,因为影响了用户的正常使用,但是我在测试的时候却没有发现任何 问题,照样正常上传,一下子就感觉特郁闷。
最后,客户截图出来,显示security error,然后问了一下,用的是IE。哦。。。我用的是firefox。于是換成IE测试,果然出现这种情况。
找了很多原因,都没有发现问题在哪里,JS啥的都没有出错,原来是正常的,现在是只有FIREFOX正常,这究竟是什么 原因 呢?
排查了很久,而且到最后就差要单独拎出来重写了,意外之中突然发现,URL里有两个斜杠,比如当前的页面可能就是类似 这样:http://www.neatstudio.com//upload/image/?act=upload,在host后面有两个斜杠。难道是这个原因 ?于是把那个斜杠去掉,再测试,结果真的成功了。现在想想,好象很多人都会忽略这个问题,但我就真的发现了,分析了一下源码,发现还真有这可能,因为它源码里是的路径是类似:../js/upload/swfobject.js。在URL里有//的时候,它解析的时候,可能会有偏差(没有仔细看,昨天一夜没睡,发现问题后立马解决了它了),对于路径就进行了处理,比如rtrim()之类的,搞定,开心的回家了。。

然后说一点yii中遇到的问题,比如获取当前controller的ID,就是Yii::app()->controller->id,如果获取当前的action的ID,那就是Yii::app()->controller->action->id。也有人说是$this->actionId,我是没有成功过。。
当然,要记得,在init()方法时在,这些都是获取不到的,毕竟,人家还没有初始化,怎么可能有呢,于是我用的是Yii::app()->getRequest()->getPathInfo(),然后explode一下"/",弹出的最后一个就是action,前面的是controller,看了一下源码,官方获取,好象也是这样获取的。黑黑。。。。

好了,做完记录,睡觉了。。

Tags: swfupload, yii, controller, action

加班,发克代码。。。

加班,中途休息一下,接着发克代码中。。。
一天就这样开始,一天又会 这样结束

MD,又被长宽劫持了

啥也不说,就上一张图。。。。

大小: 181.31 K
尺寸: 500 x 360
浏览: 1337 次
点击打开新窗口浏览全图

心都碎了

Tags: 长宽