请教:关于2xx的几个状态

0 views
Skip to first unread message

cloudxpc

unread,
Dec 1, 2009, 3:33:55 AM12/1/09
to 读S计划 - Java Web 方向
-201 Create 用于在服务器上创建资源,是否程序中有关上传等新建文件的操作都与此状态有关呢?
-204 No Content 可不刷新页面获得元信息等,AJAX是否与此状态有关?如果有关,但此状态不可带有body,信息是否由header
带回?
-205 Reset Content 是否与刷新页面有关?或者说浏览器的刷新是否与此状态有关?以及HTML表单中的reset按钮是否与此有
关?
-206 Partial Content 表示响应了部分内容, 也就是说还没响应完?那当我们在浏览器中打开某网站的时候都是从上至下一点一点显
示,那是否与此状态有关?每次先返回206直至全部响应完毕返回200?

请不惜赐教,谢谢~

靳雄飞

unread,
Dec 1, 2009, 5:46:54 AM12/1/09
to dus...@googlegroups.com
总的来说,你提出的几种状态码,和你所说的情形都是不相关的。
状态码只是规定了服务器在遇到某种情况时,该如何通知客户端,
但在一般情况下,服务器在2xx系列中,返回200以外状态的情况极少,也就是说,很少有人用这种规定来表达什么逻辑(至少我很少碰到)。
 
在现实生活中,经常用到的返回码非常有限。
 
 
举个例子,就好比编程语言中,有for语句,
那么如果问:循环都是由for实现的吗?
未必,因为还有while。
 
for只是语言的一种能力,程序员用不用,是两可的,
 
这些规定的价值在与:
如果你是实现服务器的,在遇到合适的情况时,你可以用规定状态码返回。
如果你是实现客户端的,在遇到特定状态码时,知道是什么意思,并作出合适的处理。
如果你既不实现客户端,也不是实现服务端,那么你在分析协议的时候,看到这些代码,知道什么意思,学习的目的就达到了。
 
 
 
-201 Create 用于在服务器上创建资源,是否程序中有关上传等新建文件的操作都与此状态有关呢?
上传与此无关,在第一周的时候,就讨论过,现在的上传基本上是通过multipart实现的。
实际上,由于动态内容(jsp,asp)的存在,有些HTTP协议的规定已经不太适合其最初的定义。
比如:put方法是要在server上创建URI对应的资源,如果创建成功,则返回201(这在9.6节有描述)。
但实际上,如果我们用put方式提交表单,比如做一个表的增删改查,我们通常向server上put的是同一个URL,后面跟不同的参数,所以,通常得到的response是200。
在这一点上,REST的要求相对比较严格。
 

-204 No Content 可不刷新页面获得元信息等,AJAX是否与此状态有关?如果有关,但此状态不可带有body,信息是否由header带回?
无关。道理类似。
Ajax只是一个纯粹的客户端技术,它本质上走的还是独立的HTTP请求,和浏览器发出的请求没有任何差异。

-205 Reset Content 是否与刷新页面有关?或者说浏览器的刷新是否与此状态有关?以及HTML表单中的reset按钮是否与此有关?
无关,你说的都是浏览器支持的行为,与协议无关。

-206 Partial Content 表示响应了部分内容, 也就是说还没响应完?那当我们在浏览器中打开某网站的时候都是从上至下一点一点显示,那是否与此状态有关?每次先返回206直至全部响应完毕返回200?
 
这一点不确定。
但可以肯定的是,某网站从上向下一点点显示,肯定与此无关,那是由网络传输和浏览器解析的速度决定的。

 


 
2009/12/1 cloudxpc <clou...@gmail.com>

cloudxpc

unread,
Dec 1, 2009, 7:42:56 PM12/1/09
to 读S计划 - Java Web 方向
最初我想web编程的所有内容都应该基于HTTP,客户端和服务器的所有交互都应该由HTTP实现,所以我以为既然操作都由两端相互发送的消息决定,那
看到这些状态码,而且它的含义又与实际应用中的内容较类似,所以萌生了这个想法,想会不会是相应的实际操作基于相应的状态码呢? 其实当初提问的时候也
觉得硬把这些和状态码说到一起有些牵强。

