springcloud入门,详解HTTP协议

而URI使用过程中,如果需要涵盖全部信息或者准确信息,就要正确使用URI的格式:

名称 作用 是否必选
登录信息 指定用户名和密码作为从服务器端获取资源时必要的登录信息 Y
服务器地址 使用绝对 URI 必须指定待访问的服务器地址 Y
服务器端口 连接服务器的端口 N
文件路径 指定服务器上的文件路径来定位特指的资源(UNLX系统) N
查询字符串 可以作为URL携带的请求参数来协助定位具体文件资源 N
片段标识符 通常可标记出已获取资源中的子资源 N
无状态协议

Http协议属于一种不记录状态的协议,即无状态协议,具体表现为,每次请求发起都会重新进行连接,并不会根据之前的状态或者持久化保持状态。每当有新的请求发送时,就会有对应的新响应产生。协议本身并不保留之前一切的请求或响应报文的信息。这是为了更快地处理大量事务,确保协议的可伸缩性。但是Http虽然是无状态协议,但是有保存状态信息的需求,HTTP1.1开始引入了Cookie技术,使用cookie来代为管理状态信息。

HTTP协议方法

Http协议支持通过不同的请求类型–即协议方法来达成某种目的,实现功能,HTTP1.1支持的协议方法如下:

GET :获取资源

Get方法用来访问已经被URI识别的资源,指定的资源信息经由服务端解析以后返回对应的资源响应内容,也就是说如果当前访问的资源是文本等静态资源,则会返回对应的数据,如果是网关等程序,则会返回对应的结果。

POST:传输实体主体

在HTTP中推荐使用POST方法来传递我们需要传输的内容或者实体信息,虽然GET方法可以添加查询字符串来辅助传递一定的信息和参数,但是要注意的是GET方法定义仅仅是希望根据查询字符串来定位具体的资源,所以GET方法一般都希望得到快速响应,传递的数据的长度有一定的限制

PUT:传输文件

HTTP协议中,PUT方法被定义出来用来朝服务端传递文件(上传)使用的方法,要求在请求的报文中包含文件内容,然后保存文件到请求的URI所在的位置上,但是由于HTTP1.1不带有安全机制,所以一般当前方法在HTTP协议上不开放,类似的协议如:Restful会开放实现其他规范的操作

HEAD:获得报文首部

HEAD方法和GET方法一样,唯一的区别是GET方法返回完整的响应信息,而HEAD方法不需要报文主体部分,因为此方法仅用来获取头信息,用来确认URI是否有效或者触发资源的缓存更新等

DELETE:删除文件

DELETE方法和PUT方法是完全相反的定义,这里的作用是用来删除指定请求URI上位置的资源文件,而和PUT一样,在不带有安全验证机制的情况下一般也是不开放的

OPTIONS:询问支持的方法

OPTIONS方法使用场景比较特殊,一般情况下我们用来查询针对请求URI指定的资源支持的方法有哪些(和跨域操作也有一定的联系)

TRACE:追踪路径

TRACE方法是HTTP协议用来检查和追踪请求过程提供的方法,当发送请求的时候,会在Max-Forwards 首部填入数值,每次经过一个服务端就会-1,当数字减少到0的时候,就会停止传输请求,直到接受到返回的状态码响应才算结束。使用TRACE方法可以检查当前请求是否被篡改,但是由于当前方法很容易引起XST(Cross-Site Tracing,跨站追踪)攻击,所以一般都禁止使用

CONNECT:要求用隧道协议连接代理

使用CONNECT方法要求是与代理服务器建立连接隧道,实现隧道间通信TCP,常见会使用SSL或者TLS协议把内容加密后传递到隧道,CONNECT的格式如下:

CONNECT 代理服务器名:端口号 HTTP版本

我们把1.0和1.1两个版本的支持的协议方法列个表格,看下具体差异:

方法 作用 支持的协议版本
GET 获取资源 1.0、1.1
POST 传输实体主体
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值