1、TCP、UDP的区别
a. UDP是无连接的;TCP是面向连接的
b. UDP是不可靠传输;TCP是可靠传输
c. UDP是面向报文传输;TCP是面向字节流传输
d. UDP支持多对多交互通信;TCP只能是一对一通信
e. UDP首部开销小,仅8字节,TCP首部最小20字节,最大60字节
f. UDP适用于实时应用(直播等);TCP适用于要求可靠传输的应用(文件传输等)
2、HTTP和HTTPS的区别
a. HTTP是明文传输,而HTTPS是加密传输
b. HTTP的标准端口是80,而HTTPS的标准端口是443
c. HTTP不需要认证,而HTTPS需要认证
HTTPS在哪一层?HTTPS在应用层。
3、Cookie和Session的区别
a. Cookie是存储在客户端的,而Session是存储在服务器端的。
b. Cookie不适合存储敏感信息,它的数据可以被客户端修改或篡改,而Session数据存储在服务器端,更安全可靠。
c. Cookie用于存储轻量级的用户偏好或状态信息,而Session用于存储更敏感和重要的用户会话数据。
4、OSI网络七层协议模型
a. 物理层
b. 数据链路层
c. 网络层
d. 传输层
e. 会话层
f. 表示层
g. 应用层
5、TCP三次握手、四次挥手
TCP三次握手就类似于打电话,
第一步,你想和你的朋友通话,所以你打电话给他(发送同步序列号)。
第二步,你的朋友接听了电话,并告诉你他准备好和你通话了(朋友收到你的同步序列号,然后发送自己的同步序列号并确认)。
第三步,你收到朋友的回应后,确认可以开始交谈(你收到朋友的同步序列号,同时对方也确认你收到了信号)。
在这个过程中,你打电话给朋友(SYN),朋友接听电话并准备好了(SYN + ACK),然后你确认并开始交谈(ACK)。这就是三次握手,建立了一次通话。
四次挥手:
第一步,你和朋友交谈结束,你告诉他你要挂断电话了。(FIN-结束的标志)
第二步,你的朋友收到你的消息后,确认他也准备挂断电话了。(ACK)
第三步,朋友挂断了电话,并告诉你他已经完成了挂断。(FIN-结束的标志)
第三步,你收到朋友的挂断消息后,也挂断了电话。(ACK)
6、为什么三次握手?
三次握手是为了确保通信的可靠性和数据的完整性。在三次握手过程中,客户端和服务器之间通过交换序列号和确认号来确认彼此的收发能力和初始序列号,并建立起可靠的通信连接。第一次握手客户端发送SYN标志的数据包给服务器,第二次握手服务器收到客户端的SYN后,回复一个带有SYN/ACK标志的数据包给客户端,表示自己已准备好通信,第三次握手客户端收到服务器的SYN/ACK后,再发送一个带有ACK标志的数据包给服务器,确认连接已建立。通过三次握手,确保了双方的通信状态同步,防止了因网络延迟或丢包而导致的通信问题,从而保证了数据的可靠传输。
7、浏览器输入URL到页面展现的整个过程
执行 DNS 域名解析;
封装 HTTP 请求数据包;
封装 TCP 请求数据包;
建立 TCP 连接(3 次握手);
参数从客户端传递到服务器端;
服务器端得到客户端参数之后,进行相应的业务处理,再将结果封装成 HTTP 包,返回给客户端;
服务器端和客户端的交互完成,断开 TCP 连接(4 次挥手);
浏览器通过自身执行引擎,渲染并展示最终结果给用户。
8、常见状态码以及它们的含义
状态码 | 解释 |
---|---|
200 | 访问正常 |
307 | 重定向 |
401 | 未授权,需要身份认证 |
403 | 服务端禁止访问 |
404 | 请求资源找不到,例如URL写错 |
405 | 请求方法不允许 |
5xx | 服务端内部问题 |
9、get和post的区别
a. get和post请求都是客户端向服务器提交的一种请求方式
b. get是明文传输参数、倾向于请求服务器资源。比如打开网站
c. post传输数据不可见,安全性高,倾向于向服务器提交数据,比如注册等