java面试题《三、网络编程》
1.网络协议是什么?
按照规则交换数据,例如数据的格式、是否需要发送一个应答信息,这些规则被称为网络协议。
2.为什么要对网络协议分层?
简化问题难度和复杂度;灵活性好;易于实现和维护;促进标准化工作
3.TCP/IP的四层协议
应用层、运输层、网际层和网络接口层。
4.GET和POST区别
GET:从服务器上获取数据,也就是查,仅仅是获取服务器资源,不进行修改。
POST:向服务器提交数据,数据的更新,也就是更改服务器的数据。
区别:Get是 不安全的,因为在传输过程中,数据被放在请求的URL中;Post的所有操作对用户来说都是不可见的。
Get请求提交的url中的数据最多只是2048字节;Post请求则没有大小限制。
Get是form提交的默认方法,执行效率比post好;
Get产生一个TCP数据包;Post产生两个TCP数据包
5.什么是对称加密与非对称加密?
对称加密是指加密和解密使用的是同一个密钥,这种方式最大的问题是如何安全地将密钥发送给对方。
非对称加密是指使用一对非对称密钥,即公钥和私钥,用公钥进行加密,用私钥进行解密。
非对称加密更加安全,对称加密更加快。
6.什么是HTTP2?
HTTP1中浏览器限制了同一个域名下的请求数量;HTTP2中只通过一个TCP链接就可以传输所有请求数据。
7.Session、Cookie和token的主要区别?
cookie是保存在浏览器上的用户相关信息。客户端向服务器发送请求时,会收到服务器发送过来的Cookie,当浏览器再次请求时,服务器会检查该cookie。
session保存在服务器。浏览器发送请求时传输cookie包含sessionId,服务器根据sessionId获取会话中存储的信息。
token是服务器端生成的一串字符串,作为客户端请求的一个令牌,第一次登陆后,服务器生成一个token返回给客户端,以后客户端请求时只需带上token。
8.Servlet的生命周期。
(1)Web容器加载servlet并将其实例化后,Servlet生命周期开始,容器运行init()方法进行servlet的初始化。
(2)请求到达时调用servlet的service()方法,service方法会根据需要调用请求对应的doGet或者doPost等方法。
(3)当服务器关闭或者项目被卸载时,服务器会将Servlet实例销毁,此时会调用servlet的destroy方法。