HTTP请求和响应2:方法(Method)
2024-08-28 12:17:25
方法表明了client希望server对资源运行的动作。经常使用的方法包含:GET、HEAD、POST、PUT、TRACE、OPTIONS和DELETE,每一个server能够实现这些方法中的部分或者所有。以下将对这些方法做一个具体的介绍。
GET
通经常使用于请求server发送某个资源。HTTP/1.1要求server必须实现该方法,以下是一个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类似,仅仅是server的响应中仅仅返回首部(没有实体部分),一般用于:
1)在不获取资源的情况下了解资源的状况。
2)通过查看响应中的状态码,看看某个对象是否存在;
3)通过查看首部。測试资源是否被改动了。
1)在不获取资源的情况下了解资源的状况。
2)通过查看响应中的状态码,看看某个对象是否存在;
3)通过查看首部。測试资源是否被改动了。
HEAD返回的首部应该和GET返回的首部全然同样。
PUT
向server写入文档。就是让server用请求的主体部分来创建一个由所请求的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的表单,表单中填好的数据被发送到server。server将其交给相应的程序进行处理。
请求报文:
请求报文:
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
client发起一个请求,请求可能会穿过防火墙、代理、网关或其它一些应用程序。每一个中间节点都可能会改动原始的HTTP请求。
TRACE请求会在目地server端发起一个“环回”诊断,行程最后一站的server会弹回一条TRACE响应,并在响应主体中带上收到的原始请求报文。这样client能够诊断原始报文是否被改动过。
请求报文:
TRACE /product-list.txt HTTP/1.1
Accept:*
Host: www.joes-hardware.com
报文经过代理server后:
TRACE /product-list.txt HTTP/1.1
Host: www.joes-hardware.com
Accept: *
Via: 1.1 proxy3.company.com
server弹回的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响应经过代理server后:
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方法请求Webserver告知其支持的各种功能,这为client应用程序提供了一种手段。使其不用实际訪问那些资源就能判定訪问各种资源的最优方式。
请求报文:
请求报文:
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方法用于请server删除请求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服务能力的手段。
最新文章
- Github+Jekyll —— 创建个人免费博客(一)从零开始
- VoxelGrid体素滤波器对点云进行下采样
- SqlSever基础 datediff 计算人的生日是不准确的,示例
- 什么时候用using (SPSite site = new SPSite(SPContext.Current.Web.Url))
- JavaScript学习之—prototype
- jsp 分页(数据库读取数据)
- kettle连接Hbase中数据导入(8)
- java数据类型,hibernate数据类型,标准sql数据类型之间的对应表
- [Python学习] 简单网络爬虫抓取博客文章及思想介绍
- TCP/IP详解 卷1 第二十章 TCP的成块数据流
- WebService之CXF注解之二(Service接口)
- zabbix监控到异常后自动执行对应命令
- [视频]K8飞刀 解密菜刀后门教程
- jQuery筛选--first()和last()
- personal的制作
- oracle项目代码
- 拼接html a标签字符串,onClick传递两个字符串类型参数写法
- 【pytorch】pytorch学习笔记(一)
- 10个样式各异的CSS3 Loading加载动画
- type=";submit";表单提交理解
热门文章
- 汕头市队赛 SRM 08 A
- jquery判断ie与使用ie来判断ie,推荐ie样式块
- [ CodeVS冲杯之路 ] P1501
- v4l2读取摄像头程序流程解析【转】
- 华为上机测试题(地铁换乘-java)
- Flex与51单片机socket通信 策略问题
- hdu 5104(数学)
- delphi 开机自动运行代码
- Codeforces Round #428 A. Arya and Bran【模拟】
- Codeforces Gym 101775D Mr. Panda and Geometric Sequence(2017-2018 ACM-ICPC Asia East Continent League Final,D题,枚举剪枝)