(1)网络七层模型,TCP/IP模型
(2)UDP 与 TCP 区别
-
TCP 有连接;UDP 无连接(基于无状态传输);
-
TCP 需要建立三次握手,含有确认、拥塞、重传机制,对系统资源要求多;
-
UDP 不需要一系列复杂认证,速度快;TCP 速度慢;
-
TCP 含有确认机制,数据可靠,有序;UDP 不可靠,无序;
-
TCP 面向字节流(流模式);UDP 面向报文(数据报模式);
(3)HTTP 与 HTTPS 区别
-
端口:http 80 ;https 443;
-
资源:https 需要加解密需要消耗更多 CPU 内存;
-
安全:https 需要认证证书,http 无法验证身份;
(4)HTTPS 的通信加解密过程,证书为什么更安全
HTTPS 含有证书,CA 证书需层层认证,用上层公钥解开 CA 的 hash 签名获取 hash 值;且与权威机构存储 hash 值对比,判断认证可信;
过程:
-
客户端使用 HTTPS 的 URL 访问服务器,要求建立 SSL 连接,发送相关数据及随机数给服务端
-
服务端收到请求,发送相关数据,随机数,证书信息(含公钥)给客户端
-
客户端校验证书,生成随机数 pre-master,并用服务器公钥进行加密,发送已加密随机数 pre-master 与客户端证书给服务端
-
服务端校验证书
-
客户端,服务端通过对端随机数,已方随机数,pre-master推算出对称密钥
-
通过对称密钥加密传输
(5)http1.0与https1.1有什么区别
-
http1.0为短连接;http1.1请求头携带connetion:keep-alive,建立长链接
-
http1.0一个连接对应一个请求一个响应;1.1连接过程中可实现多个请求多个响应,且不需等待响应可发送下一个请求
-
http1.1增加了100状态码,允许客户端向服务端发送请求头待确认后再发送请求体内容,节省了带宽
-
http1.0认为一个主机拥有唯一IP;http1.1中一个IP对应多个主机,增加了host指明主机名
-
http1.1增加更多新请求头,错误响应状态码与缓存机制
(6)get和post区别
-
GET 请求参数在 URL 中;POST 请求参数放在请求正文中
-
GET 请求参数有限制(例如浏览器对 URL 长度限制);POST 无限制
-
GET 参数存放在链接中直接保存在浏览器历史记录中,较不安全
-
GET 大多数用于信息获取,POST 用于信息修改,对服务器安全影响程度不同
(7)session,token,cookies 区别
-
Cookie:由服务器生成,保存在客户端中
-
Session:一般通过Cookie传输,用于区分用户,存储在服务器中(容易占用服务器资源,且服务器故障,负载均衡等容易丢失或请求到其他服务器中)
-
Token:一般通过Cookie传输,将用户数据进行签名(加密),并将签名和用户数据整合成token发送给客户端,客户端携带token请求时,将token中用户数据再次签名,与token中的签名进行对比,一致认为用户已认证登录,不需要存储在服务器中
(8)请求一个网址发生的完整过程
-
DNS解析:通过浏览器缓存->操作系统缓存->路由器缓存->DNS缓存(运营商)->根域名服务器
-
建立TCP连接,发起三次握手
-
发送HTTP请求
-
服务器处理请求
-
浏览器解析渲染页面:
-
浏览器读取响应加载 HTML
-
静态资源加载
-
动态资源加载
-
-
释放TCP连接,四次挥手
(9)常见网络状态响应码
-
1XX 指示信息,请求已接受,等待继续处理
-
2XX 请求接受
-
3XX 重定向
-
4XX 客户端错误
-
5XX 服务端错误
-
301 永久性转移,302 暂时性转移,400 客户端请求有错(安全拦截),401 请求未授权,403 禁止访问,404 资源未找到
-
501 服务器内部错误,502 错误网关,503 服务器不可用,504 网关超时