1。ssl/http都是无连接的协议
2。ssl只是使传输时比较安全
3。ssl加密解密比较耗资源
4。所以只是在验证时使用ssl一次,在这一次request/response中,要在客户端存放验证过的标志,客户此后的每一次请求要将这个标志传到server端。
5。这个标志多用一个加密后的字符串,用cookie或url回写两种方式

解决方案 »

  1.   

    登陆时指向HTTPS的servlet,登陆后重定向到HTTP回来不就可以了?
      

  2.   

    但是https和http要用不同的端口实现,存放在session中的值如何保证?
      

  3.   

    虽然是不同的端口,但是应用服务器是同一个啊。Session也应该直接带过来。如果没有的话通过URL带过来也可以啊。
      

  4.   

    是重定向啊,session中的值已经丢了
      

  5.   

    我的意思是因为http和https指向的都是一个Web模块,所以session是通用的,在https上将session id带到http上就应该可以了。
      

  6.   

    to leonzhao(灯泡) 
    你是说用sessionid=?.. ... 的方式吗?
    这里我不是很明白,如果说的不对,麻烦你解释的详细一些,
    多谢了,这两天就给分。
      

  7.   

    总觉得不对,记忆中session不会因https和http之间的切换而丢失,于是做了一个试验,程序如下:login.html:<form action="https://leonpc/pa/dologin.jsp" method="post">
    <input type="submit">
    </form>dologin.jsp:<%
    session.putValue("abc","def");
    %>
    <a href="http://leonpc/pa/logined.jsp">Go On</a>logined.jsp:<%=session.getValue("abc")%>程序成功输出“def”