当前位置:  互联网>综合
本页文章导读:
    ▪tomcat session管理总结      1.      Catalina通过一个成为Session管理器的组件来管理建立的Session对象,该组件由org.apache.catalina.Manager接口表示。 2.      Session管理器需要与一个Conte.........
    ▪HTTP协议详解         HTTP URL (URL是一种特殊类型的URI,包含了用于查找某个资源的足够的信息)的格式如下: http://host[":"port][abs_path] http表示要通过HTTP协议来定位网络资源;host表示合法的Internet主.........
    ▪路由交换命令总结      路由交换命令总结 近些天一直在总结路由交换命令,其实也不多,为了便于大家复制参考,特意使用了编程语言的模式,希望对大家有帮助。 个人总结,难免有些纰漏,欢迎指正。 【基础配.........

[1]tomcat session管理总结
    来源: 互联网  发布时间: 2013-10-21

1.      Catalina通过一个成为Session管理器的组件来管理建立的Session对象,该组件由org.apache.catalina.Manager接口表示。

2.      Session管理器需要与一个Context容器相关联,且必须与一个Context容器关联。

3.      Session管理器负责创建、更新、销毁Session对象,当请求到来时,会返回一个有效的Session对象。

4.      在Catalina的默认连接器中,org.apache.catalina.connector.HttpRequestBase类实现HttpservletRequest接口,可以用来获取session。

5.      默认情况下,session管理器会将其所管理的Session对象放在内存中。但是,在tomcat中,session管理器也可以将Session对象进行持久化,存储到文件存储器或通过JDBC写入到数据库中。在Catalina中,org.apache.catalina.session包下有一些与Session对象和Session对象管理相关的类。

6.      在Catalina中Session接口的标准实现位于org.apache.catalina.session包下的StandardSession类。

7.      为了安全起见,Session管理器并不会直接将StandardSession实例交给servlet实例使用。而是使用了一个session接口的外观类: StandardSessionFacade. Session管理器会使用另一个外观类:org.apache.catalina.Session接口。

8.      在Catalina中,org.apache.catalina.session包中有一个名为ManagerBase的工具类,该类提供了常见功能的实现。ManagerBase类有两个直接子类,分别是StandardManager类和PersistentManagerBase类。

9.      当Catalina运行时,StandardManager实例会将session对象存储在内存中。但是,当catalina关闭时,它会将当前内存中的所有session对象存储到一个文件中。当再次启动Catalina时,又会将这些Session对象重新载入到内存中。

10.  Manager接口提供了getContainer()方法和setContainer()方法,以便将一个Manager实现与一个Context容器相关联。

11.  Load方法和upload方法用来将Session对象持久化到辅助存储器中,当然这还需要session管理器对持久化的支持。

12.  一个活动的Session对象指的是有效的,还未过期的Session对象。

13.  StandardManager 类是Manager接口的标准实现,该类将Session对存储于内存中。

14.  StandardManager类实现Lifecycle接口。这样就可以由与其关联的Context容器来启动和关闭。其中stop()方法的实现会调用unload()方法,以便将有效的Session对象序列化为一个名为”SESSION.ser”的文件中,而且每个Context容器都会产生一个这样的文件。

15.  PersistentManagerBase类是所有持久化Session管理器的父类。

16.  在tomcat4中,session备份和换出由Manager实现Runnable接口,来定时的执行session的换入和换出。而在tomcat5 这些交给backgroundProcess管理器来完成。

17.  Tomcat4 提供了DistributeedManager类,该类继承自PersistentManagerBase类,前一个类用于两个或多个节点的集群环境。

18.  为了实现复制Session对象的目的,当创建或销毁Session对象时,DistributedManager实例会想其他节点发送消息。

19.  为了与集群中其他节点的DistributedManager实例发送和接收消息,Catalina在org.apache.catalina.cluster包中有一些可供使用的工具类。其中,ClusterSender类用于向集群中的其他节点发送消息,ClusterReceiver实例用于接收集群中其他节点发送的消息。

20.  DistributedManager类实现了java.lang.Runnable接口,这样就可以使用一个专门的线程来检查对象是否过期,并从集群中其他节点上接收消息。

21.  存储器是org.apache.catalina.Store接口的实例,是为Session管理器管理的Session对象提供持久化存储器的一个组件。

22.  StoreBase类是一个抽象类,提供了一些基本功能。该类有两个直接子类,分别是FileStore类和JDBCStore类。

23.  JDBCStore类将Session对象通过JDBC存入数据库中。因此为了使用JDBCStore,需要分别调用setDriverName()方法和setConnectionURL()方法来设置驱动程序名称和URL。

 

