分类 | 描述 |
---|---|
应用层 | 负责具体业务和视图展现,如网络首页及搜索输入和结果展现 |
服务层 | 为应用层提供服务支持,如用户管理服务,购物车服务等 |
数据层 | 提供数据存储访问服务,如数据库、缓存、文件、搜索引擎等 |
Get | Post | |
---|---|---|
请求行 | GET /user_login?username=admin&password=123 HTTP/1.1:表示使用Get请求 , 表示请求什么路径地址 ,表示使用什么版本的协议 | POST /user_login HTTP/1.1:意思和get请求的意思同样,只不过这里的地址不再跟数据了。 而且这里使用post请求 |
请求头 | Host : 表示主机地址;User-Agent : 表示客户端的信息;Accept : 声明客户端能够接收什么类型的数据;Accept-Language : 表示客户端支持的语言;Accept-Encoding : 表示客户端支持的压缩格式;Referer : 表示请求从哪里过来的;Connection : 表示链接状态。 | Content-Type : 其实就是说明提交上去的数据是什么类型数据 。 是一个通过url编码的form表单数据;Content-Length : 提交的数据长度;Cache-Control : 表示再次请求的时候,是否读缓存。 |
请求体 | get请求没有请求体 | username=zhangsan&password=123:是以流的形式写给服务器的 |
响应行 | HTTP/1.1 200:表示服务器也支持1.1的版本协议 , 对此次请求处理的状态码是200 | 与get方法相同 |
响应头 | Content-Type: text/html;charset=UTF-8 : 表示返回的结果是一份网页,使用的是UTF-8编码;Content-Length: 75 : 返回的数据长度;Date: Sun, 21 May 2017 07:09:28 GMT : 响应时间 | 与get方法相同 |
响应体 | process login with admin : 123 | 与get方法相同 |
Cookie | Session | |
---|---|---|
存储位置 | 数据存放在客户端 | 数据存放在服务器端 |
存储大小 | 存放的数据有限 | 依赖服务器的内存空间 |
安全性 | 数据不安全 | 数据相对比较安全 |
服务器负荷 | 减轻服务器压力, 用户磁盘占用比较多 | 服务器压力大一点 |
不会销毁Session;由于session须要经过JSESSIONID来获取,JSESSIONID 存储在cookie中,关闭浏览器以后,cookie销毁,再次访问没法获取JSESSIONID ,天然不能获取到原来的session。html
IOC-Inversion of Control,即控制反转。数据库
做用:将建立对象的动做交给容器来执行,无需本身手动建立。浏览器
DI-Dependency Injection,即依赖注入缓存
做用:只须要经过注解代表本身所须要的对象,容器就能够动态的将某个依赖注入到组件之中,提高了组件重用的频率。安全
经过反射和动态代理能够实现出本身的IOC和DI服务器
首先,什么是代理?cookie
举个例子,经纪人和歌手,想找歌手出席商业活动,不须要直接找到歌手本人,只要联系经纪人就能够,网络
在此处经纪人就是起到一个代理的做用。session
既然有动态代理,就会有静态代理,那么什么是静态代理?函数
若代理类在程序运行前就已经存在,那么这种代理方式被成为静态代理 ,这种状况下的代理类一般都是咱们在Java代码中定义的。 一般状况下, 静态代理中的代理类和委托类会实现同一接口或是派生自相同的父类。
搞清楚了什么是静态代理,那么什么是动态代理呢?
代理类在程序运行时建立的代理方式被成为动态代理。
也就是说,代理类并非在Java代码中定义的,而是在运行时根据咱们在Java代码中的指示动态生成的。
相比于静态代理,动态代理的优点在于能够很方便的对代理类的函数进行统一处理,而不用修改每一个代理类的函数。
最后,如何使用动态代理?