为了准备暑期实习的面试环节,把常考的八股文梳理一下~
八股文绝对不能硬背,应该是 理解 + 反复,从八股中打牢基础、查漏补缺才是正道!
计算机网络
重点(OSI 七层、TCP/IP 四层模型、IP、TCP、UDP、HTTP、HTTPS)
计算机网络模型(为了支持异构网络的互联互通)
OSI 七层模型
物理层
-
任务:透明的传输比特流 -
功能:为数据段设备提供传送数据通路 -
传输单位:比特(bit) -
所实现的硬件:集线器,中继器
数据链路层
网络层
- 任务:
- 将传输层传下来的报文段封装成分组
- 选择合适的路由,使得传输层传下来的分组能够交付到目的主机
- 功能:
- 传输单位:数据段、IP数据包
- 所实现的硬件:路由器
- 协议:IP(网际协议)、ARP(地址解析协议)、ICMP(网际控制报文协议)、IGMP(网际组管理协议)、IGP(RIP、OSPF)、EGP(BGP)、NAT(专用地址转换为公用地址,对外隐藏内部管理的 IP 地址,网络地址转换协议)
传输层
- 任务:负责主机中两个进程之间的通信
- 功能:端口
- 为端到端连接提供可靠的服务
- 为端到端连接提供流量控制、差错控制、服务质量等管理服务
- 传输单位:报文段(TCP)或用户数据包(UDP)
- 协议:
- TCP(基于 TCP:SMTP邮件、TELNET远程控制、HTTP万维网、FTP文件传输)、ARQ(自动重传协议)
- UDP(基于 UDP:DNS域名解析、TFTP简单文件传送、RIP 路由信息协议、DHCP动态主机配置、SNMP简单网络管理、NFS文件系统、IP电弧、多媒体通信、IGMP网际组管理协议)
会话层
- 任务:不同主机上各进程间的对话
- 功能:管理主机间的会话进程,包括建立、管理以及终止进程间的对话。是一种端到端的服务
表示层
- 负责处理在两个内部数据表示结构不同的通信系统之间交换信息的表示格式,为数据加密和解密以及为提高传输效率提供必须的数据压缩以及解压等功能。
应用层
- 任务:提供系统与用户的接口
- 功能:
- 协议:FTP、SMTP、POP3、HTTP、DNS、TELnet
TCP/IP 四层模型(这里就是四层,书中的五层是为了让学习计网更加方便)
网络层
功能:异构网络互连,路由转发,拥塞控制
路由选择算法
静态(人工)/动态(路由器)
距离-向量路由算法:计算每条到达目的地路径的代价
链路状态路由算法:每个结点都具有完全的网络拓扑信息
层次路由:自治系统内部使用的称为内部网关协议,不同自治系统之间的称为外部网关协议
IPv4
IPv4 数据报格式如下:
标识:16位,是一个计数器,没产生一个数据报就加一,并赋值给标识字段。当一个数据报的长度超过网络的 MTU 时,必须分片。
标志:3位,是否还有分片的标志。
片偏移:13位,每个片在数据报中的相对位置。
生存时间:路由中可转发的次数,TTL。
协议:TCP 还是 UDP 传输协议。
IP 地址都由网络号 + 地址号组成,分类如下:
有些 IP 地址有特殊的用途,不用来做主机的 IP 地址:
子网,为了使 IP 地址更加灵活,减轻路由器压力,IP 地址 和 子网掩码 作与运算,得出该 IP 所在子网的网络号。
ARP:地址解析协议,在链路上传送数据帧时,最终都必须使用硬件地址。ARP 负责 IP 到 MAC 地址的映射。每台主机有一个 ARP 高速缓存用来存放 ARP 映射表
DHCP:动态主机配置协议,应用层,基于UDP,在IP网络中,每个连接Internet的设备都需要分配唯一的IP地址。DHCP使网络管理员能从中心结点监控和分配IP地址。当某台计算机移到网络中的其它位置时,能自动收到新的IP地址。DHCP实现的自动化分配IP地址不仅降低了配置和部署设备的时间,同时也降低了发生配置错误的可能性。另外DHCP服务器可以管理多个网段的配置信息,当某个网段的配置发生变化时,管理员只需要更新DHCP服务器上的相关配置即可,实现了集中化管理。
ICMP:网际控制报文协议,有两种,ICMP 差错报告报文,ICMP 询问报文(Ping)。
IPv6
从 IPv4 的 32 位,增大到了 128 位。
具有更大的地址空间。可扩展的地址层次结构,更灵活的首部格式。
内部网关协议:RIP(路由信息协议,跳数,距离向量路由算法),OSPF(开放最短路径优先协议,链路状态路由算法)
外部网关协议:BGP(发言人)
传输层
传输层功能,传输层寻址与端口;无连接服务和面向连接服务,端到端的通信。
端口能够让应用层的各种应用进程将其数据通过端口向下交付给传输层,以及让传输层知道应当将其报文段中的数据向上通过端口交付给应用层相应的进程。端口可以标识主机中的应用进程。
常见端口号如下:
UDP
UDP 仅在 IP 的数据报服务至上增加了两个最基本的服务:复用和分用以及差错检测。
有以下特点:
TCP
特点:
- TCP 面向连接的传输层协议
- TCP 提供可靠的服务,保证数据无差错,不丢失,不重复,有序
- TCP 提供全双工通信,具有发送缓存和接收缓存,通信双方可以随时发送数据
- 每条 TCP 连接都有只能有两个端点,只能是点对点的(一对一)
- TCP 是面向字节流的,将应用层的数据视为一连串无结构的字节流
- 源端口、目的端口。
- 序号,占 4B,TCP 面向字节流,逐个字节传送,故 TCP 连接中的每个字节都需要按顺序编号。序号指本报文段所发送数据的第一个字节的序号。以字节(B)为单位。
- 确认号,占 4B,是期望收到对方下一个报文段的第一个数据字节的序号。表示确认号之前的所有数据都正确收到。
- 数据偏移(首部长度),表示首部的长度。
- 保留:保留今后使用。
- 紧急位 URG:URG = 1时,表明紧急指针有效,表示此报文段中有紧急数据应尽快传送,URG 需和紧急指针配合使用。
- 确认位 ACK:仅当 ACK = 1时,确认号字段才有效。
- 推送为 PSH:PSH = 1,表示不需要等待缓存,直接交付给应用进程
- 复位位 RST:RST = 1,表示 TCP 连接中出现严重差错,必须释放连接,重新建立连接
- 同步位 SYN:SYN = 1,表示这是一个连接请求或者连接接受报文,专用于连接的建立与接收的响应报文
- 终止位 FIN:FIN = 1,表示发送完毕,并要求释放传输连接
- 窗口,占 2B,指出现在允许对方发送的数据量,窗口值作为接收方让发送方设置发送窗口大小的依据。
- 校验和,占 2B。
- 紧急指针:仅当 URG = 1 时才有意义。
- 选项,长度可变,最初只有 MSS,即最大报文段长度
- 填充,为了使首部长度是 4B 的整数倍
TCP 三次握手(两次不行吗?)
连接建立前,服务器进程处于 LISTEN(收听)状态,等待客户的连接请求。
第一步:客户机的 TCP 首先向服务器的 TCP 发送连接请求报文段。这个特殊报文段的首部中的同步位 SYN 置1,同时选择一个初始序号seq=x。TCP规定,**SYN报文段不能携带数据,但要消耗掉一个序号。**这时,TCP客户进程进入SYN-SENT(同步已发送)状态。
第二步:服务器的TCP收到连接请求报文段后,如同意建立连接,则向客户机发回确认,并为该TCP连接分配缓存和变量(初始化)。在确认报文段中,把SYN位和ACK位都置1,确认号是ack =x+1,同时也为自己选择一个初始序号seq=y。注意,确认报文段不能携带数据,但也要消耗掉一个序号。这时,TCP服务器进程进入SYN-RCVD(同步收到)状态。
第三步:当客户机收到确认报文段后,还要向服务器给出确认,并为该TCP连接分配缓存和变量。确认报文段的ACK位置1,确认号ack = y+1,序号seq =x+1。该报文段可以携带数据,若不携带数据则不消耗序号。这时,TCP客户进程进入ESTABLISHED (已建立连接)状态。
成功进行以上三步后,就建立了TCP连接,接下来就可以传送应用层数据。TCP提供的是全双工通信,因此通信双方的应用进程在任何时候都能发送数据。
另外,值得注意的是,服务器端的资源是在完成第二次握手时分配的,而客户端的资源是在完成第三次握手时分配的,这就使得服务器易于受到SYN洪泛攻击。
如若两次握手,客户端可以确认客户端和服务器的发送和接收都是正常的,但是服务端是不确定客户端的接收能力是否正常的!
TCP 四次挥手(三次不行吗?)
第一步:客户机打算关闭连接时,向其TCP发送连接释放报文段,并停止发送数据,主动关闭TCP连接,该报文段的终止位FIN置1,序号seq=u,它等于前面已传送过的数据的最后一个字节的序号加1,FIN 报文段即使不携带数据,也消耗掉一个序号。这时,TCP客户进程进入FIN-WAIT-1(终止等待1)状态。TCP是全双工的,即可以想象为一条TCP连接上有两条数据通路,发送FIN的一端不能再发送数据,即关闭了其中一条数据通路,但对方还可以发送数据。
第二步:服务器收到连接释放报文段后即发出确认,确认号ack = u+1,序号seq= v,等于它前面已传送过的数据的最后一个字节的序号加1。**然后服务器进入CLOSE-WAIT(关闭等待)**状态。此时,从客户机到服务器这个方向的连接就释放了,TCP连接处于半关闭状态。但服务器若发送数据,客户机仍要接收,即从服务器到客户机这个方向的连接并未关闭。并且客户机收到确认后,处于 FIN-WAIT-2 状态。
第三步:若服务器已没有要向客户机发送的数据,就通知TCP释放连接,此时其发出 FIN=1的连接释放报文段。设该报文段的序号为w(在半关闭状态服务器可能又发送了一些数据),还须重复上次已发送的确认号ack = u+1。这时服务器进入LAST-ACK(最后确认)状态。
第四步:客户机收到连接释放报文段后,必须发出确认。把确认报文段中的确认位ACK置1,确认号ack = w +1,序号seq= u +1。**服务器收到确认后,进入 CLOSED 状态。此时TCP连接还未释放,必须经过时间等待计时器设置的时间2MSL(最长报文段寿命〉**后,**客户机才进入CLOSED(连接关闭)**状态。客户机继续等待 2 MSL 是为了防止确认报文段发送失败。
TCP 可靠传输
序号
TCP 连接传送的数据流中的每个字节都编上一个序号。序号字段的值是指本报文段所发送的数据的第一个字节的序号。来标识数据。
确认
TCP 首部的确认号是期望收到对方的下一个报文段的数据的第一个字节的序号。TCP 默认使用累计确认,即 TCP 只确认数据流中至第一个丢失字节为止的字节。
重传
TCP 流量控制
- TCP提供流量控制服务来消除发送方(发送速率太快)使接收方缓存区溢出的可能性,因此可以说流量控制是一个速度匹配服务(匹配发送方的发送速率与接收方的读取速率)。
- TCP提供一种基于滑动窗口协议的流量控制机制,滑动窗口的基本原理已在第3章的数据链路层介绍过,这里要介绍的是TCP如何使用窗口机制来实现流量控制。
- 在通信过程中,接收方根据自己接收缓存的大小,动态地调整发送方的发送窗口大小,这称为接收窗口rwnd,即调整TCP报文段首部中的“窗口”字段值,来限制发送方向网络注入报文的速率。同时,发送方根据其对当前网络拥塞程度的估计而确定的窗口值,这称为拥塞窗口 cwnd(后面会讲到),其大小与网络的带宽和时延密切相关。
传输层和数据链路层的流量控制的区别是:传输层定义端到端用户之间的流量控制,数据链路层定义两个中间的相邻结点的流量控制。另外,数据链路层的滑动窗口协议的窗口大小不能动态变化,传输层的则可以动态变化。
TCP 拥塞控制
拥塞控制是指防止过多的数据注入网络,保证网络中的路由器或链路不致过载。出现拥塞时,端点并不了解拥塞发生的细节,对通信连接的端点来说,拥塞往往表现为通信时延的增加。
拥塞控制与流量控制的区别:拥塞控制是让网络能够承受现有的网络负荷,是一个全局性的过程,涉及所有的主机、所有的路由器,以及与降低网络传输性能有关的所有因素。相反,流量控制往往是指点对点的通信量的控制,是个端到端的问题(接收端控制发送端),它所要做的是抑制发送端发送数据的速率,以便使接收端来得及接收。当然,拥塞控制和流量控制也有相似的地方,即它们都通过控制发送方发送数据的速率来达到控制效果。
因特网建议标准定义了进行拥塞控制的4种算法:慢开始、拥塞避免、快重传和快恢复。发送方在确定发送报文段的速率时,既要根据接收方的接收能力,又要从全局考虑不要使网络发生拥塞。因此,TCP协议要求发送方维护以下两个窗口:
- 接收窗口 rwnd,接收方根据目前接收缓存大小所许诺的最新窗口值,反映接收方的容量。由接收方根据其放在TCP报文的首部的窗口字段通知发送方。
- 拥塞窗口 cwnd,发送方根据自己估算的网络拥塞程度而设置的窗口值,反映网络的当前容量。只要网络未出现拥塞,拥塞窗口就再增大一些,以便把更多的分组发送出去。但只要网络出现拥塞,拥塞窗口就减小一些,以减少注入网络的分组数。
发送窗口的上限值应取接收窗口 rwnd 和拥塞窗口 cwnd 中较小的一个,即发送窗口的上限值 = min[rwnd, cwnd]。
接收窗口的大小可根据 TCP 报文首部的窗口字段通知发送方。
发送方通过慢开始和拥塞避免算法维护拥塞窗口
慢开始
在 TCP 刚刚连接好并开始发送 TCP 报文段时,先令拥塞窗口 cwnd = 1,即一个最大报文段长度 MSS。每收到一个对新报文段的确认后,将 cwnd 加 1,即增大一个 MSS。用这样的方法逐步增大发送方的 cwnd,可使分组注入网络的速率更加合理。
慢开始的“慢”并不是指拥塞窗口 cwnd 的增长速率慢,而是指在 TCP 开始发送报文段时先设置 cwnd = 1,使得发送方在开始时只发送一个报文段(目的是试探一下网络的拥塞情况),然后再逐渐增大 cwnd,这对防止网络出现拥塞是一个非常有力的措施。使用慢开始算法后,每经过一个传输轮次(即往返时延 RTT),cwnd 就会加倍,即 cwnd 的大小指数式增长。这样,慢开始一直把 cwnd 增大到个规定的慢开始门限 ssthresh(阙值),然后改用拥塞避免算法。
拥塞避免
拥塞避免算法的思路是让拥塞窗口 cwnd 缓慢增大,具体做法是:每经过一个往返时延 RTT 就把发送方的拥塞窗口 cwnd 加 1,而不是加倍,使拥塞窗口 cwnd 按线性规律缓慢增长(即加法增大),这比慢开始算法的拥塞窗口增长速率要缓慢得多。
根据cwnd 的大小执行不同的算法,可归纳如下
- 当cwnd < ssthresh时,使用慢开始算法。
- 当cwnd > ssthresh时,停止使用慢开始算法而改用拥塞避免算法。
- 当cwnd = ssthresh时,既可使用慢开始算法,又可使用拥塞避免算法(通常做法)。
无论在慢开始阶段还是在拥塞避免阶段,只要发送方判断网络出现拥塞(未按时收到确认),就要把慢开始门限 ssthresh 设置为出现拥塞时的发送方的 cwnd 值的一半(但不能小于2)。然后把拥塞窗口cwnd重新设置为1,执行慢开始算法。这样做的目的是迅速减少主机发送到网络中的分组数,使得发生拥塞的路由器有足够时间把队列中积压的分组处理完。
在慢开始和拥塞避免算法中使用了“乘法减小”和“加法增大”方法。“乘法减小”是指不论是在慢开始阶段还是在拥塞避免阶段,只要出现超时(即很可能出现了网络拥塞),就把慢开始门限值 ssthresh 设置为当前拥塞窗口的一半(并执行慢开始算法)。当网络频繁出现拥塞时,ssthresh值就下降得很快,以大大减少注入网络的分组数。而“加法增大”是指执行拥塞避免算法后,在收到对所有报文段的确认后(即经过一个RTT),就把拥塞窗口cwnd增加一个 MSS大小,使拥塞窗口缓慢增大,以防止网络过早出现拥塞。
拥塞避免并不能完全避免拥塞。利用以上措施要完全避免网络拥塞是不可能的。拥塞避免是指在拥塞避免阶段把拥塞窗口控制为按线性规律增长,使网络比较不容易出现拥塞。
快重传
快重传和快恢复是对慢开始和拥塞避免算法的改进。
在TCP可靠传输机制中,快重传技术使用了冗余ACK来检测丢包的发生。同样,冗余ACK也用于网络拥塞的检测(丢了包当然意味着网络可能出现了拥塞)。快重传并非取消重传计时器,而是在某些情况下可更早地重传丢失的报文段。
当发送方连续收到三个重复的ACK报文时,直接重传对方尚未收到的报文段,而不必等待那个报文段设置的重传计时器超时。
快恢复
快恢复算法的原理如下:当发送方连续收到三个冗余ACK(即重复确认)时,执行“乘法减小”算法,把慢开始门限 ssthresh 设置为此时发送方 cwnd 的一半。这是为了预防网络发生拥塞。但发送方现在认为网络很可能没有发生(严重〉拥塞,否则就不会有几个报文段连续到达接收方,也不会连续收到重复确认。因此与慢开始不同之处是它把 cwnd 值设置为慢开始门限 ssthresh 改变后的数值,然后开始执行拥塞避免算法(“加法增大”),使拥塞窗口缓慢地线性增大。
由于跳过了拥塞窗口 cwnd 从1起始的慢开始过程,所以被称为快恢复。快恢复算法的实现过程如图所示,作为对比,虚线为慢开始的处理过程。
在流量控制中,发送方发送数据的量由接收方决定,而在拥塞控制中,则由发送方自己通过检测网络状况来决定。实际上,慢开始、拥塞避免、快重传和快恢复几种算法是同时应用在拥塞控制机制中。四种算法使用的总结:在TCP连接建立和网络出现超时时,采用慢开始和拥塞避免算法;当发送方接收到冗余ACK时,采用快重传和快恢复算法。
TCP、UDP 区别
- TCP 是可靠传输;UDP 是不可靠传输
- TCP 是面向连接的;UDP 无连接
- TCP 是全双工通信,点到点;UDP 可以一对一,多对一,多对多
- TCP 传输速度相对 UDP 较慢
- TCP 有流量控制和拥塞控制;UDP 没有
- TCP 是重量级协议;UDP 是轻量级协议
- TCP 首部较长,20 字节;UDP 首部较短 8 字节
应用层
HTTP
万维网的大致工作过程
HTTP 定义了浏览器怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。
HTTP 的工作过程
浏览器要访问wwW服务器时,首先要完成对 www 服务器的域名解析。一旦获得了服务器的 IP 地址,浏览器就通过TCP向服务器发送连接建立请求。服务器会不断地监听 TCP 的端口 80(默认),当监听到连接请求后便与浏览器建立 TCP 连接。然后,浏览器就向服务器发送请求获取某个 Web 页面的 HTTP 请求。服务器收到请求后,将构建所请求 Web 页的必需信息,并通过 HTTP 响应返回给浏览器。浏览器再将信息进行解释,然后将 Web 页显示给用户。最后,TCP连接释放。
1、浏览器分析链接指向页面的 URL
2、浏览器向 DNS 请求解析 URL的 IP 地址。
3、域名系统 DNS 解析出服务器的 IP 地址。
4、浏览器与该服务器建立 TCP 连接(默认端口号为 80)。
5、浏览器发出 HTTP 请求。
6、服务器通过 HTTP 响应将所请求文件响应给浏览器。
7、释放 TCP 连接。
8、浏览器解释页面,并将 Web 页显示给用户。
HTTP 特点
- HTTP 基于 TCP 协议,可靠传输
- HTTP 无连接,虽然基于 TCP,但是通信双方不需要建立 HTTP 连接
- HTTP 是无状态的
- HTTP 支持非持久连接,也支持持久连接(HTTP1.1)
- HTTP 面向文本
HTTP 分为请求报文和响应报文
补充一些面试题
forward 和 redirect 的区别?
Forward 和 Redirect 代表了两种请求转发方式:直接转发和间接转发。
直接转发方式(Forward):客户端和浏览器只发出一次请求,Servlet、HTML、JSP 或其它信息资源,由第二个信息资源响应该请求,在请求对象 request 中,保存的对象对于每个信息资源是共享的。
间接转发方式(Redirect):实际是两次 HTTP 请求,服务器端在响应第一次请求的时候,让浏览器再向另外一个 URL 发出请求,从而达到转发的目的。
HTTP 方法有哪些?
客户端发送的 请求报文 第一行为请求行,包含了方法字段。
- GET:获取资源,当前网络中绝大部分使用的都是 GET;
- HEAD:获取报文首部,和 GET 方法类似,但是不返回报文实体主体部分;
- POST:传输实体主体
- PUT:上传文件,由于自身不带验证机制,任何人都可以上传文件,因此存在安全性问题,一般不使用该方法。
- PATCH:对资源进行部分修改。PUT 也可以用于修改资源,但是只能完全替代原始资源,PATCH 允许部分修改。
- OPTIONS:查询指定的 URL 支持的方法;
- CONNECT:要求在与代理服务器通信时建立隧道。使用 SSL(Secure Sockets Layer,安全套接层)和 TLS(Transport Layer Security,传输层安全)协议把通信内容加密后经网络隧道传输。
- TRACE:追踪路径。服务器会将通信路径返回给客户端。发送请求时,在 Max-Forwards 首部字段中填入数值,每经过一个服务器就会减 1,当数值为 0 时就停止传输。通常不会使用 TRACE,并且它容易受到 XST 攻击(Cross-Site Tracing,跨站追踪)。
- Delete:删除文件,与 PUT 功能相反,并且同样不带验证机制。
HTTPS 的工作过程?
1、 客户端发送自己支持的加密规则给服务器,代表告诉服务器要进行连接了;
2、 服务器从中选出一套加密算法和 hash 算法以及自己的身份信息(地址等)以证书的形式发送给浏览器,证书中包含服务器信息,加密公钥,证书的办法机构;
3、客户端收到网站的证书之后要做下面的事情:
- 验证证书的合法性;
- 如果验证通过证书,浏览器会生成一串随机数,并用证书中的公钥进行加密;
- 用约定好的 hash 算法计算握手消息,然后用生成的密钥进行加密,然后一起发送给服务器。
4、服务器接收到客户端传送来的信息,要做下面的事情:
- 4.1 用私钥解析出密码,用密码解析握手消息,验证 hash 值是否和浏览器发来的一致;
- 4.2 使用密钥加密消息;
5、如果计算法 hash 值一致,握手成功。
HTTP 和 HTTPS 的区别?
- 开销:HTTPS 协议需要到 CA 申请证书,一般免费证书很少,需要交费;
- 资源消耗:HTTP 是超文本传输协议,信息是明文传输,HTTPS 则是具有安全性的 SSL 加密传输协议,需要消耗更多的 CPU 和内存资源;
- 端口不同:HTTP 和 HTTPS 使用的是完全不同的连接方式,用的端口也不一样,前者是 80,后者是 443;
- 安全性:HTTP 的连接很简单,是无状态的;HTTPS 协议是由 SSL + HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 HTTP 协议安全
Cookie 和 Session 有什么区别?
存储位置不同
-
cookie的数据信息存放在客户端浏览器上。 -
session的数据信息存放在服务器上。
存储容量不同
存储方式不同
- cookie中只能保管ASCII字符串,并需要通过编码方式存储为Unicode字符或者二进制数据。
- session中能够存储任何类型的数据,包括且不限于string,integer,list,map等。
隐私策略不同
- cookie对客户端是可见的,别有用心的人可以分析存放在本地的cookie并进行cookie欺骗,所以它是不安全的。
- session存储在服务器上,对客户端是透明对,不存在敏感信息泄漏的风险。
有效期上不同
- 开发可以通过设置cookie的属性,达到使cookie长期有效的效果。
- session依赖于名为JSESSIONID的cookie,而cookie JSESSIONID的过期时间默认为-1,只需关闭窗口该session就会失效,因而session不能达到长期有效的效果。
服务器压力不同
- cookie保管在客户端,不占用服务器资源。对于并发用户十分多的网站,cookie是很好的选择。
- session是保管在服务器端的,每个用户都会产生一个session。假如并发访问的用户十分多,会产生十分多的session,耗费大量的内存。
浏览器支持不同
- cookie是需要客户端浏览器支持的,假如客户端禁用了cookie,或者不支持cookie,则会话跟踪会失效。关于WAP上的应用,常规的cookie就派不上用场了。
- 运用session需要使用URL地址重写的方式。一切用到session程序的URL都要进行URL地址重写,否则session会话跟踪还会失效。
|