# 2021 计算机网络安全

# 1.Get 和 Post 的区别

结构:get 有请求体,post没有请求体

应用场景:get 用于获取数据,post用于提交数据;

缓存:get 的缓存保存在浏览器和web服务器日志中;

传输方式:get 使用明文传输,post请求保存在请求体中;

请求长度:get 长度限制在2kb以内。

# 2.常见的HTTP请求

get、post、put、delete、head

# 3.http1.0 / http1.1 / http2.0 之间有哪些区别?

http1.0 浏览器与服务器只保持短暂的连接,每次请求都需要向,服务器建立一个TCP连接;

http1.0 存在宽带资源浪费的现象,例如只需要某个对象的一部分,而服务器却把整个对象传输过来;

http1.1 支持长链接,默认开启了keep-alive ,弥补了http1.0每次传输都需要创建链接的问题;

http1.1 使用持久连接来时多个HTTP请求复用同一个TCP连接;

http1.1 支持管道传输 ,一个请求发出去,不必等它回来,就可以发送第二次;

http1.1 引入了更多的缓存策略 Etag 、If-Match、if-None-Match

http1.1 中新增了 host 字段,用来指定服务器的域名。

二进制分帧、多路复用、数据流、头部压缩、基于HTTPS相对安全、服务器推送

http2.0 使用二进制协议,头部信息和数据体都是二进制,统称为'帧';

http2.0 使用多路复用TCP连接,客户端和服务端可以同时发送多个请求;

http2.0 将每个请求和回应都标记一个数据流ID;

http2.0 头部使用gzip 和 compress 压缩头部信息,在客户端和服务器之间共同维护一张头信息索引表,每次请求只发送索引号,就能找到相应的头部信息表;

http2. 0 服务端不再是被动响应,可以主动向客户端发送消息

# 5.浏览器中输入www.baidu.com 发生了什么?

(1)、首先判断输入的url是一个合法的连接还是待搜索关键词,如果是个合法的url 👇;

(2)、就进行缓存判断,如果浏览器中有缓存资源,则直接访问缓存资源;如果没有,则开始👇;

(3)、DNS解析客户端本地DNS服务器发送一个请求,查看是否存在缓存,有就直接访问;

​ 如果没有,就向根域名服务器发送请求,根域名服务器发现是.com或者.cn后缀的域名;

​ 就交给顶级域名服务器,顶级域名服务器返回baidu.com域名信息;

​ 并让本地DNS转向访问权威域名服务器,权威域名服务器返回www .baidu. com对应的IP地址,

​ 同时本地DNS缓存该ip地址,客户端收到IP地址后进行访问。

(4)、CDN(内容分发网络)

​ 如果服务器使用了CDN,DNS返回的不再是IP地址,而是CNAME别名,指向全局均衡CNAME;

​ 浏览器发送url给DNS服务器,DNS进行域名解析,解析发现该url有一个CDN专用的DNS服务器

​ DNS会将解析权交给CNAME指向的CDN专用DNS服务器CDN专用DNS服务器将IP返回给浏览器;

浏览器CDN全局负载均衡服务器发起请求,CDN全局负载均衡服务器根据IP;

​ 找到距离用户最近的区域负载均衡服务器,选择合适的缓存服务器响应用户的请求。

Image

(5)、TCP三次握手

​ 第一次握手,客户端向服务器发送一个SYN的报文,并初始化序列 ISN;

​ 第二次握手,服务端收到客户端的SYN后,将ISN+1作为自己的ACK值,并以自己的SYN作为应答;

​ 第三次握手,客户端收到服务端的SYN后,向服务端发送一个ACK报文,值为ISN+1,服务器收到后双方就建立了连接。

🌰为什么是三次握手?不是两次、四次?

​ 三次握手可以阻止重复 历史连接的初始化(主要原因);

​ 三次握手可以同步双方的初始序列号

​ 三次握手可以避免资源浪费

🌰SYN是什么?ACK又是什么?

(5)、页面渲染:浏览器将html解析成DOM树,将css解析成CSSOM树,结合DOM树和CSSOM树生成渲染树。接着解析

最后更新时间: 6/20/2022, 10:48:50 PM