听了您的解释使我明白了不少,那看来web上实际应用中,多数都应该是若干个请求和若干个响应200实现的吧。

非常感谢您的详细讲解!


On Dec 1, 6:46 pm, 靳雄飞 <jinx...@gmail.com> wrote:
> 总的来说,你提出的几种状态码,和你所说的情形都是不相关的。
> 状态码只是规定了服务器在遇到某种情况时,该如何通知客户端,
> 但在一般情况下,服务器在2xx系列中,返回200以外状态的情况极少,也就是说,很少有人用这种规定来表达什么逻辑(至少我很少碰到)。
>
> 在现实生活中,经常用到的返回码非常有限。
>
> 举个例子,就好比编程语言中,有for语句,
> 那么如果问:循环都是由for实现的吗?
> 未必,因为还有while。
>
> for只是语言的一种能力,程序员用不用,是两可的,
>
> 这些规定的价值在与:
> 如果你是实现服务器的,在遇到合适的情况时,你可以用规定状态码返回。
> 如果你是实现客户端的,在遇到特定状态码时,知道是什么意思,并作出合适的处理。
> 如果你既不实现客户端,也不是实现服务端,那么你在分析协议的时候,看到这些代码,知道什么意思,学习的目的就达到了。
>
> -201 Create 用于在服务器上创建资源,是否程序中有关上传等新建文件的操作都与此状态有关呢?
> 上传与此无关,在第一周的时候,就讨论过,现在的上传基本上是通过multipart实现的。
> 实际上,由于动态内容(jsp,asp)的存在,有些HTTP协议的规定已经不太适合其最初的定义。
> 比如:put方法是要在server上创建URI对应的资源,如果创建成功,则返回201(这在9.6节有描述)。

> 但实际上,如果我们用put方式提交表单,比如做一个表的增删改查,我们通常向server上put的是同一个URL,后面跟不同的参数,所以,通常得到的re-sponse是200。


> 在这一点上,REST的要求相对比较严格。
>
> -204 No Content 可不刷新页面获得元信息等,AJAX是否与此状态有关?如果有关,但此状态不可带有body,信息是否由header带回?
> 无关。道理类似。
> Ajax只是一个纯粹的客户端技术,它本质上走的还是独立的HTTP请求,和浏览器发出的请求没有任何差异。
>
> -205 Reset Content 是否与刷新页面有关?或者说浏览器的刷新是否与此状态有关?以及HTML表单中的reset按钮是否与此有关?
> 无关,你说的都是浏览器支持的行为,与协议无关。
>
> -206 Partial Content 表示响应了部分内容,
> 也就是说还没响应完?那当我们在浏览器中打开某网站的时候都是从上至下一点一点显示,那是否与此状态有关?每次先返回206直至全部响应完毕返回200?
>
> 这一点不确定。
> 但可以肯定的是,某网站从上向下一点点显示,肯定与此无关,那是由网络传输和浏览器解析的速度决定的。
>

> 2009/12/1 cloudxpc <cloud...@gmail.com>


>
>
>
> > -201 Create 用于在服务器上创建资源,是否程序中有关上传等新建文件的操作都与此状态有关呢?
> > -204 No Content 可不刷新页面获得元信息等,AJAX是否与此状态有关?如果有关,但此状态不可带有body,信息是否由header
> > 带回?
> > -205 Reset Content 是否与刷新页面有关?或者说浏览器的刷新是否与此状态有关?以及HTML表单中的reset按钮是否与此有
> > 关?
> > -206 Partial Content 表示响应了部分内容, 也就是说还没响应完?那当我们在浏览器中打开某网站的时候都是从上至下一点一点显
> > 示,那是否与此状态有关?每次先返回206直至全部响应完毕返回200?
>

> > 请不惜赐教,谢谢~- Hide quoted text -
>
> - Show quoted text -

