Loc*_*han 6 java browser session applet
假设我有以下简单的小程序.我想知道获取jar的http请求是由浏览器还是由jvm发出的.如果它是由jvm制作的,浏览器的cookie和会话是否发送到服务器?
<APPLET
CODE="FieldTestF.class"
WIDTH="100%" HEIGHT="90"
ARCHIVE = "FieldTestF.jar"
>
This example uses an applet.
</APPLET>
Run Code Online (Sandbox Code Playgroud)
小程序JAR由JVM下载.所有applet都与URLClassloader(或SunJVM中的子类)的实例相关联,该实例sun.applet.AppletClassLoader负责加载applet所需的所有类和资源.
显然,加载类文件和资源所需的大多数基础结构都可以在Java运行时中使用,并且重新使用它们将使Java插件不必担心大部分访问浏览器内部.
我将在这里重现OpenJDK代码库的重要部分,它们执行此活动.你会在以下runLoader()方法中找到有趣的东西sun.applet.AppletPanel:
/**
* Load the applet into memory.
* Runs in a seperate (and interruptible) thread from the rest of the
* applet event processing so that it can be gracefully interrupted from
* things like HotJava.
*/
private void runLoader() {
if (status != APPLET_DISPOSE) {
showAppletStatus("notdisposed");
return;
}
dispatchAppletEvent(APPLET_LOADING, null);
// REMIND -- might be cool to visually indicate loading here --
// maybe do animation?
status = APPLET_LOAD;
// Create a class loader
loader = getClassLoader(getCodeBase(), getClassLoaderCacheKey());
// Load the archives if present.
// REMIND - this probably should be done in a separate thread,
// or at least the additional archives (epll).
String code = getCode();
// setup applet AppContext
// this must be called before loadJarFiles
setupAppletAppContext();
try {
loadJarFiles(loader); // <-- this is what loads the JAR files
applet = createApplet(loader);
...
Run Code Online (Sandbox Code Playgroud)
此外,让浏览器获取资源会使Java安全模型的问题复杂化.这部分是因为applet使用自己AccessControlContext设置的applet .此上下文具有一组默认权限,在初始化applet时将其添加到该上下文中; 该集包括SocketPermission连接到托管代码库的服务器,或FilePermission允许对包含代码库的文件系统的读访问.如果资源加载是由浏览器完成的,那么根据插件的实现方式,可能根本不会执行检查,从而导致安全模型可能出现故障.
您可以通过查看网络流量来确认JVM的资源加载行为,如另一个答案所示.我将发布Fiddler的截图作为确认.进程列指示哪个OS进程负责发送请求(在这种情况下,它恰好是Java应用程序启动器java.exe).对于图像质量明显不佳的道歉 - 您需要调整图像大小或在新窗口中打开它.

我想我可以查一下,但是嗅探浏览器和服务器之间的连接以找到答案似乎更有趣.
事实证明,请求是由JVM完成的.这是可以观察到的,因为:
Mozilla/4.0 ([OS here]) Java/[Java version here]而不是您的浏览器发送的任何内容;但是,浏览器似乎在发出HTTP请求时将cookie传递给JVM,这意味着您的会话数据应该可用.
| 归档时间: |
|
| 查看次数: |
3994 次 |
| 最近记录: |