小编Kai*_*itz的帖子

(弱)ETags和Last-Modified

据我了解的规格,RFC 2616(HTTP/1.1)中引入的ETag是Last-Modified-Header的后继产品,它可以让软件架构师更好地控制它.缓存重新验证过程.

如果存在Cache-Validation-Headers(If-None-Match和If-Modified-Since),则根据RFC 2616,客户端(即浏览器)在检查资源时是否应使用ETag.根据RFC 2616的第14.26节,如果If-None-Match-Header中出现的ETag已更改,则服务器不得以304 Not Modified响应,并且服务器必须忽略其他If-Modified-Since-Header ,如果有的话.如果呈现的ETag匹配,则他不得执行请求,除非Last-Modified-Header中的Date表示如此.(如果提供的ETag匹配,服务器应该在GET或HEAD请求的情况下响应304 Not Modified ...)

这部分为一些猜测留下了空间:

  • 一个强大的ETag应该随时改变'',资源会发生变化.所以,必须用其他东西作为304 Not Modified来回应一个没有改变的ETag和一个If-Modified-Since-Header的请求,这是一个矛盾,因为强大的ETag说,资源是没有修改.(虽然这不是致命的,因为服务器可以再次发送相同的未更改的资源.)
  • ...

...好的当我写这篇文章的时候,问题就是这个答案:

上面提到的(小)矛盾是因为弱ETag.标有弱ETag的资源可能已经改变,尽管ETag没有.因此,在弱ETag的情况下,当ETag没有改变时回答3​​04 Not Modified是错误的,但是If-Modified-Since中呈现的日期不匹配,对吧?

etag http last-modified if-modified-since

18
推荐指数
1
解决办法
9332
查看次数

在使用安全通道时,如何让jetty使用secure-flag发送jsessionid-cookies

我在我的生产环境中使用Tomcat,在我的测试环境中使用jetty(通过jetty-maven-plugin).

Tomcat在jsessionid-cookie上设置安全标志,当它通过安全通道(https)发送时,对我来说这看起来是个好主意,因为当用户点击http时它会阻止会话暴露:// - 链接.但Jetty不是这样!

我想迫使码头的行为,如Tomcat,始终设置安全标志上JSESSIONID饼干送过来的安全通道,因为否则的话,我的测试环境的行为相当不同势,然后我的生产环境.但我找不到任何配置选项来实现这个目标.

我也想知道,如果这是Jetty中的安全漏洞.因为没有标记jsessionid-cookie通过安全通道发送,因为安全会在用户切换回不安全通道时显示安全会话.

security encryption cookies tomcat jetty

6
推荐指数
1
解决办法
7995
查看次数

将Group by添加到Hibernate Criteria-Query,无需Projection

我有一个Criteria-Query,它连接第二个表B,从表A中选择实体.问题是,这个查询多次从表A返回一些实体.但我需要结果是截然不同的.

使用Criteria.DISTINCT_ROOT_ENTITY是没用的,因为这会在执行SQL-Query后过滤掉多次出现.因此,当我将结果限制为20次点击时,我最终只有4次,尽管有更多条目符合我的查询.

在纯SQL中我只是可以向查询添加"GROUP BY ID",一切都很好,因为只使用表B的连接,从表A中选择实体.但是使用Criteria-API我不能这样做.添加"GROUP BY"的唯一方法是使用Projections.但是,我最后得到的是标量值,而不是我班级的真实实例.使用SQL限制也不起作用,因为hibernate在我的"GROUP BY"-clause之后添加了一个含糊的"1 = 1".:(

有任何想法吗?

java hibernate group-by criteria

5
推荐指数
1
解决办法
1万
查看次数