美文网首页
动态服务器

动态服务器

作者: Marshall3572 | 来源:发表于2021-03-16 21:16 被阅读0次

静态服务器和动态服务器的区别
请求的数据库就是动态服务器,没请求数据库就是静态服务器。

const fs = require("fs");

// 读数据库
//序列化
const usersString = fs.readFileSync("./db/users.json").toString();
//反序列化得到数组
const usersArray = JSON.parse(usersString);


// 写数据库
const user3 = {id:3, name:'tom', password: 'yyy'}
usersArray.push(user3)
//序列化得到字符串
const string = JSON.stringify(usersArray)
fs.writeFileSync('./db/users.json', string)

1. 实现用户注册功能
用户提交用户名和密码,users.json中就新增一行数据。
register.html思路:

  1. 前端写一个form,让用户填写name & password
  2. 前端监听submit事件。
  3. 前端发送post请求,数据位于请求体。
  4. 后端接受post请求,获取请求体中的name & password
  5. 后端存储数据

惯例:要兼容手机,先抄袭淘宝的meta
2. 实现用户登录功能
首页home.html,已登录用户可以看到自己的用户名;
登录页sign_in.html供提交用户名和密码。
输入的用户名密码如果是匹配的,就自动跳转页面。
sign_in.html思路

  1. 前端写一个form,让用户填写name & password
  2. 前端监听submit事件。
  3. 前端发送post请求,数据位于请求体。
  4. 后端接受post请求,获取请求体中的name & password
  5. 后端读取数据,看是否有匹配的name和password,如果匹配后端就标记用户已登录,可是怎么标记呢?

Cookie

定义:

  1. Cookie是服务器发送给浏览器的一段字符串
  2. 浏览器必须保存这个Cookie(除非用户删除)
  3. 之后发起相同二级域名请求(任何请求)时,浏览器必须附上Cookie

但是我们会担心用户篡改Cookie,用户会不会修改user_id呢?

那我们该如何防止用户篡改user_id呢
思路一:加密
将user_id加密发送给前端,后端读取user_id时解密。
但是这种方法有漏洞——加密后的内容可无限期使用。
解决办法:JWT
思路二:把信息隐藏在服务器中

  1. 把用户信息放在服务器的session(会话)里,再给信息一个随机id
  2. 把随机id发送给浏览器
  3. 后端下次读取到id时,就能通过session[id]获取用户信息。
    session是个文件而不是内存,不能用内存,因为断电内存就清空
    这种方式就叫做注销,而注销功能如何实现呢?
  4. 安全起见,不能用 JS 删 Cookie,应该使用 HTTP only 的 Cookie,然后 JS 发请求让服务器删 Cookie
  5. 安全起见,除了删除浏览器端的 Cookie,还需要把对应的 Session 数据删掉

session的时效性

两种思路的区别在于,思路一采取加密的方法,一旦泄密就会导致永久泄密。
而思路二的session是有时效性的可以随时删除,用户重新登陆后会获得一个全新的id。

Session 保存在服务器的文件中
服务器一般会将 Session id 放到 Cookie 中,发放给浏览器

Cookie 是服务器发放给浏览器的一段字符串
每次请求相同的二级域名(如 qq.com)时,必须带上之前发放的 Cookie

相关文章

  • 动态服务器

    静态服务器和动态服务器的区别请求的数据库就是动态服务器,没请求数据库就是静态服务器。 1. 实现用户注册功能用户提...

  • 单点登录(cas)、缓存技术与负载均衡

    基于动态缓存的电子商务优化针对电子商务网站的特点和性能要求,在Web服务器前端设置动态缓存服务器,作为Web服务器...

  • 动态服务器(Cookie session)

    1.什么叫动态服务器 动态服务器就是访问数据库,静态服务器不访问数据库. 2.实现用户注册 2.1目标 用户注册一...

  • Java的动态机制---动态编译

    Java的动态机制---动态编译1 作用 客户写代码,动态编译。 服务器动态加载某些类文件 2 两种做法 通过Ru...

  • Python web服务器

    Web静态服务器 显示静态的页面 首页.html 客户端浏览器 服务端 Web服务器动态资源请求 浏览器请求动态页...

  • 动态服务器

    静态服务器和动态服务器如何区分 判断依据 是否请求了数据库如果没有请求数据库那么就是,静态服务器。如果请求了数据库...

  • 建站学习

    网站 网站的分类 b/s:浏览器/服务器端 开发 维护 运行 都在服务器端完成,浏览器只负责浏览 动态网站: 动态...

  • WSGI mini-web框架

    一、服务器动态资源请求 1. 浏览器请求动态页面过程 2.WSGI 怎么在你刚建立的Web服务器上运行一个Djan...

  • 动态编译

    动态编译应用场景:1、做一个浏览器端编写java代码,上传服务器编译和运行的在线评测系统。2、服务器动态加载某些类...

  • 相关web知识

    静态网站与动态网站: 静态:客户端无法与服务器交互数据 eg:html 动态: 网站技术 ...

网友评论

      本文标题:动态服务器

      本文链接:https://www.haomeiwen.com/subject/sgprcltx.html