HTTP 204和205的应用
之前和人讨论过这个问题,,, 今天感冒在家休息, 就回忆了一下, 整理如下.
我们很多的应用在使用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同样对待.
建议继续学习:
- HTTPS, SPDY和 HTTP/2性能的简单对比 (阅读:15930)
- 浅析http协议、cookies和session机制、浏览器缓存 (阅读:15814)
- 从输入 URL 到页面加载完成的过程中都发生了什么事情? (阅读:14518)
- HTTP协议Keep-Alive模式详解 (阅读:10631)
- 各种浏览器审查、监听http头工具介绍 (阅读:6268)
- nginx中对http请求处理的各个阶段分析 (阅读:6089)
- nginx上,http状态200响应,PHP空白返回的问题 (阅读:5530)
- 你不知道的 HTTP (阅读:5383)
- 计算机网络协议赏析-HTTP (阅读:5022)
- libevent源码浅析: http库 (阅读:4840)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:雪候鸟 来源: 风雪之隅
- 标签: 204 205 HTTP
- 发布时间:2011-01-19 22:04:59
- [41] 界面设计速成
- [35] Oracle MTS模式下 进程地址与会话信
- [33] 如何拿下简短的域名
- [32] IOS安全–浅谈关于IOS加固的几种方法
- [32] 程序员技术练级攻略
- [32] 视觉调整-设计师 vs. 逻辑
- [31] 图书馆的世界纪录
- [30] android 开发入门
- [30] 【社会化设计】自我(self)部分――欢迎区
- [27] 读书笔记-壹百度:百度十年千倍的29条法则