CoAP代理相关的选项Proxy-Uri和Proxy-Scheme

CoAP客户端将请求发送给代理,由代理转发请求给服务器可以通过设定Proxy-Uri或Proxy-Scheme选项来实现。

http://mp.blog.csdn.net/postedit/79161280
mingdu.zheng at gmail dot com

使用Proxy-Uri

Proxy-Uri选项存储原始服务器的完整的URI,例如

Proxy-Uri: http://api.heclouds.com/devices/100801/datapoints?type=3

支持代理功能的服务器接收到请求后,首先检查是否有Proxy-Uri选项,如果有Proxy-Uri选项,那么会忽略Uri-Host、Uri-Port、Uri-Path和Uri-Query这四个选项,所以设置了Proxy-Uri选项就没有必要设置Uri-* 选项了。

如果是CoAP-CoAP代理服务器接收到请求后会将Proxy-Uri分解成Uri-* 选项再转发给原始服务器。如果是跨协议代理服务器,例如CoAP-HTTP代理服务器,那么代理服务器使用Proxy-Uri值作为请求的URI。

使用Proxy-Scheme

为了简化客户端,还可以通过设置Proxy-Scheme来指定原始服务器的URI。如果设定了Proxy-Scheme选项,那么代理服务首先使用Uri-Host、Uri-Port、Uri-Path和Uri-Query这四个选项合成完整的URI,然后将URI最前面的Scheme用Proxy-Scheme的值来代替,最终得到的URI就是原始服务器的URI。例如

Uri-Host:api.heclouds.com
Uri-Path:devices
Uri-Path:100801
Uri-Path:datapoints
Uri-Query:type=3
Uri-Scheme: https

这几个选项合成的URI:

coap://api.heclouds.com/devices/100801/datapoints?type=3

URI第一个冒号前面的 coap 就是URI的Scheme,使用Proxy-Scheme的值代替 coap ,得到原始服务器的URI:

https://api.heclouds.com/devices/100801/datapoints?type=3

Proxy-Uri vs Proxy-Scheme

使用Proxy-Uri或者Proxy-Scheme都可以设定原始服务器URI,不需要两个选项一起用。

Proxy-Scheme比较简单,只需要客户端在原先设定了Uri-* 选项的基础上追加一个Proxy-Scheme选项就可以了。但是Proxy-Scheme只是替换Scheme的部分(即URI最前面的的 coap ),没有办法附加其他的例如用户名、密码等信息。

Proxy-Uri选项的值是完整的原始服务器URI,可以包含任何URI允许的内容,例如用户名、密码等。

参考

RFC7252 5.10.2. Proxy-Uri and Proxy-Scheme

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值