杂记-2

一、GET与POST

1.GET和POST是HTTP协议中的两种发送请求的方法。由于HTTP的底层是TCP/IP,所以GET和POST的底层都是TCP/IP,即GET和POST都是TCP连接,所以说GET和POST在本质上没有区别

2.GET和POST的常见区别

(1)GET在浏览器回退时是无害的,而POST会再次提交请求;

(2)GET产生的URL地址可以被Bookmark(添加书签),而POST不可以;

(3)GET请求会被浏览器主动cache(缓存),而post不会(除非手动设置);

(4)GET请求只能进行URL编码,而post支持多种编码方式;

(5)GET请求的参数会被完整的保留在浏览器的历史记录中,而post中的参数不会被保留;

(6)理论上:GET请求中传送的参数是有长度限制的,而post中的参数则没有长度限制;

        由于过多的数据会给浏览器和服务器带来很大的负担,所以大多数的浏览器通常都会对URL的长度进行限制,

         ①大多数的浏览器会将URL的程度限制在2K字节,②大多数的服务器最多处理64K大小的URL。

         由于http协议的规定和浏览器及服务器的限制,导致GET和POST在应用过程中体现出一些不同。

(7)在参数的数据类型方面,GET只接收ASCII字符,而POST的参数的数据类型则没有;

(8)由于GET请求中的参数是直接暴露在地址栏中,所以一般来说不使用GET请求来传递敏感信息;

(9)GET请求的参数通过URL传递,post的参数(如果有)则在Request Body(请求体、实体内容)中。

(10)GET和POST还有一个重大的区别:

           ① GET产生一个TCP数据包;

                  对于GET方式的请求,浏览器会把http header和data一起发送出去,服务器响应200(返回数据)

            ②POST会产生两个TCP数据包;

                  对于POST方式的请求,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200                             OK(返回数据)。

 

二、Session

1.session,会话控制,Session 对象存储特定用户会话所需的属性及配置信息。

2.session的创建与使用

      (1)服务器可以为客户端创建并维护一个Session对象,用于存放数据。 
      (2)在创建Session对象的同时,服务器将会为该 Session对象产生一个唯一编号,这个编号称之为SessionID
               服务器以Cookie的方式将SessionID存放在客户端,如JSESSIONID。
      (3)当浏览器再次访问该服务器时,会将SessionID作为Cookie信息带到服务器,服务器可以通过该SessionID检索到以前                   的Session对象,并对其进行访问。

        即:1:发送请求
               2:服务器端创建session对象
               3:发送保存了JSessionId的cookie存储于客户端
               4:再次请求的时候就携带了JSessionId
               5:通过令牌sessionId找到相对应的session

3.session的常用方法

        (1) setAttribute(java.lang.String, java.lang.Object):在Session对象中用一个名字绑定一个对象。
        (2) getAttribute(java.lang.String):通过名字获取Session对象中保存的对象。
        (3) removeAttribute(java.lang.String):在Session中删除与一个名字对应的对象。
        (4) getCreationTime():返回第一次创建会话的时间。
        (5) getLastAccessedTime():返回容器最后一次得到该会话ID的请求时间。
        (6) setMaxInactiveInterval(int interval):对于会话指定客户请求的最大间隔时间,以为单位,-1表示永不过期。
        (7) getMaxInactiveInterval(int interval):返回客户请求的最大间隔时间。
        (8) invalidate():会话结束,当前存在在会话中的所有会话属性也会解除绑定。
        (9) getId():此方法返回每个session唯一的标识。

4.session的失效情况(销毁session的几种方式)

(1)设置会话超时,setMaxInactiveInterval()方法

(2)在Session对象上调用invalidate()方法

(3)服务器重启或关闭

5.设置会话超时的几种方法

(1)在Servlet中通过代码设置,单位为,如:

 mySession.setMaxInactiveInterval(60*60*24);

(2)在项目中的 web.xml 文件中配置,单位为分钟

<session-config>
        <session-timeout>15</session-timeout>
</session-config>

(3)【默认】在Tomcat服务器的的 /config/web.xml 文件中配置,单位为分钟

<session-config>
        <session-timeout>30</session-timeout>
</session-config>

  说明:优先级为: (1)>(2)>(3),如果有多个配置,则优先级大的生效

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值