关于node.js的那些事(七)之构建Web应用

2020-07-23  本文已影响0人  llkevin13579

        Web应用已经成为互联网的主角,Node.js可以作为后端的语言和前端的语言,很多时候我们都统一使用Node.js,这样会有一些好处,比如前端和后端不用转换语言,不会因为语言环境的切换而丢失,上下文一致较好,一些业务(比如SEO模版渲染)可以很自由地很轻量地选择在前端渲染还是后端渲染,切换起来也更加的方便。在Web应用当中,我们常常听到的几个概念:请求方法、查询字符串、Cookie与session,今天我们系统地对这几个概念做一个讲解。

        请求方法最常见的有4个:GET、POST、PUT、DELETE。根据Restful API的建议,GET一般表示查看一个资源,POST表示创建一个资源,PUT表示更新一个资源,DELETE表示删除一个资源。

        很多时候查询字符串会出现在路径最后面,例如?baz=foo&foo=baz,但对于程序来说,识别他们非常不友好,我们需要把它们变成JSON的形式,就像下面的这样,Node.js提供了querystring模块, 帮助我们做到了这个转化。

{

    baz: 'foo'

    foo: 'baz'

}

       由于HTTP是一个无状态的协议,但是对于业务来说是有状态的,所以有了Cookie的概念,它由服务器发送给客户端,然后客户端保存下来,每次客户端都带着这个Cookie访问服务器,服务器通过辨识这个Cookie就知道了是哪个用户了。Cookie有几个重要的参数:path、expires、httpOnly、secure。path代表这个Cookie影响到的路径,当访问的路径不匹配,浏览器就不会发送这个Cookie。Expires是用来告诉浏览器这个Cookie什么时候过期。HttpOnly表示浏览器不允许通过脚本document.cookie去更改这个Cookie值,Secure表示在HTTP中是无效的,只有在HTTPS当中才有效。

    Cookie虽然解决了鉴权的问题,但是存在一个问题就是可以被随意篡改,这样数据安全就得不到保障,后面推出的session解决了这个问题,session在客户端只保存一个session的id,数据都保存在服务端,而且它有一个失效时间,如果超过失效时间没有请求,这个session就会自动失效,这样子的话,比Cookie安全多了。

上一篇下一篇

猜你喜欢

热点阅读