1. 请说明Session和Cookie的作用和区别
1) Cookie 存在前端 前端需要拿着cookie访问后端,Session在服务器上(文件,数据库,如Redis)
2) web访问Server端-->server端对web信息加密生成Cookie返给web端,server端同时生成sessionId-->web带着cookie访问server端,server端进行验证
区别1:
1) cookie在客户端的头信息中
2) session在服务端存储,文件,数据库等都可以
区别2:
1) 一般来说session的验证需要cookie带一个字段来,表示这个用户是哪一个session,所以当客户端禁用cookie时,session失效
Cookie的总结:
1) cookie就是一小段的文本信息
2) 格式为key:value
3) cookie的值由服务端生成,客户端保存
2. 网路协议相关
网络协议分层-osi模型:
1) 应用层 :为应用程序提供服务
2) 表示层 :数据格式转化及机密操作
3) 会话层 :建立,管理和维护会话
4) 传输层 :建立,管理和维护端到端的连接
5) 网络层 :IP地址及路由选择
6) 数据链路层 :提供介质访问和链路管理
7) 物理层 :物理层,即物理设备
举例说明:
1) 老张向老王提供了一份货物及价格清单
2) 怕竞争对手公司看到给清单做了加密
3) 市场部整理后将报价清单放到收发室
4) 收发室将报价清单送到快递公司
5) 快递公司分发到不同的集散中心
6) 运输路线的规划及各集散中心访问方式
7) 通过汽车,火车,飞机等设备进行运输
osi五层协议及对应网络协议
1) 应用层(包括表示层,会话层):HTTP,HTTPS,FTP,SMTP
2) 传输层:TCP/UDP
3) 网络层: IP/ICMP
4) 数据链路层 : ARP/RARP
5) 物理层:MLT-3/PAM5
3.Http协议如何保证数据在传输过程中不丢失
Http三次握手
1) 客户端-->SYN=1(建立连接),Seq=x(随机产生的顺序号码)-->服务端
2) 服务端-->SYN=1,ACK=x+1(确认码),Seq=X(随机产生)-->客户端
3) 客户端-->SYN=1,ACK=Y+1(确认信息),Seq=z--->服务端
4) 建立连接,数据传输
Http四次挥手机制
1) 客户端 -->FIN=1(结束标语数据传完了可以关闭了),Seq=u-->服务端
2) 服务端 -->ack=u+1,Seq=v,ACK=1 --->客户端
3) 服务端 -->FIN=1,ack=u+1,Seq=w,ACK=1 -->客户端
4) 客户端 -->ack=w+1,Seq=u+1,ACK=1 -->服务端
5) 连接断开
4. 简要说明请求头中Accept\Accept-Encoding\Accept-language都代表了什么意思
HTTP协议信息头:常用请求头
1) Accept:这个头表示,浏览器告诉服务器它所支持的数据类型
2) Accept-Charset:这个头表示,浏览器告诉服务器它采用的字符集
3) Accept-Encoding:这个头表示,浏览器告诉服务器它所支持的压缩格式
4) Accept-language:这个头表示,浏览器告诉服务器它所采用的语言
5) Host:这个头便是,浏览器告诉服务器我想访问服务器哪台主机
6) If-Modified-Since:这个头表示,浏览器告诉服务器它缓存数据时间是多少
7) Referer:这个头表示,浏览器告诉服务器我是从哪个网页点过来的(防盗链)
8) User-Agent:这个头表示,浏览器告诉服务器我所使用的浏览器类型,版本等信息
9) Date : 这个头表示,浏览器告诉服务器我什么时间访问的
HTTP协议信息头:常用响应头
1) Location:告诉浏览器你去找谁,配合302状态码使用(转其他路径)
2) server :告诉浏览器服务器类型
3) Content-Encoding:告诉浏览器回送的数据采用的压缩格式
4) Content-Type:告诉浏览器回送的数据类型
5) Last-Modified:告诉浏览器数据的最后修改时间
6) Refresh:控制浏览器定时刷新
7) content-Disposition:告诉浏览器需要一下载方式打开回送的数据
8) Transfer-Encoding:告诉浏览器的数据是以分块形式回送的