Web

Ace your homework & exams now with Quizwiz!

什么是CORS?

"跨域资源共享"(Cross-origin resource sharing),是专门解决跨域问题的标准。CORS需要浏览器和服务器同时支持。他其实就是在请求中携带一些头信息,由此来让浏览器、服务器判断是否允许跨域。 目前主流浏览器都已支持CORS,服务器端需要我们进行配置。如Spring已经提供了CorsFilter过滤器,或@CrossOrigin。

Web服务器 vs Web应用服务器

- Web服务器:不能解析jsp,只能处理js、css、html等静态资源,但并发性能更好。如Nginx、Apache、IIS。 - Web应用服务器:如Tomcat、Jetty。

正向代理 vs 反向代理

- 正向代理:即代理代表的是客户端,代理客户端去访问服务端,代理隐藏了真实的客户端。 - 反向代理:即代理代表的是服务端,客户端访问代理,代理隐藏了真实的服务端。 正向代理和反向代理的区别在于代理的对象不一样,正向代理的代理对象是客户端,反向代理的代理对象是服务端。

常见的认证机制

1. HTTP Basic Auth:每次请求API时都提供用户的username和password。 2. Cookie Auth:Cookie+Session 3. OAuth:开放授权,允许用户让第三方应用访问该用户在某一web服务上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。 4. Token Auth:将用户信息通过加密算法生成密文,该密文就是Token。服务器端不保存Token,客户端保存。当客户端请求时,携带Token到服务端,服务端进行解码,从而获得用户登陆状态信息。

说明一下跨域问题

1. 什么是跨域:浏览器对于javascript的同源策略的限制。 1. 域名+端口,只要有任意一项不同,就是跨域 2. http和https也属于跨域 2. 为什么有跨域问题:处于安全性,浏览器对于一个页面发起的*ajax请求*,只能是与当前页面域名相同。PS:跨域问题是针对JavaScript/ajax的,如果是在网页中通过<a>超链接标签来跳转,则不存在跨域问题。 3. 解决方案: - Jsonp - Nginx反向代理 - CORS

加密技术有哪些类型?

1. 对称加密:加/解密使用相同的密钥,速度快,缺点是密钥的安全性。如AES。 2. 非对称加密:密钥分为公钥和私钥,公钥下发给信任的客户端。公钥加密私钥解密,私钥加密公钥解密。更加安全,缺点是速度慢。如RSA。 3. 不可逆加密:加密不需要密钥,无法根据密文推算出明文。如MD5,SHA。 PS:区分加密 vs 编码。如Base64是一种编码。

Session vs Token

Session: 1. 生成:客户端保存SessionId,服务器端保存Session(key-value)。 2. 传递:Session的传递依赖Cookie,当然如果Cookie禁用,可以重写URL。 3. 使用:服务器接收到SessionId后,根据SessionId查找对应的Session。 Token: 1. 生成:登陆成功后,将用户信息通过加密算法生成密文,该密文即Token。服务器不保存Token,客户端保存。 2. 传递:Token不限于用Cookie来传递。即可以放在请求头、请求体、Cookie中,只要前后端约定好即可。 3. 使用:服务器接收到Token后,使用相同的算法解密Token,从而获取到用户信息。 Token实际上是用时间换空间。

域名是什么?解析流程

tieba.baidu.com/item - .com:一级域名/顶级域名 - .baidu:二级域名 - tieba:三级域名 - /item:路径、子页面,它不是域名 一个域名一定会被解析为一个或多个IP。PS:域名不包含端口port,但一般的http请求默认访问80端口,https默认访问443端口。 流程: 1. 本地域名解析:hosts文件 2. 域名服务器解析:DNS(Domain Name System)

Cookie、Session、Token技术是为了解决什么问题?

因为HTTP协议是无状态的。 1. 记录用户状态/登陆验证;假如携带Token请求服务器,服务器可以根据该Token知道这个请求是用户A发来的,从而返回用户A相关的数据(处理请求)。 2. 保存用户信息/缓存数据;ps,不要保存敏感信息,如密码。

案例:在微服务下,后端不同的服务对应着不同的域名+端口,前端如何以一套统一的路径去访问后端服务?

方法:反向代理/路由。 1. Nginx:客户端访问域名被解析到指定的Nginx服务器上,Nginx配置着各种反向代理规则,将客户端请求转发给真实服务器处理。 2. Zuul:客户端访问到Zuul服务端,Zuul路由到真实的服务器处理。

JWT - 是什么 - 数据格式 - 交互流程

概念:Json Web Token,可实现无状态、分布式的Web应用认证。 数据格式: - header:声明Token类型,加密算法。用Base64编码。 - payload:负载有效数据,如用户id。用Base64编码。 - signature:签名,根据header、payload加密后获得,确保JWT的安全性。 交互流程: 1. 用户提交登陆信息; 2. 服务器通过认证后,签发JWT类型的Token给客户端; 3. 客户端每次请求时都携带Token; 4. 服务端用密钥验证JWT的signature是否有效,有效后可从Payload中获取用户信息; 5. 根据JWT中的用户信息,返回用户相关的数据,处理请求。


Related study sets

Jean-Paul Sartre Existentialism Philosophy

View Set

Chapter 21: The Lymphatic and Immune Systems

View Set

APES Renewable and Nonrenewable Resources

View Set

Management- Chapter 18 Study Problems

View Set