作者:lantian0802 发表于2013-5-11 15:40:58 原文链接
阅读:0 评论:0 查看评论

    
[2]HTTP协议详解
    来源: 互联网  发布时间: 2013-10-21

引言                                        

HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。
HTTP协议的主要特点可概括如下:
1.支持客户/服务器模式。
2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

 

一、HTTP协议详解之URL篇

    http(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式,HTTP1.1版本中给出一种持续连接的机制,绝大多数的Web开发,都是构建在HTTP协议之上的Web应用。

HTTP URL (URL是一种特殊类型的URI,包含了用于查找某个资源的足够的信息)的格式如下:
http://host[":"port][abs_path]
http表示要通过HTTP协议来定位网络资源;host表示合法的Internet主机域名或者IP地址;port指定一个端口号,为空则使用缺省端口80;abs_path指定请求资源的URI;如果URL中没有给出abs_path,那么当它作为请求URI时,必须以“/”的形式给出,通常这个工作浏览器自动帮我们完成。
eg:
1、输入:www.guet.edu.cn
浏览器自动转换成:http://www.guet.edu.cn/
2、http:192.168.0.116:8080/index.jsp 

 

二、HTTP协议详解之请求篇

    http请求由三部分组成,分别是:请求行、消息报头、请求正文

1、请求行以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本,格式如下:Method Request-URI HTTP-Version CRLF  
其中 Method表示请求方法;Request-URI是一个统一资源标识符;HTTP-Version表示请求的HTTP协议版本;CRLF表示回车和换行(除了作为结尾的CRLF外,不允许出现单独的CR或LF字符)。

请求方法(所有方法全为大写)有多种,各个方法的解释如下:
GET     请求获取Request-URI所标识的资源
POST    在Request-URI所标识的资源后附加新的数据
HEAD    请求获取由Request-URI所标识的资源的响应消息报头
PUT     请求服务器存储一个资源,并用Request-URI作为其标识
DELETE  请求服务器删除Request-URI所标识的资源
TRACE   请求服务器回送收到的请求信息,主要用于测试或诊断
CONNECT 保留将来使用
OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求
应用举例:
GET方法:在浏览器的地址栏中输入网址的方式访问网页时,浏览器采用GET方法向服务器获取资源,eg:GET /form.html HTTP/1.1 (CRLF)

POST方法要求被请求服务器接受附在请求后面的数据,常用于提交表单。
eg:POST /reg.jsp HTTP/ (CRLF)
Accept:image/gif,image/x-xbit,... (CRLF)
...
HOST:www.guet.edu.cn (CRLF)
Content-Length:22 (CRLF)
Connection:Keep-Alive (CRLF)
Cache-Control:no-cache (CRLF)
(CRLF)         //该CRLF表示消息报头已经结束,在此之前为消息报头
user=jeffrey&pwd=1234  //此行以下为提交的数据

HEAD方法与GET方法几乎是一样的,对于HEAD请求的回应部分来说,它的HTTP头部中包含的信息与通过GET请求所得到的信息是相同的。利用这个方法,不必传输整个资源内容,就可以得到Request-URI所标识的资源的信息。该方法常用于测试超链接的有效性,是否可以访问,以及最近是否更新。
2、请求报头后述
3、请求正文(略) 

 

三、HTTP协议详解之响应篇

    在接收和解释请求消息后,服务器返回一个HTTP响应消息。

HTTP响应也是由三个部分组成,分别是:状态行、消息报头

    
[3]路由交换命令总结
    来源: 互联网  发布时间: 2013-10-21

路由交换命令总结

近些天一直在总结路由交换命令,其实也不多,为了便于大家复制参考,特意使用了编程语言的模式,希望对大家有帮助。

个人总结,难免有些纰漏,欢迎指正。

【基础配置】
进入console口进行本地配置
用户模式		xx>enable n
特权模式		xx#configure terminal
全局配置模式	xx(config)#interface [f|s] n/m
进入接口配置模式xx(config-if)#

进入(子)接口模式后配置IP 
(config-if)#ip addr 	A.B.C.D 子网掩码
激活接口
(config-if)#no shutdown
配置速度
(config-if)#speed {auto|10|100}
配置接口工作模式
(config-if)#duplex {auto|half|full}
配置时钟(串行口DCE端)
(config-if)#clock rate n
反向操作(删除配置)
no + 命令
在换回接口上配多个ip
(config-if)#ip addr 	A.B.C.D 子网掩码
(config-if)#ip addr 	A.B.C.D 子网掩码 secondary
查看所有配置
#show running-config

路由器关闭路由功能充当主机
(config)#no ip routing
为路由器设置网关
(config)#ip default-gateway ip地址

改机器名字
(config)#hostname yy
控制线路超时
(config)#line n
(config-line)#exec-timeout 0 0
关闭域名解析功能
(config)#no ip domain-lookup
开启路由器http功能
(config)#ip http server
(config)#username xxx password yyy
(config)#username xxx secret yyy
(config)#enable secret yyy
启用密码加密服务
(config)#service password-encryption yyy
开启路由器https功能
(config)#ip http secure-server
开启路由器远程登录功能
(config)#line vty 0 4
(config)#login local或者(config)#no login
(config)#enable n
登录时使用命令  telnet A.B.C.D

【交换机】
查看mac地址表
#show mac-address-table
绑定静态mac地址
(config)#mac-address-table static H.H.H vlan n interface fx/x
#show arp
在主机上使用arp -a查看arp信息
开启交换机端口安全(防止连接主机恶意发送随机mac填满mac地址表)
(conifg)#switchport port-security
(conifg)#switchport	 ?
#show port-security int fx/x
恢复
(config)#errdisable recovery

为交换机vlan1配置管理ip
(conifg)#int vlan 1
(config-if)#ip addr A.B.C.D 子网掩码
(config-if)#no shut

【交换机vlan】
查看vlan
#show vlan-switch或是#show vlan
创建vlan
#vlan database 
(vlan)#vlan n
将端口加入到vlan中
(config-if)#switchport access vlan n
给允许多个vlan的接口打trunk
(config-if)#switchport mode trunk

【单臂路由vlan】
路由器上配置子接口实现不同vlan之间通信,先必须激活其父接口,另外IP不允许重复
(config)#interface fx/x.x
(config-subif)#encapsulation dot1q vlan-id
(config-subif)#ip addr A.C.D.E 子网掩码
(config-subif)#no shut

【使用三层交换机交换虚拟接口】
交换机上配置虚拟交换接口实现不同vlan之间通信,先必须在交换机上添加对应vlan
(config)#int vlan n
(config-if)#ip addr A.B.C.D 子网掩码
(config-if)#no shut
在删除时,务必先删除交换虚拟接口,再删对应vlan

【VTP】
配置VTP模式
#vlan database
(vlan)#vtp {server|client|transparent}
只有域名和密码完全一样的路由器之间才能同步vlan信息
(vlan)#vtp domain <域名>
(vlan)#vtp password <密码>
打开VTP裁剪
(vlan)#vtp pruning
退出激活
(vlan)#exit

【端口聚合】
创建
R1(config)#interface port-channel 1
(config-if)#switchport trunk encapsulation dot1q
(config-if)#switchport mode trunk
将指定接口加入聚合组内
#int range f x/x-x
#channel-group 1 mode on
查看聚合接口
#show etherchannel summary

【生成树协议】
基于vlan的生成树可防止环路
开启生成树协议(STP默认是开启的,可省略)
(config)#spanning-tree vlan n
修改生成树协议优先级(根网桥:mac最小、优先级最小)
(config)#spanning-tree vlan n priority m
交换机和主机之间连接的端口开启portfast,可防止主机发送BPDU伪造数据
(config-if)#spanning-tree portfast
查看生成树
#show spanning-tree [vlan n]

【静态路由】
查看协议
#show ip protocols
查看路由表
#show ip route
添加静态路由(以默认路由举例)
(config)#ip route 0.0.0.0 0.0.0.0 {出接口|下一跳ip}
浮动静态路由(备份链路,在原链路失效后起作用)
(config)#ip route 0.0.0.0 0.0.0.0 出接口 AD管理距离
静态黑洞路由
(config)#ip route 192.168.0.0 255.255.0.0 null 0

【RIP距离矢量路由,动态路由】
配置RIP宣告直连网段
(config)#router rip
(config-router)#network 网段
更改为版本2
(config-router)#version {2|1}
关闭自动汇总(如果被其他网路隔开时,最好关闭自动汇总)
(config-router)#no auto-summary
设置被动接口(只接受更新,不宣告自己)
(config-router)#passive-interface 接口
单播更新(只和指定的ip交换路由信息)
(config-router)#neighbor ip地址
清除路由表内容
#clear ip route *

【OSPF链路状态路由,动态路由】
配置OSPF宣告直连网路
(config)#router ospf <进程号>
(config-router)#router-id <任意ip地址>
(config-router)#network <ip网段> <反掩码> area n
重启OSPF进程
#clear ip ospf process
查看接口的OSPF信息
#show ip ospf interface
查看邻居表
#show ip ospf neighbor
查看链路数据表
#show ip ospf database <?>

【EIGRP链路状态路由,动态路由】
配置EIGRP宣告直连网路
(config)#router eigrp <系统编号>
(config-router)#network <ip网段>
查看邻居表
#show ip eigrp neighbors 
查看拓扑表
#show ip eigrp topology

【VRRP虚拟路由器路由协议】
提供网关冗余
查看VRRP信息
#show vrrp <?>
VRRP配置(在提供备份的两台路由器上做以下配置)
端口跟踪(监视某个接口的状态)
(config)#track 1 interface 接口 line-protocol 
(config-if)#vrrp <1~254> ip <ip地址>
额外配置优先级(IP和优先级越大Master)和抢占
(config-if)#vrrp <1~254> priority <1~254>
(config-if)#vrrp <1~254> preempt
(config-if)#vrrp 1 track 1 decrement <1~255>

【访问控制列表ACL】
ACL无法控制自身发起的流量,对于已经建立的流量不起作用
标准ACL(不能单独删除、添加一条访问列表)
(config)#access-list <1~99|1300~1999> {permit|deny} ip地址 反掩码
扩展ACL
(config)#access-list <100-199> {permit|deny} <协议> <源ip> <反掩码> <源端口> <目标ip> <反掩码> <目标端口>
应用到指定ACL到某个接口
(config)#int 接口
(config-if)#ip access-group <1~99|100-199|1300~1999> {in|out}

命名ACL
(config)#ip access-list standard <标准ACL名字>
(config-std-nacl)#{permit|deny} ip地址 反掩码
(config)#ip access-list extended <扩展ACL名字>
(config-ext-nacl)#{permit|deny} <协议> <源ip> <反掩码> <源端口> <目标ip> <反掩码> <目标端口>
应用到指定ACL到某个接口
(config)#int 接口
(config-if)#ip access-group <标准ACL名字|扩展ACL名字> {in|out}

自反ACL(RACL,可以只允许内网主动发起的流量通过)
(config)#ip access-list extended OUTB
(config-ext-nacl)#permit tcp any any reflect RACL
(config)#ip access-list extended INB   
(config-ext-nacl)#evaluate RACL
(config-ext-nacl)#deny ip any any
应用到指定ACL到某个接口
(config-if)#ip access-group OUTB out
(config-if)#ip access-group INB in

基于时间的ACL
设置时区时间
(config)#clock timezone GMT +8
#clock set hh:mm:ss <日> <月> <年>
定义时间
(config)#time-range <时间名>
(config-time-range)#periodic <?> hh:mm to hh:mm
(config-time-range)#absolute start hh:mm:ss <日> <月> <年> end hh:mm:ss <日> <月> <年>
结合ACL
(config)#ip access-list extended <扩展ACL名字>
(config-ext-nacl)#deny tcp any any time-range <时间名>

【NAT和PAT】
定义内外网接口
(config)#int 接口
(config-if)#ip nat {inside|outside}
静态NAT
(config)#ip nat inside source static ip地址 <?>
静态PAT
(config)#ip nat inside source static <协议> ip地址 <端口号> <?>

使用ACL捕获流量
(config)#access-list n permit ip地址 反掩码
(config)#ip nat pool <地址池名> <起始ip地址> <终止ip地址> netmask 掩码
TCP负载均衡(轮询转换)
(config)#ip nat pool <地址池名> <起始ip地址> <终止ip地址> netmask 掩码 type rotary
动态NAT
(config)#ip nat inside source list n pool <地址池名>
动态PAT
(config)#ip nat inside source list n pool <地址池名> overload

查看转换项
#show ip nat translations

【广域网PPP协议】
在串行口上的两台路由器都封装ppp协议
(config)#int sx/x
(config-if)#encapsulation ppp
(config-if)#no shut

启用PAP认证,未加密
认证方
(config)#username <用户名> password <密码>
(config-if)#ppp authentication pap
请求认证方
(config-if)#ppp pap sent-username <用户名> password <密码>

启用CHAP认证,安全加密
认证方
(config)#username <请求认证方名> password <请求认证方密码>
(config-if)#ppp authentication chap
请求认证方
(config)#username <认证方名> password <认证方密码>
(config-if)#ppp authentication chap

【帧中继】
无广播的多路访问网络(NBMA)

配置帧中继交换机
关闭路由器路由功能
(config)#no ip routing
启用帧中继
(config)#frame-relay switching
进入串行接口
R8(config)#int sx/x
封装frame-relay协议
R8(config-if)#encapsulation frame-relay
指定lmi-type类型
(config-if)#frame-relay lmi-type cisco
指定intf-type接口类型为DCE
(config-if)#frame-relay intf-type dce
配置时钟频率
(config-if)#clock rate n
配置DLCI
(config-if)#frame-relay route <进DLCI号> int <出接口> <出DLCI号&      
    
最新技术文章:
▪用户及权限基础 2---- Linux权限    ▪用户及权限基础 3---- Linux扩展权限    ▪git 简明教程(1) --创建及提交
▪背包 代码    ▪json对象的封装与解析    ▪01背包,完全背包,多重背包 ,模板代码
▪apache安装详解    ▪HDU 4668 Finding string (解析字符串 + KMP)    ▪《TCP-IP详解 卷1:协议》学习笔记(二)
▪《TCP-IP详解 卷1:协议》学习笔记(持续更新...    ▪windows下使用swig    ▪gensim试用
▪Linux Shell脚本编程--nc命令使用详解    ▪solr对跨服务器表联合查询的配置    ▪递归和非递归实现链表反转
▪Linux磁盘及文件系统管理 1---- 磁盘基本概念    ▪Cholesky Decomposition    ▪HTTP协议学习
▪用C语言写CGI入门教程    ▪用hdfs存储海量的视频数据的设计思路    ▪java多线程下载的实现示例
▪【原创】eAccelerator 一个锁bug问题跟踪    ▪hadoop学习之ZooKeeper    ▪使用cuzysdk web API 实现购物导航类网站
▪二维数组中的最长递减子序列    ▪内嵌W5100的网络模块WIZ812MJ--数据手册    ▪xss 跨站脚本攻击
▪RobotFramework+Selenium2环境搭建与入门实例    ▪什么是API    ▪用PersonalRank实现基于图的推荐算法
▪Logtype    ▪关于端口号你知道多少!    ▪Linux基本操作 1-----命令行BASH的基本操作
▪CI8.7--硬币组合问题    ▪Ruby on Rails 学习(五)    ▪如何使用W5300实现ADSL连接(二)
▪不允许启动新事务,因为有其他线程正在该会...    ▪getting start with storm 翻译 第六章 part-3    ▪递归求排列和组合(无重复和有重复)
▪工具类之二:RegexpUtils    ▪Coding Interview 8.2    ▪Coding Interview 8.5
▪素因子分解 Prime factorization    ▪C# DllImport的用法    ▪图的相关算法
▪Softmax算法:逻辑回归的扩展    ▪最小生成树---Kruskal算法---挑战程序设计竞赛...    ▪J2EE struts2 登录验证
▪任意两点间的最短路径---floyd_warshall算法    ▪Sqoop实现关系型数据库到hive的数据传输    ▪FFMPEG采集摄像头数据并切片为iPhone的HTTP Stream...
▪Ubuntu 13.04 – Install Jetty 9    ▪TCP/IP笔记之多播与广播    ▪keytool+tomcat配置HTTPS双向证书认证
▪安装phantomjs    ▪Page Redirect Speed Test    ▪windows media player 中播放pls的方法
▪工具类之二:RegexpUtils    ▪Coding Interview 8.2    ▪Coding Interview 8.5 iis7站长之家
▪The TCP three-way handshake (connect)/four wave (closed)    ▪网站反爬虫    ▪Log4j实现对Java日志的配置全攻略
▪Bit Map解析    ▪Notepad 快捷键 大全    ▪Eclipse 快捷键技巧 + 重构
▪win7 打开防火墙端口    ▪Linux Shell脚本入门--awk命令详解    ▪Linux Shell脚本入门--Uniq命令
▪Linux(Android NDK)如何避免僵死进程    ▪http Content-Type一览表    ▪Redis实战之征服 Redis + Jedis + Spring (二)
▪Tomcat7.0.40 基于DataSourceRealm的和JDBCRealm的资源...    ▪利用SQOOP将ORACLE到HDFS    ▪django输出 hello world
▪python re    ▪unity3D与网页的交互    ▪内存共享基本演示
▪python join    ▪不再为无限级树结构烦恼,且看此篇    ▪python实现变参
▪打开文件数限制功能不断地制造问题    ▪Arduino Due, Maple and Teensy3.0 的 W5200性能测试    ▪Selenium实例----12306网站测试
▪基于协同过滤的推荐引擎    ▪C4.5决策树    ▪C#HTTP代理的实现之注册表实现
▪nosql和关系型数据库比较?    ▪如何快速比较这两个字符串是否相等?    ▪hdoj 1863 畅通工程 最小生成树---prime算法
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3