靳雄飞

unread,
Dec 1, 2009, 10:27:52 PM12/1/09
to dus...@googlegroups.com
> 听了您的解释使我明白了不少,那看来web上实际应用中,多数都应该是若干个请求和若干
> 个响应200实现的吧。
是的,当我们在浏览器中输入URL的时候,发起一个request,得到一个response是一个html文本,该html中用到的所有其它资源,比如图片、iframe、ajax请求等等,都会再发出独立的request请求。
正因为这样,随着网页上图片的增加,一个页面可能发出几百个请求,所以persistent connection才体现其价值。

2009/12/2 cloudxpc <clou...@gmail.com>

cloudxpc

unread,
Dec 2, 2009, 4:02:28 AM12/2/09
to 读S计划 - Java Web 方向
恩,看来由此可以看出,之前CSDN上有人提出过为什么一般较大型网站上的图片都是以"http://images.xx.com/1.gif"这种绝
对路径存在而不是我们做网页时用的"../1.gif"这种相对路径。原因应该多一部分是图片需求的请求/响应开销较大,所以大型网站建立了专门的图片
服务器,让图片服务器和客户端建立独立的Connection来实现请求/响应,减少主服务的开销吧。。。


On Dec 2, 11:27 am, 靳雄飞 <jinx...@gmail.com> wrote:
> > 听了您的解释使我明白了不少,那看来web上实际应用中,多数都应该是若干个请求和若干
> > 个响应200实现的吧。
>

> 是的,当我们在浏览器中输入URL的时候,发起一个request,得到一个response是一个html文本,该html中用到的所有其它资源,比如图片、-iframe、ajax请求等等,都会再发出独立的request请求。


> 正因为这样,随着网页上图片的增加,一个页面可能发出几百个请求,所以persistent connection才体现其价值。
>

> 2009/12/2 cloudxpc <cloud...@gmail.com>


>
>
>
> > 最初我想web编程的所有内容都应该基于HTTP,客户端和服务器的所有交互都应该由HTTP实现,所以我以为既然操作都由两端相互发送的消息决定,那
> > 看到这些状态码,而且它的含义又与实际应用中的内容较类似,所以萌生了这个想法,想会不会是相应的实际操作基于相应的状态码呢? 其实当初提问的时候也
> > 觉得硬把这些和状态码说到一起有些牵强。
>
> > 听了您的解释使我明白了不少,那看来web上实际应用中,多数都应该是若干个请求和若干个响应200实现的吧。
>
> > 非常感谢您的详细讲解!
>
> > On Dec 1, 6:46 pm, 靳雄飞 <jinx...@gmail.com> wrote:
> > > 总的来说,你提出的几种状态码,和你所说的情形都是不相关的。
> > > 状态码只是规定了服务器在遇到某种情况时,该如何通知客户端,
> > > 但在一般情况下,服务器在2xx系列中,返回200以外状态的情况极少,也就是说,很少有人用这种规定来表达什么逻辑(至少我很少碰到)。
>
> > > 在现实生活中,经常用到的返回码非常有限。
>
> > > 举个例子,就好比编程语言中,有for语句,
> > > 那么如果问:循环都是由for实现的吗?
> > > 未必,因为还有while。
>
> > > for只是语言的一种能力,程序员用不用,是两可的,
>
> > > 这些规定的价值在与:
> > > 如果你是实现服务器的,在遇到合适的情况时,你可以用规定状态码返回。
> > > 如果你是实现客户端的,在遇到特定状态码时,知道是什么意思,并作出合适的处理。
> > > 如果你既不实现客户端,也不是实现服务端,那么你在分析协议的时候,看到这些代码,知道什么意思,学习的目的就达到了。
>
> > > -201 Create 用于在服务器上创建资源,是否程序中有关上传等新建文件的操作都与此状态有关呢?
> > > 上传与此无关,在第一周的时候,就讨论过,现在的上传基本上是通过multipart实现的。
> > > 实际上,由于动态内容(jsp,asp)的存在,有些HTTP协议的规定已经不太适合其最初的定义。
> > > 比如:put方法是要在server上创建URI对应的资源,如果创建成功,则返回201(这在9.6节有描述)。
>

