这是发生的情况:客户端第一次请求页面,根本不发送任何cookie:
$ curl -v http://pixlshare.com/upload
服务器对基于此请求的客户端功能一无所知,尤其是它是否支持cookie。因此,要更加安全,它会发送 两个
cookie并
JSESSIONID在URL编码:
< Set-cookie: JSESSIonID=25E7A6C27095CA1F560BCB2983BED17C; Path=/; HttpOnly...<a wicket:id="image1link" href="gallery/OKfzVk;jsessionid=25E7A6C27095CA1F560BCB2983BED17C">
换句话说
JSESSIONID,如果客户端不支持cookie,则servlet容器会防御性地附加到每个URL。
那么,为什么在
JSESSIONID第二个请求中消失了呢?因为现在客户端在HTTP请求中发送cookie,并且服务器知道,所以客户端会处理它们。话虽如此,
JSESSIONID不再需要。
$ curl -v -b JSESSIonID=25E7A6C27095CA1F560BCB2983BED17C http://pixlshare.com/upload> cookie: JSESSIonID=25E7A6C27095CA1F560BCB2983BED17C...<a wicket:id="image1link" href="gallery/OKfzVk">
另一方面,如果客户端不支持cookie,则服务器将继续重写URL。
这不是Wicket问题,这是Tomcat功能。
BTW(来自您的网站Javascript):
path = path.replace(/^C:\fakepath\/i, '');
什么假的 ?
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)