我正在编写一个 RESTful 服务。我已经在我的服务中实现了电子标签、修改日期和缓存控制标头。
我还在编写一个非常简单的 Get、Put、Post、Delete 请求/响应 API,供我们的脚本编写人员使用。
我正在使用 HttpWebRequest,我认为它是一个具有良好控制的低级类,因此我添加了用于提供 ETag 和条件 Get 等的 API。
问题是,HttpWebRequest 似乎是自己做的!当我将缓存级别设置为重新验证时,它似乎可以与 WinInet 缓存(在 Windows 7 桌面上)一起使用,并使用缓存的 ETag 值自动附加 if-none-match 标头。
从表面上看,你会认为这很酷。无需自己缓存 ETag 和表示,但事实并非如此。
例如,我的 Web 服务对条件获取返回 NotModified 响应,但最终进入我的客户端的响应是 200 OK,因此我的测试需要考虑这种抽象。
有谁知道更多关于这种无证行为的信息?
卢克