使用 JWT 进行认证

什么是 JWT ?

JWT 的全称是 JSON Web Token,是一种跨域认证解决方案。

所谓认证,就是获取用户的身份信息。我们知道,Http 是一种无状态协议,为了实现认证和跟踪用户信息,开发者发明了 cookie-session 方案,该方案流程如下:

  1. 用户向服务器发送用户名和密码;
  2. 服务器验证通过后,在 session 里保存相关数据;
  3. 服务器返回一个 session_id,写入客户端的 Cookie;
  4. 之后,用户的每次请求都会通过 Cookie 把 session_id 传回给服务器;
  5. 服务器通过 session_id,找到先前保存的数据,得到用户信息。

这种方案存在几个问题:

  1. 如果是服务器集群,要求 session 数据要共享,要求每一台服务器都能够读取并同步 session;
  2. 前后端分离,跨域访问的情况下,每次请求的 session_id 都会不一样;
  3. 如果是多端(ios/Android/Web)共用一套后端 API 服务,移动端无法储存 Cookie,需要另辟蹊径。
  4. session 数据是保存在服务器的内存中,无形中增加了服务器的压力。

而 JWT 解决了上述问题,它的思想是:服务器不保存 session 数据了,数据全部保存在客户端,每次请求的时候都发回服务器验证。

阅读更多

Java Web(二)JavaServer Pages (JSP)

我们知道,Servlet 中可以对客户端发来的信息进行处理(doGet、doPost等),可是,在 Servlet 里面输出 HTML 代码是一件很酸爽的事情。

如果我们直接写 HTML 代码,然后在需要动态获取的地方用 Java 代码来实现,不是很方便?

JSP 就是干这个事的!

维基百科定义: JSP(全称JavaServer Pages)是由Sun Microsystems公司主导建立的一种动态网页技术标准。 JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者。

阅读更多

Java Web(一)web容器和Servlet

在聊 Servlet 之前,先讲讲什么是 Web服务器 和 应用服务器。

Web服务器

无论何种 Web 资源,想被远程计算机访问,都必须有一个与之对应的网络通信程序,当用户来访问时,这个网络通信程序读取 Web 资源数据,并把数据发送给来访者。

Web服务器就是一个网络通信程序,它用于完成底层网络通迅。具体来说,它将某个主机上的资源映射为一个URL供外界访问。

使用 Web服务器,Web 应用的开发者只需要关注 Web 资源怎么编写,而不需要关心资源如何发送到客户端手中,从而极大的减轻了开发者的开发工作量。


应用服务器 - Tomcat

我们的 Web 应用要运行起来,是需要部署在应用服务器上而不是Web服务器。因为web服务器只负责资源映射,而程序业务逻辑需要另外的容器来处理。

应用服务器一般装载着我们的后端应用程序,帮助我们接收请求、处理请求、响应请求。Tomcat 就是一种常见的应用服务器,但也具有web服务器的功能,所以直接访问也可以。

通常,Tomcat 装载着我们的 Servlet 对象。那什么是 Servlet 呢?下文会讲到。

在实际的生产环境中,由于负载均衡,cdn加速等原因,我们还是需要在应用服务器的前端再加一个web服务器来提高访问效率,常用的有 Nginx, Apache 这样的服务器。

阅读更多
Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×