HTTP请求和响应2:方法(Method)

方法表明了客户端希望服务器对资源执行的动作,常用的方法包括:GET、HEAD、POST、PUT、TRACE、OPTIONS和DELETE,每个服务器可以实现这些方法中的部分或者全部。下面将对这些方法做一个详细的介绍。

GET

通常用于请求服务器发送某个资源,HTTP/1.1要求服务器必须实现该方法,下面是一个HTTP请求:

GET /seasonal/index-fall.html HTTP/1.1
Host: www.joes-hardware.com
Accept: *

响应报文如下:

HTTP/1.1 200 OK
Content-Type: text/html
Context-Length: 617

//body

HEAD

HEAD和GET类似,只是服务器的响应中只返回首部(没有实体部分),一般用于:

1)在不获取资源的情况下了解资源的状况;

2)通过查看响应中的状态码,看看某个对象是否存在;

3)通过查看首部,测试资源是否被修改了。

HEAD返回的首部应该和GET返回的首部完全相同。

PUT

向服务器写入文档,就是让服务器用请求的主体部分来创建一个由所请求的URL命名的新文档,或者如果那个URL已经存在的话,就用这个主体来替代它。

请求报文:

PUT /product-list.txt HTTP/1.1
Host: www.joes-hardware.com
Content-type: text/plain
Content-length: 34

//body

响应报文:

HTTP/1.1 201 Created
Location: http://www.joes-hardware.com/product-list.txt
Content-type: text/plain
Context-length: 47

http://www.joes-hardware.com/product-list.txt

POST

POST通常用来支持HTML的表单,表单中填好的数据被发送到服务器,服务器将其交给对应的程序进行处理。

请求报文:

POST /inventory-check.cgi HTTP/1.1
Host: www.joes-hardware.com
Content-type: text/plain
Content-length: 18

item-bandsaw 2647

服务端交由对应程序处理后,发送响应报文:

HTTP/1.1 200 OK
Content-type: text/plain
Context-length: 37

The bandsaw model 2647 is in stock!

TRACE

客户端发起一个请求,请求可能会穿过防火墙、代理、网关或其他一些应用程序,每个中间节点都可能会修改原始的HTTP请求。TRACE请求会在目地服务器端发起一个“环回”诊断,行程最后一站的服务器会弹回一条TRACE响应,并在响应主体中带上收到的原始请求报文,这样客户端可以诊断原始报文是否被修改过。

请求报文:

TRACE /product-list.txt HTTP/1.1
Accept:*
Host: www.joes-hardware.com

报文经过代理服务器后:

TRACE /product-list.txt HTTP/1.1
Host: www.joes-hardware.com
Accept: *
Via: 1.1 proxy3.company.com

服务器弹回的TRACE响应:

HTTP/1.1 200 OK
Content-type: text/plain
Content-length: 96

TRACE /product-list.txt HTTP/1.1
Host: www.joes-hardware.com
Accept: *
Via: 1.1 proxy3.company.com

TRACE响应经过代理服务器后:

HTTP/1.1 200 OK
Content-type: text/plain
Content-length: 96
Via: 1.1 proxy3.company.com

TRACE /product-list.txt HTTP/1.1
Host: www.joes-hardware.com
Accept: *
Via: 1.1 proxy3.company.com

TRACE方法主要用于诊断,它主要的缺陷是它假定中间应用程序对各种不同类型请求(GET、HEAD、POST等)的处理都是相同的,如果实际情况不同,那么诊断将不准确。

OPTIONS

OPTIONS方法请求Web服务器告知其支持的各种功能,这为客户端应用程序提供了一种手段,使其不用实际访问那些资源就能判定访问各种资源的最优方式。

请求报文:

OPTIONS * HTTP/1.1
Host: www.joes-hardware.com
Accept: *

响应报文:

HTTP/1.1 200 OK
Allow: GET, POST, PUT, OPTIONS
Context-length: 0

DELETE

DELETE方法用于请服务器删除请求URL所指定的资源。

请求报文:

DELETE /product-list.txt HTTP/1.1
Host: www.joes-hardware.com

响应报文:

HTTP/1.1 200 OK
Content-type: text/plain
Content-length: 54

//响应消息

扩展方法

HTTP被设计成字段可扩展的,扩展方法指的是没有在HTTP/1.1中定义的方法,这些方法为开发者提供了一种扩展这些HTTP服务能力的手段。

时间: 2024-10-09 02:24:48

HTTP请求和响应2:方法(Method)的相关文章

