1.网络通讯
TCP和UDP区别
TCP(传输控制协议):是一种面向连接(连接导向)、可靠、基于IP的传输协议
UDP(用户数据报协议):是OSI参考模型中的传输协层协议,是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。
类别 | TCP 传输控制协议 | UDP 数据报协议 |
是否连接 | 面向连接(基于字节流) | 否 |
传输可靠性 | 可靠 | 不可靠 |
应用场合 | 少量数据 | 传大量数据(大小应限制在64k以内) |
速度 | 慢 | 快 |
HTTP协议:客户端和服务器之间的数据传输的格式规范,格式简称为‘超文本传输协议’,默认端口号是8080;
是基于请求与响应模式的,无状态的,应用层协议,基于TCP的连接方式
TCP的三次握手?
为准确无误的把数据传输到目标,TCP协议采用了三次握手的策略,三次握手的目的是建立可靠的通信信道,说到通讯,简单来说就是数据的发送与接收,而三次握手最主要的目的就是 双方确认自己与对方的发送与接收是正常的。
SYN:同步序列编号(Synchronize Sequence Numbers)。是TCP/IP建立连接时使用的握手信号。
第一次握手:客户端给服务器发送一个SYN。客户端发送网络包,服务端收到了。服务器得出结论:客户端的发送能力,服务端的接收能力正常
第二次握手:服务端收到SYN报文之后,会应答一个SYN+ACK报文。服务端发包,客户端收到了。客户端得出结论:服务端的接收和发送能力,客户端的接收和发送能力正常。但是此时服务端不能确认客户端的接收能力是否正常。
第三次握手;客户端收到SYN+ACK报文之后,回应一个ACK报文。客户端发包,服务端收到了。服务器得出结论:客户端的接收和发送能力,自己的接收发送能力都正常。
通过三次握手,双方都确认对方的接收以及发送能力正常
HTTP中重定向和请求转发的区别?
本质区别:转发是服务器行为,重定向是客户端行为。
重定向特点:两次请求,浏览器地址发生变化,可以访问自己 web 之外的资源,传输的数据会丢失。
请求转发特点:一次强求,浏览器地址不变,访问的是自己本身的 web 资源,传输的数据不会丢失。
实现:
转发:用request的getRequestDispatcher()方法得到ReuqestDispatcher对象,调用forward()方法 request.getRequestDispatcher("other.jsp").forward(request, response);
重定向:调用response的sendRedirect()方法 response.sendRedirect("other.jsp");
重定向 | 请求转发 |
2次请求 | 1次请求 |
地址栏会变 | 地址栏不变 |
浏览器跳转 | 服务器跳转 |
可以跳到任意网址 | 只能跳到当前项目 |
GET 和POST区别?
GET | POST | |
安全性 | 不安全 | 安全 |
传输的数据 | 数据量少 一般传输数据大小不超过2k-4k(根据浏览器不同,限制不一样,但相差不大这主要是因为受URL长度限制 | 数据量大 Post传送的数据量较大,一般被默认为不受限制 |
限制 | t限制Form表单的数据集的值必须为ASCII字符 | 支持整个ISO10646字符集 |
执行效率 | Get执行效率却比Post方法好。Get是form提交的默认方法。 |
cookie和session的区别?
cokie | session | |
存储位置 | cookie的数据信息存放在客户端浏览器上 | session的数据信息存放在服务器上 |
存储容量 | 单个cookie保存的数据<=4KB,一个站点最多保存20个Cookie | session来说并没有上限,但出于对服务器端的性能考虑,session内不要存放过多的东 西,并且设置session删除机制 |
存储方式 | cookie中只能保管ASCII字符串,并需要通过编码方式存储为Unicode字符或者二进制数据 | session中能够存储任何类型的数据,包括且不限于string,integer,list,map等 |
隐私策略 | cookie对客户端是可见的,别有用心的人可以分析存放在本地的cookie并进行cookie欺骗,所以cookie是不安全的。 | session存储在服务器上,不存在敏感信息泄漏的风险 |
有效期上限 | 开发可以通过设置cookie的属性,达到使cookie长期有效的效果 | session依赖于名为JSESSIONID的cookie,而cookie JSESSIONID的过期时间默认为-1,只需关闭窗口该session就会失效,因而session不能达到长期有效的效果。 |
服务器压力 | cookie保管在客户端,不占用服务器资源。对于并发用户十分多的网站,cookie是很好的选择。 | session是保管在服务器端的,每个用户都会产生一个session。假如并发访问的用户十分多,会产生十分多的session,耗费大量的内存。 |