> > 但实际上,如果我们用put方式提交表单,比如做一个表的增删改查,我们通常向server上put的是同一个URL,后面跟不同的参数,所以,通常得到的re--sponse是200。


> > > 在这一点上,REST的要求相对比较严格。
>
> > > -204 No Content
> > 可不刷新页面获得元信息等,AJAX是否与此状态有关?如果有关,但此状态不可带有body,信息是否由header带回?
> > > 无关。道理类似。
> > > Ajax只是一个纯粹的客户端技术,它本质上走的还是独立的HTTP请求,和浏览器发出的请求没有任何差异。
>
> > > -205 Reset Content 是否与刷新页面有关?或者说浏览器的刷新是否与此状态有关?以及HTML表单中的reset按钮是否与此有关?
> > > 无关,你说的都是浏览器支持的行为,与协议无关。
>
> > > -206 Partial Content 表示响应了部分内容,
> > > 也就是说还没响应完?那当我们在浏览器中打开某网站的时候都是从上至下一点一点显示,那是否与此状态有关?每次先返回206直至全部响应完毕返回200?
>
> > > 这一点不确定。
> > > 但可以肯定的是,某网站从上向下一点点显示,肯定与此无关,那是由网络传输和浏览器解析的速度决定的。
>
> > > 2009/12/1 cloudxpc <cloud...@gmail.com>
>
> > > > -201 Create 用于在服务器上创建资源,是否程序中有关上传等新建文件的操作都与此状态有关呢?
> > > > -204 No Content 可不刷新页面获得元信息等,AJAX是否与此状态有关?如果有关,但此状态不可带有body,信息是否由header
> > > > 带回?
> > > > -205 Reset Content 是否与刷新页面有关?或者说浏览器的刷新是否与此状态有关?以及HTML表单中的reset按钮是否与此有
> > > > 关?
> > > > -206 Partial Content 表示响应了部分内容, 也就是说还没响应完?那当我们在浏览器中打开某网站的时候都是从上至下一点一点显
> > > > 示,那是否与此状态有关?每次先返回206直至全部响应完毕返回200?
>
> > > > 请不惜赐教,谢谢~- Hide quoted text -
>

> > > - Show quoted text -- Hide quoted text -

靳雄飞

unread,
Dec 2, 2009, 5:28:52 AM12/2/09
to dus...@googlegroups.com
对,这也是大型网站常用的负载分摊手段,除了图片独立外,还有比如博客的内容来自一站,而访问统计来自另外一站,评论来自另一个不同的站点。


 
2009/12/2 cloudxpc <clou...@gmail.com>

靳雄飞

unread,
Dec 2, 2009, 5:29:50 AM12/2/09
to dus...@googlegroups.com
貌似只有你读得比较认真,感觉有些用处吗?

2009/12/2 cloudxpc <clou...@gmail.com>

cloudxpc

unread,
Dec 2, 2009, 7:27:05 PM12/2/09
to 读S计划 - Java Web 方向
读的认真不敢说,只是我可爱联想,呵呵。 主要最近公司不太忙,可以有大部分时间学习,读了这些当然大有用处,这些基层知识就相当于内功,修炼之后看不
出会了什么,但能使你更明白以前模糊的东西。

我比较期待下一学期的内容。


On Dec 2, 6:29 pm, 靳雄飞 <jinx...@gmail.com> wrote:
> 貌似只有你读得比较认真,感觉有些用处吗?
>
> 2009/12/2 cloudxpc <cloud...@gmail.com>


