HTTP:请求方式HEAD、GET、POST、PUT、 DELETE 、OPTION

​​​​​​HTTP协议定义了6种常用与服务器进行数据交互的方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE,另外2种方法则为扩展型协议请求方法HEAD、OPTIONS。

URL的全称是Uniform Resource Location,即统一资源定位符,我们可以理解为:一个URL地址用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE分别对应着对这个资源的查,改,增,删4个操作。

GET

GET用于信息获取,且应是安全的和幂等的。

安全:指不修改信息,即GET操作用于获取信息但不更新信息。GET请求不应产生副作用,仅获取资源信息,如数据库查询,不进行数据增删改,不影响资源状态。

幂等:指对同一URL的来自不同连接的不同请求应返回同样的结果。

GET的HTTP请求中,只包含请求头,不包含请求数据,携带的数据只能作为请求资源的参数添加到URL中,英文和数字直接发送,中文等其他字符通过base64加密发送,空格转换为+。

由于浏览器(不是HTTP协议)对于URL长度可能存在限制,所以发送数据的长度也会受限,由于其数据(英文和数字)通过明文发送,所以数据也不安全。

通过GET方式发送一个请求来取得服务器上的某一资源时,该资源会通过一组HTTP响应头和响应数据(如HTML文本、图片、视频等)返回给客户端。

客户端浏览器会对GET方式请求获取的资源进行缓存。

HEAD

HEAD和GET本质上极为相似,区别在于HEAD的HTTP响应中不包含响应数据,仅包含响应头。

可以用来判断某个资源是否存在,而不需要取得数据的场景。 

POST

根据HTTP规范,POST表示可能修改变服务器上的资源的请求。

理论上POST上传的数据大小没有限制,可传大量数据(IIS5为100KB,Apache可以通过修改服务器和PHP配置上传数据长度和上传文件大小限制)。

按照HTTP规范,更新资源应使用POST而不是GET,尽管几乎所有向服务器提交数据的操作都可以使用POST完成。但是这并没有严格遵守HTTP规范。

Post 分为两个步骤会先传递Header,后传递Data。从表现上来看Post 会先返回100 响应码,再返回200 响应码。

PUT

本质上PUT和POST极为相似,区别在于PUT通常指定了资源的存放位置,而POST提交的数据由服务端决定存放位置。

HTML表单不支持,使用较少。 

DELETE

删除某一个资源,使用极少(amazon的S3云服务里面用这个方法来删除资源)。 

OPTIONS

用于获取当前URL所支持的HTTP请求方法和header支持字段的列表。

当请求成功时,会在返回的HTTP响应头中包含一个名为“Allow”的字段,值形如“GET, POST”。

非简单请求时使用。

简单请求

  • 请求方式:GET、POST、HEAD
  • HTTP header:
    • 无自定义头部字段
    • 仅包含以下字段
      • Accept、
      • Accept-Language
      • Content-Language
      • Last-Event-ID
      • Content-Type仅为:
        • application/x-www-form-urlencoded
        • multipart/form-data
        • text/plain

当一个请求为非简单请求时,浏览器会先发送一个options请求进行确认,确认成功后才会发送正式请求,如CORS跨域请求。

非简单请求会使服务器比简单请求的多一倍的压力,应尽量减少使用。

示例

请求(POST)

POST /DEMOWebServices2.8/Service.asmx/CancelOrder HTTP/1.1 
Host: api.efxnow.com 
Content-Type: application/x-www-form-urlencoded 

请求数据

响应(POST)

HTTP/1.1 200 OK 
Content-Type: text/xml; charset=utf-8 
Content-Length: length<?xml version="1.0" encoding="utf-8"?> 

响应数据

报文

状态码

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值