文章目录
计算机网络
1. HTTP与HTTPS的区别
文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。
为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS,为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL/TLS协议,SSL/TLS依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
HTTPS协议是由SSL/TLS+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全
HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。
HTTPS和HTTP的主要区别
1、https协议需要到CA申请证书,一般免费证书较少,因而需要一定费用。
2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl/tls加密传输协议。
3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4、http的连接很简单,是无状态的;HTTPS协议是由SSL/TLS+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
2. HTTP状态码
HTTP状态码分类
常用状态码
-
200:表示服务器响应成功,服务器已把正确信息返回给客户端
-
201 :Created ,请求被成功处理并且在服务端创建了一个新的资源。比如我们通过 POST 请求创建一个新的用户。
-
202 : Accepted,服务端已经接收到了请求,但是还未处理。
-
204 : No Content,服务端已经成功处理了请求,但是没有返回任何内容。
-
301:永久重定向,表示请求资源已永久转移至新的URI。浏览器会自动定向到新的URI
-
302:临时跳转,与301类似。但资源只是临时被移动。客户端应继续使用原有URI
-
304:未修改,可以告诉客户端请求资源成功,但这个资源并非服务器返回的,而是存在本地浏览器缓存中的内容
-
400 : Bad Request, 发送的HTTP请求存在问题。比如请求参数不合法、请求方法错误。
-
401: Unauthorized , 未认证却请求需要认证之后才能访问的资源。
-
403:Forbidden,服务器拒绝处理当前请求。一般针对非法请求
-
404:Not Found,服务器没有该资源
-
500:服务器内部错误。通常由于服务器内程序出错导致
-
502 :Bad Gateway ,我们的网关将请求转发到服务端,但是服务端返回的却是一个错误的响应。
3. TCP首部,三握四挥的细节
https://zhuanlan.zhihu.com/p/108504297
3.1 TCP首部
首先,上一层向下层传输数据需要添加首部:
TCP首部组成如图所示:
- TCP端口号:两个16位,存储源端口号与目标端口号
- 32位序号seq:用来保证发送数据的有序性
- 32位确认号ack:对上一次seq作出的确认号,用来响应TCP报文段
- TCP标志位:标志位
- SYN:同步标志位
- ACK:确认标志位
- FIN:完成标志位
- PSH:推送标志位
- RST:重置标志位
- URG:紧急标志位
3.2 三次握手
3.3 四次挥手
4. TCP/IP与OSI模型
- 应用层:两个终端设备的应用程序之间信息交换
协议:HTTP, FTP, DNS, SSH, SMTP, DHCP(动态主机配置协议), IMAP - 传输层:建立端口到端口的通信,保证数据的可靠传输与流控制
协议:TCP, UDP - 网络层:建立主机到主机的通信,负责数据包的路由与转发,作用于整个网络
协议:IP, ICMP, ARP(IP转MAC) - 网络接口层:包含的数据链路层负责节点之间一段一端的传输;物理层负责对物理介质差异的屏蔽
5. Tomcat为什么要用自定义类加载器?
如果多个应用有重名的情况,那么用默认的类加载器AppClassLoader就无法加载重名的类了。
Tomcat为每个应用都生成一个类加载器实例WebAppClassLoader,从而达到应用间的类隔离