1.OSI模型以及理解
从下到上分为:
物理层:为设备之间的信息传输提供可靠环境。简单的就是光纤之类的。
数据链路层:提供数据的传送服务。基本来说,它的传输单位是桢
网络层 :路由器
传输层:
会话层:
表示层:
应用层:
2.TCP/IP模型把OSI模型从7层简化到了4层
数据链路(对应1-2层) 网络(3)--IP 传输(4)--TCP 应用(5-7)
3.TCP与UDP(用户数据报协议)的区别
TCP:面向连接,可靠的,速度慢,效率低。
UDP:无连接、不可靠、速度快、效率高。
4.Http1.1和Http1.0的区别
长连接:在1.0 的时候需要使用keep-alive来告知服务器建立长连接,而1.1默认支持。作用:HTTP是基于TCP/IP协议的,创建一个TCP连接是需要经过三次握手的,有一定的开销,如果每次通讯都要重新建立连接的话,对性能有影响。因此最好能维持一个长连接,可以用个长连接来发多个请求。HOST域:HTTP1.0是没有host域的,HTTP1.1才支持这个参数。
5. http基于浏览器的缓存
6. TCP的三次握手与四次挥手过程,各个状态名称与含义
三次握手:
第一次:客户端向服务器端发送SYN标识符,服务器接收到后,客户端状态变为SYN_SENT。
第二次:服务器端向客户端返回SYN+ACK标识符,服务端此时状态变为SYN_RECV
第三次:客户端接收到信息,向服务器端发送ACK,服务器接收后确认OK,此时双方的状态为ESTABLISHED。
CLOSED:初始状态,表示连接关闭
LISTEN:表示可以接受连接
SYN_SENT:表示客户端已发送SYN报文
SYN_RECV:表示接受到了SYN报文
ESTABLISHED:表示连接已经建立了
四次挥手:
第一次:客户端给服务端发送FIN,请求断开连接
第二次:服务端收到FIN给客户端发送ACK确认,关闭接收通道。客户端收到FIN确认后关闭发送通道
第三次:服务端发送FIN给客户端
第四次:客户端收到FIN后给服务端ACK确认,然后客户端关闭接收通道。服务端收到确认后关闭发送通道。
CLOSE_WAIT:等待关闭,服务器的状态
FIN_WAIT_1:当Socket在已经连接的状态时主动关闭连接,向对方发送了FIN报文。是指客户端的状态
FIN_WAIT_2:表示半连接,挥了两次手的状态等待对方的Fin报文。客户端的状态
TIME_WAIT:TCP协议中主动关闭连接的一方要处于TIME_WAIT状态。客户端的状态
LAST_ACK:被动关闭一方在发送FIN报 文后,最后等待对方的ACK报文。服务端的状态
CLOSED:已经完全关闭。双方的状态
Java中的session存储
创建:sessionid第一次产生是在直到某server端程序调用 HttpServletRequest.getSession(true)这样的语句时才被创建。
删除:超时;程序调用HttpSession.invalidate();程序关闭。
session存放在哪里:服务器端的内存中。【5】不过session可以通过特殊的方式做持久化管理(memcache,redis)。
session的id是从哪里来的,sessionID是如何使用的:当客户端第一次请求session对象时候,服务器会为客户端创建一个session,并将通过特殊算法算出一个session的ID,用来标识该session对象。