美文网首页
web基础概念

web基础概念

作者: mrjunwang | 来源:发表于2018-07-27 17:46 被阅读0次

    1.转发和重定向的区别
    实际发生位置不同,地址栏不同
    转发是发生在服务器的
    转发是由服务器进行跳转的,细心的朋友会发现,在转发的时候,浏览器的地址栏是没有发生变化的,在我访问Servlet111的时候,即使跳转到了Servlet222的页面,浏览器的地址还是Servlet111的。也就是说浏览器是不知道该跳转的动作,转发是对浏览器透明的。通过上面的转发时序图我们也可以发现,实现转发只是一次的http请求,一次转发中request和response对象都是同一个。这也解释了,为什么可以使用request作为域对象进行Servlet之间的通讯。
    重定向是发生在浏览器的
    重定向是由浏览器进行跳转的,进行重定向跳转的时候,浏览器的地址会发生变化的。曾经介绍过:实现重定向的原理是由response的状态码和Location头组合而实现的。这是由浏览器进行的页面跳转实现重定向会发出两个http请求,request域对象是无效的,因为它不是同一个request对象
    2,什么是HTPP协议
    超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。它是TCP/IP协议的一个应用层协议
    简单来说,HTTP协议就是客户端和服务器交互的一种通迅的格式。

    例子:在浏览器点击一个链接,浏览器就为我打开这个链接的网页。

    原理:当在浏览器中点击这个链接的时候,浏览器会向服务器发送一段文本,告诉服务器请求打开的是哪一个网页。服务器收到请求后,就返回一段文本给浏览器,浏览器会将该文本解析,然后显示出来。这段文本就是遵循HTTP协议规范的。

    HTTP1.0和HTTP1.1的区别
    HTTP1.0协议中,客户端与web服务器建立连接后,只能获得一个web资源【短连接,获取资源后就断开连接】

    HTTP1.1协议,允许客户端与web服务器建立连接后,在一个连接上获取多个web资源【保持连接】
    3.什么是会话技术
    基本概念: 指用户开一个浏览器,访问一个网站,只要不关闭该浏览器,不管该用户点击多少个超链接,访问多少资源,直到用户关闭浏览器,整个这个过程我们称为一次会话.
    会话跟踪技术有Cookie和Session,
    网页之间的交互是通过HTTP协议传输数据的,而Http协议是无状态的协议。无状态的协议是什么意思呢?一旦数据提交完后,浏览器和服务器的连接就会关闭,再次交互的时候需要重新建立新的连接。
    服务器无法确认用户的信息,于是乎,W3C就提出了:给每一个用户都发一个通行证,无论谁访问的时候都需要携带通行证,这样服务器就可以从通行证上确认用户的信息。通行证就是Cookie。
    Cookie的流程:浏览器访问服务器,如果服务器需要记录该用户的状态,就使用response向浏览器发送一个Cookie,浏览器会把Cookie保存起来。当浏览器再次访问服务器的时候,浏览器会把请求的网址连同Cookie一同交给服务器。Cookie不可跨域名性。
    Session的生命周期和有效期
    Session在用户第一次访问服务器Servlet,jsp等动态资源就会被自动创建,Session对象保存在内存里,这也就为什么上面的例子可以直接使用request对象获取得到Session对象。
    如果访问HTML,IMAGE等静态资源Session不会被创建。
    Session生成后,只要用户继续访问,服务器就会更新Session的最后访问时间,无论是否对Session进行读写,服务器都会认为Session活跃了一次。
    由于会有越来越多的用户访问服务器,因此Session也会越来越多。为了防止内存溢出,服务器会把长时间没有活跃的Session从内存中删除,这个时间也就是Session的超时时间。
    Session的超时时间默认是30分钟,有三种方式可以对Session的超时时间进行修改
    服务器就会创建一个Session对象,执行我们的程序代码,并自动颁发个Cookie给用户浏览器,Session不能依据HTTP连接来判断是否为同一个用户。于是乎:服务器向用户浏览器发送了一个名为JESSIONID的Cookie,它的值是Session的id值。其实Session依据Cookie来识别是否是同一个用户。

    什么是cookie?Session和cookie有什么区别?

    什么是cookie?

    Cookie是由W3C组织提出,最早由netscape社区发展的一种机制

    • 网页之间的交互是通过HTTP协议传输数据的,而Http协议是无状态的协议。无状态的协议是什么意思呢?一旦数据提交完后,浏览器和服务器的连接就会关闭,再次交互的时候需要重新建立新的连接
    • 服务器无法确认用户的信息,于是乎,W3C就提出了:给每一个用户都发一个通行证,无论谁访问的时候都需要携带通行证,这样服务器就可以从通行证上确认用户的信息。通行证就是Cookie

    [图片上传失败...(image-861947-1532680946536)]

    Session和cookie有什么区别?

    • 从存储方式上比较

      • Cookie只能存储字符串,如果要存储非ASCII字符串还要对其编码。
      • Session可以存储任何类型的数据,可以把Session看成是一个容器
    • 从隐私安全上比较

      • Cookie存储在浏览器中,对客户端是可见的。信息容易泄露出去。如果使用Cookie,最好将Cookie加密
      • Session存储在服务器上,对客户端是透明的。不存在敏感信息泄露问题。
    • 从有效期上比较

      • Cookie保存在硬盘中,只需要设置maxAge属性为比较大的正整数,即使关闭浏览器,Cookie还是存在的
      • Session的保存在服务器中,设置maxInactiveInterval属性值来确定Session的有效期。并且Session依赖于名为JSESSIONID的Cookie,该Cookie默认的maxAge属性为-1。如果关闭了浏览器,该Session虽然没有从服务器中消亡,但也就失效了。
    • 从对服务器的负担比较

      • Session是保存在服务器的,每个用户都会产生一个Session,如果是并发访问的用户非常多,是不能使用Session的,Session会消耗大量的内存。
      • Cookie是保存在客户端的。不占用服务器的资源。像baidu、Sina这样的大型网站,一般都是使用Cookie来进行会话跟踪。
    • 从浏览器的支持上比较

      • 如果浏览器禁用了Cookie,那么Cookie是无用的了!
      • 如果浏览器禁用了Cookie,Session可以通过URL地址重写来进行会话跟踪。
    • 从跨域名上比较

      • Cookie可以设置domain属性来实现跨域名
      • Session只在当前的域名内有效,不可夸域名
        4.九个内置对象:

    pageContext
    page
    config
    request
    response
    session
    application
    exception
    out

    out:out对象用于向浏览器输出数据,与之对应的是Servlet的PrintWriter对象。然而这个out对象的类型并不是PrintWriter,是JspWriter
    内置对象request其实就是HttpServletRequest
    内置对象response其实就是HttpServletResponse
    内置对象config其实就是ServletConfig
    内置对象session其实就是HttpSession
    内置对象application其实就是ServletContext对象
    内置对象page是HttpJasPage对象,其实page对象代表的就是当前JSP页面,是当前JSP编译后的Servlet类的对象。也就是说:page对象相当于普通java类的this
    内置对象exception是java.lang.Exception类的对象,exception封装了JSP页面抛出的异常信息
    pageContext获取8个内置对象
    既然它代表了JSP页面编译后的内容,理所当然的:它封装了对其他8大内置对象的引用!,也就是说,通过pageContext可以获取到其他的8个内置对象!
    page【只在一个页面中保存属性,跳转页面无效】
    requet【只在一次请求中保存属性,服务器跳转有效,浏览器跳转无效】
    session【在一个会话范围中保存属性,无论何种跳转均有效,关闭浏览器后无效】
    application【在整个服务器中保存,所有用户都可以使用】

    相关文章

      网友评论

          本文标题:web基础概念

          本文链接:https://www.haomeiwen.com/subject/hcjgmftx.html