1.什么是OSI七层模型?什么是TCP/IP模型?它们之间有什么联系
OSI七层模型,Open System Interconnection。参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,一般称为OSI参考模型或七层模型。
TCP/IP模型,Transmission Control Protocol/Internet Protocol,称为传输控制和网际协议是指能够在多个不同网络间实现信息传输的协议簇。

OSI只是是一种理论模型,而TCP/IP模型是事实上的工业标准。就好比编程中接口与实现类之间的关系。
2.TCP与UDP的区别

3.TCP三次握手与四次挥手的区别
三次握手(Three-way Handshake),是指建立一个TCP连接时,需要客户端和服务器总共发送3个报文。
四次挥手(Four-Way Wavehand),是指终止一个TCP连接时,需要客户端和服务端总共发送4个包以确认连接的断开。
简单说三次握手是建立连接,四次挥手是断开连接。

4.Http和Https的区别 - HTTP 是超文本传输协议,信息是明文传输,存在安全风险的问题。HTTPS((SSL+HTTP))则解决HTTP不安全的缺陷,在 TCP 和 HTTP 网络层之间加入了 SSL/TLS 安全协议,使得报文能够加密传输。 - HTTP 连接建立相对简单, TCP 三次握手之后便可进行 HTTP 的报文传输。而 HTTPS 在 TCP 三次握手之后,还需进行 SSL/TLS 的握手过程,才可进入加密报文传输。 - HTTP 的端口号是 80,HTTPS 的端口号是 443。 - HTTPS 协议需要向 CA(证书权威机构)申请数字证书,来保证服务器的身份是可信的。
5.什么是加密算法?MD5是加密算法吗?
加密算法一定是用于加密和解密,加密技术是对信息进行编码和解码的技术,编码是把原来可读信息(又称明文)编译成代码形式(又称密文),其逆过程就是解码(解密),加密技术的要点就是加密算法。
常见的加密算法有对称加密算法,非对称加密算法,哈希算法,数字签名等几类。
MD5是一种摘要算法,不是加密算法。因为MD5算法虽然可以将信息转换为另外一种内容,但是MD5算法是不可逆的,无法还原原始信息。
MD5主要应用是数字签名和信息校验。
6.HTTP长连接和短连接的区别
在HTTP/1.0中,默认使用的是短连接。也就是说,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接。
从HTTP/1.1起,默认使用长连接。在长连接的情况下,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭。如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接。并且会在响应头加入这行代码:Connection:keep-alive
HTTP协议的长连接和短连接,实质上是TCP协议的长连接和短连接。
7.数字签名与数字证书的区别
数字签名是使用数字证书与信息加密技术、用于鉴别电子数据信息的技术,可通俗理解为加盖在电子文件上的“数字指纹”,类似日常生活中的手写签名。
数字证书是由权威公证的第三方认证机构(即CA,Certificate Authority)负责签发和管理的、个人或企业的网络数字身份证明。
二者的区别是:数字签名是签署意愿的证明,而数字证书是签署身份的证明。
8.IPV4与IPV6的区别
地址空间不同:IPv4中规定IP地址长度为32,IPv6中IP地址的长度为128。 安全性不同:IPV6集成了Internet协议安全标准因此比IPV4更安全。
更多区别对比见下表:

9.说说BIO/NIO/AIO的区别
BIO: (Blocking I/O),称为传统阻塞型,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销。

NIO: (New I/O),同步非阻塞,服务器实现模式为一个线程处理多个请求(连接),即客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有I/O请求就进行处理。

AIO:(Asynchronous I/O),称为异步非阻塞,服务器实现模式为一个有效请求一个线程,客户端的I/O请求都是由操作系统先完成了再通知服务器应用去启动线程进行处理,一般适用于连接数较多且连接时间较长的应用。主要用到了AsynchronousServerSocketChannel,目前因操作系统无法友好的支持,所以尚未普及。
BIO/NIO/AIO 三者对比:

10.HTTP状态码是怎么分类的,有哪些常见的状态码?
HTTP状态码的英文为HTTP Status Code,表示网页服务器超文本传输协议响应状态的3位数字代码。
常见的状态码见下表:
