您的位置:首页 > 理论基础 > 计算机网络

http请求方法详解

2015-07-21 13:22 155 查看
1.get方法

get方法意思是获取被请求uri指定的信息。如果请求涉及到一个数据生成的过程,那么过程生成的数据应该作为实体在响应中返回而不是过程的原文本,除非原文本恰好是过程的输出。

如果请求信息包括If-Modified-Since,If-Unmodified-Since,If-Match,If-None-Match或者If-Range头域,get的语义将变成条件get。一个条件get方法会请求满足头域的实体。条件get方法减少了不必要的网络使用,者通过允许利用缓存里仍然保鲜(即满足头域条件)的实体而不用多次请求或传输客户端已有的实体来实现的。

如果请求方法包含了range域,get的语义将变为部分get。部分get允许客户端获取服务器实体的部分数据,而不需要获取客户端已经有的实体的部分数据。

get请求是可缓存的。

2.head方法

head方法和get方法一致,除了服务器不能在响应里返回消息主体。head请求响应里http头域里的元信息(就是头域信息)应该和get请求响应里的元信息一致,此方法用来获取请求实体的元信息而不需要获取传输实体主体。此方法常用来测试超文本链接的有效性,可访问性和最近的改变。

head请求的响应是可缓存的,因为响应的信息可能被缓存用于更新以前那个资源对应的实体,如果出现一个新的域值(如也有可能是Content-Length,Content-MD5,ETag,Last-Modified值得改变)指明了缓存的实体和当前服务器上的实体不一致,那么缓存必须认为缓存项是过时的(stale)。

3.post方法

post方法用于请求源服务器接收请求中的实体作为请求资源的一个新的从属物。post被设计涵盖下面的功能。

已存在的资源的注释。

发布消息给一个布告板,新闻组,邮件列表,或者相似的文章组。

提供一个数据块,如提供一个表单给一个数据处理过程。

post方法的实际功能是由服务器决定的,并且经常依赖于请求uri。

post提交的实体是请求uri的从属物,就好像一个文件从属于一个目录,一篇新闻文章从属于一个新闻组,或者一条记录从属于一个数据库。

post方法执行的动作可能不会对请求uri资源起作用。在这种情况下,200(成功)或者204(没有内容)将是适合的响应状态,这依赖于响应是否包含一个描述结果的实体。

如果资源被服务器创建,响应应该是201(Created)并且包含一个实体,此实体描述了请求的状态。并且引用了这个新资源和一个Location头域。

post方法的响应是不可缓存的。除非响应里有合适的Cache-Control或者Expires头域。然而,303(见其他)响应能被用户代理利用去获得可缓存的响应。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: