HTTP请求方法详解

一:http版本

  • HTTP/0.9
      这是http在1991年最早大规模使用的版本,如今已不再使用,在这个版本中只有   GET一种请求方法,没有指定版本号,也没有请求头信息,客户端向服务器传递信   息的能力非常有限。

  • HTTP/1.0与HTTP/1.1
      从http1.0到http1.1发生了非常大的改动,现如今被广泛使用的为http1.1,http1.0   主要用在代理服务器中,支持GET、POST、HEAD三种方法,http1.1新增了
      OPTIONS、PUT、DELETE、TRACE、CONNECT五种方法。两个版本性能上的主   要区别体现在如下所示:
      1:缓存处理,在http1.0中主要使用header的if-Modified-Since、Expires
      来作为缓存判断的标准,http1.1则引入了更多的缓存控制策略如Entity Tag
      If-Unmodified-Since,If-Match,If-None-Match来作为缓存策略。
      2:带宽优化及网络连接的使用,在http1.0存在浪费带宽的现象,例如客户端只   需要某个对象的一部分,而服务器将对象全部传送过来,并且不支持断点续传功   能,http1.1在请求头引用了range头域,它允许只请求资源的某个部分,即返回码   是206(Partial Content),这样就能更充分利用带宽和连接。
      3:错误通知的管理,在http1.1中新增了24个错误状态响应码
      4:Host头处理,在http1.0中认为每台服务器都绑定一个唯一的IP地址,因此请   求消息中的URL并没有传递主机名(hostanme),但随着虚拟主机技术的发展,在一   台物理服务器上可以存在多个虚拟主机,并且共享一个IP地址。http1.1的请求消息   和响应消息都应支持Host头域,且请求消息中如果没有Host头域会报告一个错误   5:长连接,http1.1支持长连接(persistentConnection)和请求的流水线处理
      在一个tcp连接上可以传送多个http请求和响应,减少了建立和关闭连接的消耗和延   迟,在http1.1中默认开启Connection:keep-alive,一定程度上弥补了http1.0每次   请求都要创建连接的缺点。

  • HTTP/2.0
      这个版本于2015正式发布,主要通过支持请求与响应的多路重用来减少延迟,通过   压缩http头字段将协议开销降到最低,同时增加了对请求优先级和服务器推送的支   持。

二:请求方法

请求方法方法作用
GETGET请求会显示请求指定的资源,一般由于数据资源的读取操作,在url末尾可以追加查询字符串,请求的body中只能包含很少数据,依据浏览器和服务器的不同而不同
POST主要用来向服务器新增数据,请求的主体理论上可以包含任意多数据
HEADHEAD与GET方法一样,只是不返回报文的主体部分,主要用于确认url的有效性及资源更新的日期时间。判断类型、查看响应中的状态码、测试资源是否被修改过、查看服务器性能
PUT用来传输文件,在请求报文的主体内容中包含文件内容,保存到请求URL指定的位置,http1.1的PUT方法自身不带验证机制,任何人都可以请求,上传文件,会有安全问题
DELETE删除服务器上某个资源
OPTIONS查询服务器支持的请求方法
TRACE可以对请求消息的传输路径进行追踪
CONNECT要求在与代理服务器通信时建立隧道,实现用隧道协议进行tcp通信。主要使用ssl(安全套接层)和tls(传输层安全)协议把通信内容加密后经网络隧道传输
PATCH与PUT请求类似,同样用于资源的更新,但有两点不同,一是PATCH一般用于资源的部分更新,而PUT用于资源的整体更新;二是当资源不存在时,PATCH会创建一个新的资源,而PUT只会对已存在的资源进行更新

GET与POST区别:
  1:GET用于信息获取,对服务器来说它是安全的,而POST请求用于修改服务器上的    资源。
  2:GET请求的数据附在URL之后,POST方法提交的数据则放置在http报文实体的主体    所以对于数据来说,POST安全性比GET高
  3:GET传输数据量一般在2kb,原因在于GET提交数据是附在URL之后,http虽然对于    URL数据长度没有限制,但是不同的浏览器或服务器对于URL长度是有限制的。理    论上,POST是没有大小限制的,但出于安全角度考虑,服务器软件在实现时会做    一定限制。

三:方法特性

幂等性: 同一个系统,使用同样的条件,一次请求和重复的多次请求对系统资源的影响是一致的。
安全性: 请求不会影响到资源的状态。

请求方法幂等性安全性
GET✔️✔️
POST✖️✖️
HEAD✔️✔️
PUT✔️✖️
DELETE✔️✖️
OPTIONS✔️✔️

转载于:https://juejin.im/post/5bc6aa5ae51d450e4d303d2c

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值