主题 | 链接 |
---|---|
Java基础知识 | 面试题 |
Java集合容器 | 面试题 |
Java并发编程 | 面试题 |
Java底层知识 | 面试题 |
Java常用框架 | 面试题 |
计算机网络 | 面试题 |
数据库 | 面试题 |
RabbitMQ | 面试题 |
Redis | 面试题 |
Elasticsearch | 面试题 |
Zookeeper | 面试题 |
系统设计 | 面试题 |
文章目录
-
- 在浏览器地址栏输入一个URL后回车,执行的全部过程
- tcp、udp、http、https等常用协议
- OSI七层模型
- TCP 特点
- 三次握手与四次关闭
- 为什么连接的时候是三次握手,关闭的时候却是四次握手?
- 为什么TIME_WAIT状态需要经过2MSL(最大报文段生存时间)才能返回到CLOSE状态?
- 为什么不能用两次握手进行连接?
- 如果已经建立了连接,但是客户端突然出现故障了怎么办?
- TCP 可靠原理
- 流量控制和拥塞控制
- tcp粘包与拆包
- HTTP1.0
- HTTP1.1
- HTTPS与HTTP的一些区别
- HTTPS加密过程:
- HTTP 2.0
- http中 get和post区别
- 既然post有这么多优点,那我们为什么要使用get?
- 常见的web请求返回的状态码
- http/3
- cookie 与 session
- cookie被禁用,如何实现session
- 进程间通讯的方式
- 什么是CDN?如果实现?
- 什么是正向代理、反向代理?
在浏览器地址栏输入一个URL后回车,执行的全部过程
- 识别URL
- 查找本地hosts文件
2.1. 询问本地域名服务器
2.2. 询问根域名服务器 - 建立TCP连接
- 发起HTTP请求
- 服务器响应HTTP请求, 返回资源文件
- TCP连接释放
- 浏览器渲染页面
tcp、udp、http、https等常用协议
1.HTTP(Hypertext Transfer Protocol) 超文本传输协议(80)
1).无状态(cookie/session keep-alive)
2).无连接
3).基于请求和响应
4).简单灵活
5).通信使用明文
2.HTTPS(Hypertext Transfer Protocol Secure)超文本传输安全协议(443)
1).HTTP+SSL(Netscape的安全套接层)
a).SSL((Secure Sockets Layer) 安全套接层(40-128)
b).TLS(Transport Layer Security) 传输层安全
2).数据加密(SSL);身份认证(CA证书[采用非对称加密])
3.TCP(Transmission Control Protocol)传输控制协议
1).面向连接
2).可靠传输的情况, 应用于文件传输, 重要状态更新等场景
3).传输大量数据
4).传输慢
4.UDP(User Data Protocol)用户数据协议
1).面向非连接
2).高速传输和实时性要求较高的通信领域(可靠性需要应用层控制)
3).传输少量数据
4).传输快
5.Socket(程序通过一个双向的通信连接实现数据的交换,连接的一端称为一个socket)(API)
1).socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口
2).连接过程:服务器监听,客户端请求,连接确认
3).优势与劣势
A).优势:
a).传输数据为字节级,传输数据可自定义,数据量小
b).传输数据时间短,性能高
c).适合于客户端和服务器端之间信息实时交互
d).可以加密,数据安全性强
B).劣势:
a).需对传输的数据进行解析,转化成应用级的数据
b).相对于HTTP协议传输,增加了开发量
c).对开发人员的开发水平要求高
4).基于Socket传输的特点其适用于对传输速度,安全性,实时交互,费用等要求高的应用中,如网络游戏,手机应用,银行内部交互等
6.TCP/IP(TCP/IP Protocol Suite)TCP/IP协议族
1).四层模型
a).应用层 有FTP、HTTP、TELNET、SMTP、DNS等协议
b).传输层 有TCP协议与UDP协议
c).网络层 有IP协议、ICMP协议、ARP(地址解析)协议、RARP(反向地址解析)协议和BOOTP协议
d).网络接口层 有FDDI、Ethernet、Arpanet、PDN、SLIP、PPP、IEEE802.1A、IEEE802.2-IEEE802.11
2).五层模型
a).应用层 有FTP、HTTP、TELNET、SMTP、DNS等协议
b).传输层 有TCP协议与UDP协议
c).网络层 有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议
d).数据链路层 有FDDI、Ethernet、Arpanet、PDN、SLIP、PPP
e).物理层 有IEEE802.1A、IEEE802.2- IEEE802.11等协议
OSI七层模型
应用层
应用层的协议定义了应用进程之间通信和交互的规则,主要包括了域名系统 DNS、支持万维网的 HTTP协议、支持电子邮件的 SMTP 协议、文件传输协议 FTP 等。
域名解析系统 DNS
- 主机向本地域名服务器的查询一般都采用递归查询,递归查询指如果主机所询问的本地域名服务器不知道被查询域名的 IP 地址,那么本地域名服务器就以 DNS 客户的身份向其他根域名服务器继续发出查询请求报文。递归查询的结果是要查询的 IP 地址,或者是报错,表示无法查询到所需的 IP 地址。
- 本地域名服务器向根域名服务器查询通常采用迭代查询,迭代查询指当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的
IP 地址,要么告诉它该向哪一个域名服务器进行查询。本地域名服务器也可以采用递归查询,这取决于最初的查询请求报文设置的查询方式。
文件传送协议 FTP
- FTP 使用 TCP 可靠的运输服务,FTP 使用客户服务器方式,一个 FTP服务器进程可以同时为多个客户进程提供服务、
- 在进行文件传输时,FTP 的客户和服务器之间要建立两个并行的 TCP连接:控制连接和数据连接,实际用于传输文件的是数据连接。
运输层
运输层的任务就是负责向两台主机中进程之间的通信提供通用的数据传输服务,运输层主要使用两种协议