首页 > 其他分享 >SAP ABAP Gateway 系统里 HTTP 请求响应头部字段 DataServiceVersion 的可能取值范围

SAP ABAP Gateway 系统里 HTTP 请求响应头部字段 DataServiceVersion 的可能取值范围

时间:2023-04-08 22:56:48浏览次数:34  
标签:缓存 HTTP DataServiceVersion OData ABAP 头部 SAP Gateway 客户端

SAP ABAP Gateway 系统里 HTTP 请求的响应头部字段集合里,DataServiceVersion 这个字段的作用是什么,包含哪些可能的值?

如下图第 178 行代码所示。

在 SAP ABAP Gateway 系统中,DataServiceVersion 是 HTTP 响应头部字段集合中的一个字段,用于指定 OData 服务的版本信息。

具体来说,DataServiceVersion 字段的作用是告诉客户端当前 OData 服务所遵循的版本规范,以便客户端能够正确地解析和处理 OData 服务返回的数据。如果客户端不支持 OData 服务所指定的版本规范,则客户端可以选择相应地调整其行为或向用户发出警告。

DataServiceVersion 字段的可能取值如下:

"1.0": 表示服务遵循 OData 1.0 版本规范。
"2.0": 表示服务遵循 OData 2.0 版本规范。
"3.0": 表示服务遵循 OData 3.0 版本规范。
"4.0": 表示服务遵循 OData 4.0 版本规范。

通常情况下,DataServiceVersion 字段的值应该与服务所实现的 OData 版本相匹配。如果服务支持多个版本的 OData 规范,则可以通过使用 Accept 头部字段来指定客户端期望的版本规范。

截至 2021年9月,OData 协议的最新版本号为 OData 4.01。OData 4.01 于2019年6月发布,是 OData 4.0 的修订版,包括一些新功能、性能优化和规范的改进,同时修复了一些漏洞和问题。

在 SAP ABAP Gateway 系统中,cache handshake 是一种用于管理缓存的机制。当客户端向 Gateway 发送 OData 请求时,如果 Gateway 发现所请求的资源已经被缓存,它会返回一个特殊的响应头部,其中包含有关缓存的信息。客户端可以使用这些信息来判断是否使用缓存数据,以及何时需要更新缓存。

具体来说,cache handshake 机制的流程如下:

(1) 客户端向 Gateway 发送 OData 请求,其中包含了一些头部信息,如 If-Modified-Since、If-None-Match 等。

(2) Gateway 检查缓存,如果发现所请求的资源已经被缓存,则在响应头部中包含一个 ETag 或 Last-Modified 字段,表示缓存的版本信息。

(3) 如果客户端在请求头部中包含了 If-None-Match 或 If-Modified-Since 字段,则 Gateway 将比较这些值与缓存的版本信息,并根据比较结果来判断是否需要更新缓存。如果客户端已经具有最新的缓存数据,则 Gateway 返回一个 304 Not Modified 响应,表示客户端可以使用缓存数据;否则,Gateway 返回一个正常的 200 OK 响应,并在响应头部中包含新的缓存信息,供客户端更新缓存。

通过 cache handshake 机制,Gateway 和客户端可以有效地管理和控制缓存,提高系统的性能和可用性。同时,cache handshake 机制还可以减少不必要的数据传输,节省网络带宽和服务器资源。

标签:缓存,HTTP,DataServiceVersion,OData,ABAP,头部,SAP,Gateway,客户端
From: https://www.cnblogs.com/sap-jerry/p/17299471.html

相关文章

  • SAP Emarsys 的前后台技术栈
    SAPEmarsys是SAP公司在2021年收购的一家全球领先的营销自动化平台提供商Emarsys。Emarsys的平台通过多渠道智能营销自动化来帮助客户实现营销数字化转型。其平台提供了一系列工具和功能,帮助企业与客户建立联系、进行互动并提供个性化的服务。这些工具和功能包括电子邮件营销、移......
  • SAP Emarsys 和 SAP Spartacus 的集成
    要将WebExtendScriptsforEmarsys集成到SAPSpartacus中,可以按照以下步骤操作:在Spartacus项目的根目录中创建一个名为“emarsys”(或其他名称)的新文件夹,然后将EmarsysWebExtend脚本文件(例如12345.js)放入该文件夹中。在Spartacus项目的“index.html”文件中添加以下代码,以......
  • 开启 HTTP/3 & QUIC 在 Docker Compose+Nginx
    HTTP/3基于UDP的QUIC协议,多路复用安全传输HTTP/1.1和HTTP/2都将TCP用作其传输协议HTTP/3和QUIC具有很多优势:1.第一个请求的响应时间更短。在客户端和服务器之间以较少的往返次数协商连接,第一个请求会更快地到达服务器。2.改进了发生连接数据包丢失时的体验。HTT......
  • Qt网络编程类 http
    Qt网络编程:QNetworkRequest类 Qt网络编程:QNetworkRequest_友善啊,朋友的博客-CSDN博客Qt网络编程:QNetworkAccessManager Qt网络编程:QNetworkAccessManager_sendcustomrequest_友善啊,朋友的博客-CSDN博客......
  • SAP销售订单开票报错科目确定期间出错的原因分析及解决方案 ​
    在SAP/ERP系统日常运维中,可能会遇到类似如下这样问题:在创建销售发票时候,系统报错提示如下,错误消息号:VF051。针对上图问题,要找到这问题的原因,首先需要了解下销售收入相关科目确定的配置逻辑销售收入相关科目确定的配置事务码:VKOASAP系统收入相关科目确定逻辑在一般情况下收入相关科......
  • Httpcontext.signIn() 执行了什么?
    asp.netcore登录的时候可以写 Httpcontext.signIn(user);这个方法,如果用cookie最后会些写cookie信息到Httpcontext.respones中。定义publicstaticTaskSignInAsync(thisHttpContextcontext,string?scheme,ClaimsPrincipalprincipal,AuthenticationProperties?p......
  • SAP报表修改-WBS销售订单汇总层报表
    1.问题描述给报表增加两行,1.1.1车间机械设备-自制设备,和1.1.2车间机械设备-外购设备2.问题解决2.1先在配置表加上两行列标题,事务代码SM30,输入配置表名称ZINT_CONIFIG点击新建“条目”添加,实际情况由于加了两行,序号要改动,所以将数据导出excel表格修改后再批量导入。2.2......
  • SAP报表修改
    1.问题描述项目毛利汇总报表,增加两列:车间机械设备-自制设备和车间机械设备-外购设备。车间机械设备=车间机械设备-自制设备+车间机械设备-外购设备。2.问题解决3.效果......
  • 【中文乱码】HttpServletResponse PrintWriter中文乱码解决方法
    HttpServletResponse使用PrintWriter输出中文的时候,如果不设置流的编码就会产生乱码,PrintWriter直接输出的字符流首先使用"response.setCharacterEncoding(charset)"设置字符以什么样的编码输出到浏览器,如果不设置则默认是ISO-8859-1,这个是不支持中文的。解决方法publicvoid......
  • Web简述:HTTP
    HTTP1、Web概述1.1Web和JavaWeb的概念Web是全球广域网,也称为万维网(www),能够通过浏览器访问的网站。在我们日常的生活中,经常会使用浏览器去访问百度、京东等这些网站,这些网站统称为Web网站。我们知道了什么是Web,那么JavaWeb又是什么呢?顾名思义JavaWeb就是用Java技术来解决相......