【发布时间】:2012-06-22 07:36:06
【问题描述】:
在发出 HTTP 请求时,applet 和它们的宿主浏览器之间是否有任何交互,或者请求是否完全独立于本机浏览器代码?
具体来说,在浏览器中运行的 Java 小程序是否有某种隐含的方式来共享浏览器的会话状态和缓存?
我从非权威来源阅读了一些帖子,说当小程序发出 HTTP 请求时,它将使用浏览器的缓存,并且它也可以(以某种方式)访问浏览器的 cookie。
我使用URLConnection 完成的测试表明情况并非如此,我的直觉是这听起来太方便了,难以置信。我会假设 JVM 中对 JVM 之外的世界一无所知,这意味着唯一可行的方法是,如果 JVM 实现特定于浏览器,则它的 URL 相关方法的实现委托给本机浏览器代码?
如果 cookie 数据未隐式共享或不可用,最佳做法是将 param 标记中的会话 ID 传递给小程序?这种方法是否存在安全问题?如果小程序不使用浏览器的缓存来处理请求, 在小程序中缓存请求是如何工作的?
【问题讨论】:
-
" 我会假设 JVM 中对 JVM 之外的世界一无所知,这意味着唯一可行的方法是如果 JVM 实现特定于浏览器,它的实现与 URL 相关的方法委托给本机浏览器代码?” - 我认为你的假设是正确的。对于您的缓存相关查询,请参阅stackoverflow.com/questions/10103477/caching-in-java-applets
标签: java caching browser applet urlconnection