接口测试基础知识详解http请求由三部分组成,分别是:请求行、消息报头、请求正文 1、请求行以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本,格式如下:Method Request-URI HTTP-Version CRLF 其中 Method表示请求方法;Request-URI是一个统一资源标识符;HTTP-Version表示请求的HTTP协议版本;CRLF表示回车和换行(除了

HTTP URL (URL是一种特殊类型的URI,包含了用于查找某个资源的足够的信息)的格式如下:http://host[":"port][abs_path]http表示要通过HTTP协议来定位网络资源:host表示合法的Internet主机域名或者IP地址:port指定一个端口号,为空则使用缺省端口80:abs_path指定请求资源的URI:如果URL中没有给出abs_path,那么当它作为请求URI时,必须以"/"的形式给出,通常这个工作浏览器自动帮我们完成.e

crm将消息(请求和响应类)与 Execute 方法结合使用

IOrganizationService 提供执行常用操作的方法.除了常用方法外,还可以使用 IOrganizationService.Execute 方法执行没有公开为方法的消息.Execute 方法采用消息请求类作为参数并返回消息响应类.请求消息类名称以"Request"结尾,响应消息类名称以"Response"结尾.有关 Execute 方法支持的所有消息的详细信息,请参阅组织服务中的 xRM 消息和组织服务中的 CRM 消息.IDiscoveryServic

HTTP/NSURLConnection(请求、响应)、http响应状态码大全

一.网络基础 1.基本概念> 为什么要学习网络编程在移动互联网时代,移动应用的特征有几乎所有应用都需要用到网络,比如QQ.微博.网易新闻.优酷.百度地图只有通过网络跟外界进行数据交互.数据更新,应用才能保持新鲜.活力如果没有了网络,也就缺少了数据变化,无论外观多么华丽,终将变成一潭死水 移动网络应用 = 良好的UI + 良好的用户体验 + 实时更新的数据新闻:网易新闻.新浪新闻.搜狐新闻.腾讯新闻视频:优酷.百度视频.搜狐视频.爱奇艺视频音乐:QQ音乐.百度音乐.酷狗音乐.酷我音乐LBS:百度地

laravel框架总结(一) -- 请求和响应

一.laravel请求 1.获取请求 1>获取请求的 URI path 方法会返回请求的 URI.所以,如果接收到的请求目标是 http://domain.com/foo/bar,那么 path 方法就会返回 foo/bar: $uri = $request->path(); is 方法可以验证接收到的请求 URI 与指定的规则是否相匹配.使用此方法时你可以将 * 符号作为通配符: if ($request->is('admin/*')) { // } 使用 url 方法,可以获取完整的

写一个ActionFilter检测WebApi接口请求和响应

我们一般用日志记录每次Action的请求和响应,方便接口出错后排查,不过如果每个Action方法内都写操作日志太麻烦,而且客户端传递了错误JSON或XML,没法对应强类型参数,请求没法进入方法内, 把日志记录操作放在一个ActionFilter即可. [AttributeUsageAttribute(AttributeTargets.Method, Inherited = false, AllowMultiple = false)] public class ApiActionAttribute

Servlet 之请求,响应,缓存以及乱码

JavaWeb中,Servlet的请求,响应对象有很多实用的api,此处依据http协议中请求行,请求头,请求体以及响应行,响应头,响应体的思路,对这些api以及相关事项做个整理,最后总结一下乱码的相关处理. 响应行 响应行格式为"协议 状态码 状态码信息",这里主要就是状态码的操作,如果是比较正式的写法,应该使用HttpServletResponse接口中所定义的状态码,如: setStatus(404) setStatus(HttpServletResponse. SC_NOT_F

Django REST框架-请求与响应

用前面的那个文件,继续填写 教程2:请求和响应 从这一点开始,我们将真正开始覆盖REST框架的核心.我们来介绍几个基本的构建块. 请求对象 REST框架引入了Request扩展常规的对象HttpRequest,并提供了更灵活的请求解析.Request对象的核心功能是request.data属性,这与request.POST使用Web API 相似但更有用. request.POST # Only handles form data. Only works for 'POST' method. r

Node.js之HTTP请求与响应

在C#.OC中也是客户端发起一个请求,服务端作出响应.我们可以把这个过程抽象理解 . 1.客户端给服务端发起请求相当于向服务端写入一个流(writable) 2.服务端读取客户端的流(readable) 3.服务端向客户端作出响应相当于向客户端写入一个流(writable) 4.客户端读取服务端的响应(readable) 整个流程分为两部分一是客户端的处理而是服务端的处理.最主要的还是客户端请求和服务端响应. 一.http.ClientRequest对象 它实现了writable流,可以使用它的

HTTP要点概述:三,客户端和服务器,请求和响应

一,客户端和服务器: HTTP协议主要用于客户端和服务器之间的通信. 1,客户端(client):请求访问资源的一端.(知道为啥用C表示客户端了吧) 2,服务器(server):提供资源响应的一端. 两台使用HTTP协议通信的两台计算机,在一条通信线路上,必定有一端是客户端,另一端是服务器.就实际情况而言,两台计算机之间作为服务器或者客户端角色可能会发生互换,就一条通信线路而言(记得好像是信道,information channels)客户端和服务器角色是固定的,并且HTTP可以明确区分哪个是客

HTTP请求和响应格式详细解析

引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出.HTTP协议的主要特点可概括如下:1.支持客户/服务器模式.2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径.请求方法常用的有GET.HEAD.POS