xml – 在“验证”服务器中正确使用HTTP状态代码

我的应用程序发送给第三方SOA服务器的数据是复杂的XML。服务器所有者确实提供XML模式(.xsd),并且由于服务器使用无意义的消息拒绝无效的XML,因此我需要在发送之前对其进行本地验证。

我可以使用独立的XML模式验证器,但它们很慢,主要是因为解析模式文件所需的时间。所以我写了我自己的模式验证器(在Java中,如果重要的话)以缓存已经解析的模式的HTTP服务器的形式。

问题是:许多事情在验证过程中可能出错。除了意外的例外和成功的验证:

>服务器可能找不到指定的模式文件
>指定的文件可能不是有效的模式文件
> XML对模式文件无效

由于它是一个HTTP服务器,我希望为客户端提供有意义的状态代码。上述情况下服务器是否应答400错误(错误请求)?或者它们与HTTP无关,它应该在身体中有一个消息回答200?任何其他建议?

更新:主应用程序是用Ruby编写的,它没有一个好的xml模式验证库,所以单独的验证服务器不会过度工程化。

将验证过程中的错误情况映射到有意义的HTTP状态代码,这是一个非常有效的思路。

我想你使用URI将XML文件作为POST内容发送到验证服务器,以确定特定的验证模式。

所以这里有一些错误映射的建议:

> 200:XML内容有效> 400:XML内容格式不正确,标题不一致,请求不符合RFC 2616的语法> 401:在缓存中找不到架构,服务器需要使用凭据来与第三方SOA后端进行身份验证,以获取模式文件> 404:找不到模式文件> 409:XML内容对指定的模式无效> 412:指定的文件不是有效的XMl模式> 500:验证服务器中的任何意外异常(NullPointerExceptions等)> 502:在缓存中找不到模式,并且尝试从第三方SOA服务器请求它失败。> 503:验证服务器正在重新启动> 504:请参阅502 with reason = timeout

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念
xml文件介绍及使用
xml编程(一)-xml语法
XML文件结构和基本语法
第2章 包装类
XML入门的常见问题(二)
Java对象的强、软、弱和虚引用
JS解析XML文件和XML字符串详解
java中枚举的详细使用介绍
了解Xml格式
XML入门的常见问题(四)
深入SQLite多线程的使用总结详解
PlayFramework完整实现一个APP(一)
XML和YAML的使用方法
XML轻松学习总节篇