HTTP 204和205的应用

  • 作者: Laruence( )
  • 本文地址: http://www.laruence.com/2011/01/20/1844.html
  • 转载请注明出处

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

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

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

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

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

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表单).

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同样对待.

Comments

  • 2011/01/20, xiaobai writes: 看到最后一句话,咋这么纠结呢……
  • 2011/01/20, weskerjax writes: 400,401 也可以用來處理錯誤狀況 並可以用 responseText 來傳送錯誤訊息 對於成功訊息的處理我倒是沒有關注到 感謝你的文章
  • 2011/01/24, cfc4n writes: 用firebug调试ajax的时候,经常返回200,但firebug里看到的却是“加载源码失败”,不知道是不是跟这个有关。
  • 2011/01/25, iterse's blog writes: 比较纠结! 能帮我加个友链吗,谢谢!
  • 2011/01/26, 雪候鸟 writes: @iterse done
  • 2011/02/02, Thinking In LAMP Blog » Blog Archive » PHP每月通讯(2011年2月) writes: [...] http://www.laruence.com/2011/01/20/1844.html HTTP 204和205的应用 [...]
  • 2011/03/19, 贝壳里的海 writes: 平时接触这两个状态不多,不是很懂
  • 2011/04/11, wclssdn writes: 不错.. 是不是也可以用其他的码呢? 比如.. 失败了.. 我给他个500- -!! 有空试试~~~
  • 2011/04/12, HTTP 204和205的应用 - 简单快乐,享受生活 writes: [...] 来源:http://www.laruence.com/2011/01/20/1844.html [...]
  • 2011/04/24, TouchHappy » HTTP 204 And 205 writes: [...] 来源:http://www.laruence.com/2011/01/20/1844.html This entry was written by happy , posted on Tuesday April 12 2011at 08:04 pm , filed under Front-End Development, program . Bookmark the permalink . Post a comment below or leave a trackback: Trackback URL. Leave a Reply Click here to cancel reply. [...]
Copyright © 2010 风雪之隅 版权所有, 转载务必注明. 该Feed只供个人使用, 禁止未注明的转载或商业应用. 非法应用的, 一切法律后果自负. 如有问题, 可发E-mail至my at laruence.com.(Digital Fingerprint: 73540ba0a1738d7d07d4b6038d5615e2)

Random Posts:

  • PHP CLI模式下的多进程应用
  • 深入理解JavaScript定时机制
  • 深入理解PHP原理之扩展载入过程
  • 一个巧妙的分页方法
  • 深入理解PHP之require/include顺序
  • 使用C++编写Apache的模块 — 命令表,保存配置信息
  • 将PHP Manual融入(g)Vim
  • 浏览器缓存机制
  • PHP字符串比较
  • 深入理解PHP原理之变量生命期(一)

你可能感兴趣的:(随笔,PHP应用,Js/CSS,204,205)