千锋教育web前端高频面试题视频教程,kerwin大话前端面试秘籍(附答案)

简述 web 前端 cookie 机制?
Cookie 是进行网站用户身份,实现服务端 Session 会话持久化的一种非常好方式。Cookie 最
早由 Netscape 公司开发,现在由 IETF 的 RFC 6265 标准备对其规范,已被所有主流浏览器
所支持
1、为什么需要 Cookie
HTTP 是一种无状态的协议,客户端与服务器建立连接并传输数据,数据传输完成后,连接
就会关闭。再次交互数据需要建立新的连接,因此,服务器无法从连接上跟踪会话,也无
法知道用户上一次做了什么。这严重阻碍了基于 Web 应用程序的交互,也影响用户的交互
体验。如:在网络有时候需要用户登录才进一步操作,用户输入用户名密码登录后,浏览
了几个页面,由于 HTTP 的无状态性,服务器并不知道用户有没有登录
Cookie 是解决 HTTP 无状态性的有效手段,服务器可以设置或读取 Cookie 中所包含的信息。
当用户登录后,服务器会发送包含登录凭据的 Cookie 到用户浏览器客户端,而浏览器对该
Cookie 进行某种形式的存储(内存或硬盘)。用户再次访问该网站时,浏览器会发送该 Cookie
(Cookie 未到期时)到服务器,服务器对该凭据进行验证,合法时使用户不必输入用户名
和密码就可以直接登录
本质上讲,Cookie 是一段文本信息。客户端请求服务器时,如果服务器需要记录用户状态,
就在响应用户请求时发送一段 Cookie 信息。客户端浏览器保存该 Cookie 信息,当用户再次
访问该网站时,浏览器会把 Cookie 做为请求信息的一部分提交给服务器。服务器检查 Cookie
内容,以此来判断用户状态,服务器还会对 Cookie 信息进行维护,必要时会对 Cookie 内容
进行修改
2、 Cookie 的类型
Cookie 总时由用户客户端进行保存的(一般是浏览器),按其存储位置可分为:内存式 Cookie
和硬盘式 Cookie。
内存式 Cookie 存储在内存中,浏览器关闭后就会消失,由于其存储时间较短,因此也被称
为非持久 Cookie 或会话 Cookie。
硬盘式 Cookie 保存在硬盘中,其不会随浏览器的关闭而消失,除非用户手工清理或到了过
期时间。由于硬盘式 Cookie 存储时间是长期的,因此也被称为持久 Cookie。
3、Cookie 的实现原理
Cookie 定义了一些 HTTP 请求头和 HTTP 响应头,通过这些 HTTP 头信息使服务器可以与客户进行状态交互。
客户端请求服务器后,如果服务器需要记录用户状态,服务器会在响应信息中包含一个
Set-Cookie 的响应头,客户端会根据这个响应头存储 Cookie 信息。再次请求服务器时,客
户端会在请求信息中包含一个 Cookie 请求头,而服务器会根据这个请求头进行用户身份、状态等较验。