客户端|这可能是你见过最全面的网络安全面试题了——入门篇( 五 )


GET 请求会被浏览器主动缓存 , 而 POST 不会 , 除非手动设置 。
GET 是幂等的 , 而 POST 不是幂等的
Cookies 和 session 区别Cookie 和 Session 都是客户端与服务器之间保持状态的解决方案
1 , 存储的位置不同
cookie:存放在客户端 , session:存放在服务端 。 Session 存储的数据比较安全
2 , 存储的数据类型不同
两者都是 key-value 的结构 , 但针对 value 的类型是有差异的cookie:value 只能是字符串类型 , session:value 是 Object 类型3 , 存储的数据大小限制不同
cookie:大小受浏览器的限制 , 很多是是 4K 的大小 ,session:理论上受当前内存的限制 ,
4 , 生命周期的控制
cookie 的生命周期当浏览器关闭的时候 , 就消亡了
(1)cookie 的生命周期是累计的 , 从创建时 , 就开始计时 , 20 分钟后 , cookie 生命周期结束
(2)session 的生命周期是间隔的 , 从创建时 , 开始计时如在 20 分钟 , 没有访问 session , 那么 session 生命周期被销毁
session 的工作原理?session 的工作原理是客户端登录完成之后 , 服务器会创建对应的 session , session 创建完之后 , 会把 session 的 id 发送给客户端 , 客户端再存储到浏览器中 。 这样客户端每次访问服务器时 , 都会带着 sessionid , 服务器拿到 sessionid 之后 , 在内存找到与之对应的 session , 这样就可以正常工作了 。
一次完整的 HTTP 请求过程域名解析 --> 发起 TCP 的 3 次握手 --> 建立 TCP 连接后发起 http 请求 --> 服务器响应 http请求 , 浏览器得到 html 代码 --> 浏览器解析 html 代码 , 并请求 html 代码中的资源(如 js、css、图片等) --> 浏览器对页面进行渲染呈现给用户 。
HTTPS 和 HTTP 的区别1.HTTP 协议传输的数据都是未加密的 , 也就是明文的 , 因此使用 HTTP 协议传输隐私信息非常不安全 ,HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议 , 要比 http 协议安全 。

  1. https 协议需要到 ca 申请证书 , 一般免费证书较少 , 因而需要一定费用 。
3.http 和 https 使用的是完全不同的连接方式 , 用的端口也不一样 , 前者是 80 , 后者是 443 。
OSI 的七层模型都有哪些?物理层:利用传输介质为数据链路层提供物理连接 , 实现比特流的透明传输 。
数据链路层:接收来自物理层的位流形式的数据 , 并封装成帧 , 传送到上一层
网络层:将网络地址翻译成对应的物理地址 , 并通过路由选择算法为分组通过通信子网选择最适当的路径 。
传输层:在源端与目的端之间提供可靠的透明数据传输
会话层:负责在网络中的两节点之间建立、维持和终止通信
表示层:处理用户信息的表示问题 , 数据的编码 , 压缩和解压缩 , 数据的加密和解密
应用层:为用户的应用进程提供网络通信服务
http 长连接和短连接的区别在 HTTP/1.0 中默认使用短连接 。 也就是说 , 客户端和服务器每进行一次 HTTP 操作 , 就建立一次连接 , 任务结束就中断连接 。 而从 HTTP/1.1 起 , 默认使用长连接 , 用以保持连接特性 。 什么是 TCP 粘包/拆包?发生原因?解决方案 一个完整的业务可能会被 TCP 拆分成多个包进行发送 , 也有可能把多个小的包封装成一个大的数据包发送 , 这个就是 TCP 的拆包和粘包问题 。 原因:
  1. 应用程序写入数据的字节大小大于套接字发送缓冲区的大小.2. 进行MSS 大小的 TCP 分段 。 ( MSS=TCP 报文段长度-TCP 首部长度)3. 以太网的 payload 大于 MTU进行 IP 分片 。 ( MTU 指:一种通信协议的某一层上面所能通过的最大数据包大小 。 )