>
>
>
> > 恩,看来由此可以看出,之前CSDN上有人提出过为什么一般较大型网站上的图片都是以"http://images.xx.com/1.gif"这种绝
> > 对路径存在而不是我们做网页时用的"../1.gif"这种相对路径。原因应该多一部分是图片需求的请求/响应开销较大,所以大型网站建立了专门的图片
> > 服务器,让图片服务器和客户端建立独立的Connection来实现请求/响应,减少主服务的开销吧。。。
>
> > On Dec 2, 11:27 am, 靳雄飞 <jinx...@gmail.com> wrote:
> > > > 听了您的解释使我明白了不少,那看来web上实际应用中,多数都应该是若干个请求和若干
> > > > 个响应200实现的吧。
>

> > 是的,当我们在浏览器中输入URL的时候,发起一个request,得到一个response是一个html文本,该html中用到的所有其它资源,比如图片、--iframe、ajax请求等等,都会再发出独立的request请求。


> > > 正因为这样,随着网页上图片的增加,一个页面可能发出几百个请求,所以persistent connection才体现其价值。
>
> > > 2009/12/2 cloudxpc <cloud...@gmail.com>
>
> > > > 最初我想web编程的所有内容都应该基于HTTP,客户端和服务器的所有交互都应该由HTTP实现,所以我以为既然操作都由两端相互发送的消息决定,那
> > > > 看到这些状态码,而且它的含义又与实际应用中的内容较类似,所以萌生了这个想法,想会不会是相应的实际操作基于相应的状态码呢? 其实当初提问的时候也
> > > > 觉得硬把这些和状态码说到一起有些牵强。
>
> > > > 听了您的解释使我明白了不少,那看来web上实际应用中,多数都应该是若干个请求和若干个响应200实现的吧。
>
> > > > 非常感谢您的详细讲解!
>
> > > > On Dec 1, 6:46 pm, 靳雄飞 <jinx...@gmail.com> wrote:
> > > > > 总的来说,你提出的几种状态码,和你所说的情形都是不相关的。
> > > > > 状态码只是规定了服务器在遇到某种情况时,该如何通知客户端,
> > > > > 但在一般情况下,服务器在2xx系列中,返回200以外状态的情况极少,也就是说,很少有人用这种规定来表达什么逻辑(至少我很少碰到)。
>
> > > > > 在现实生活中,经常用到的返回码非常有限。
>
> > > > > 举个例子,就好比编程语言中,有for语句,
> > > > > 那么如果问:循环都是由for实现的吗?
> > > > > 未必,因为还有while。
>
> > > > > for只是语言的一种能力,程序员用不用,是两可的,
>
> > > > > 这些规定的价值在与:
> > > > > 如果你是实现服务器的,在遇到合适的情况时,你可以用规定状态码返回。
> > > > > 如果你是实现客户端的,在遇到特定状态码时,知道是什么意思,并作出合适的处理。
> > > > > 如果你既不实现客户端,也不是实现服务端,那么你在分析协议的时候,看到这些代码,知道什么意思,学习的目的就达到了。
>
> > > > > -201 Create 用于在服务器上创建资源,是否程序中有关上传等新建文件的操作都与此状态有关呢?
> > > > > 上传与此无关,在第一周的时候,就讨论过,现在的上传基本上是通过multipart实现的。
> > > > > 实际上,由于动态内容(jsp,asp)的存在,有些HTTP协议的规定已经不太适合其最初的定义。
> > > > > 比如:put方法是要在server上创建URI对应的资源,如果创建成功,则返回201(这在9.6节有描述)。
>

> > 但实际上,如果我们用put方式提交表单,比如做一个表的增删改查,我们通常向server上put的是同一个URL,后面跟不同的参数,所以,通常得到的re---sponse是200。

潘亮

unread,
Dec 6, 2009, 10:36:26 PM12/6/09
to dus...@googlegroups.com
我读了前4章,中英文夹杂着看,也觉得对于做web很有用,但是公司现在做C/S的。。而且天天加班到9点。。哎

2009/12/3 cloudxpc <clou...@gmail.com>

靳雄飞

unread,
Dec 7, 2009, 6:22:00 AM12/7/09
to dus...@googlegroups.com
同情一个!

2009/12/7 潘亮 <neo.li...@gmail.com>
Reply all
Reply to author
Forward
0 new messages