(A)用户打开客户端以后,客户端要求用户给予授权。
(B)用户同意给予客户端授权。
(C)客户端使用上一步获得的授权,向认证服务器申请令牌。
(D)认证服务器对客户端进行认证以后,确认无误,同意发放令牌。
(E)客户端使用令牌,向资源服务器申请获取资源。
(F)资源服务器确认令牌无误,同意向客户端开放资源。
OAuth在"客户端"与"服务提供商"之间,设置了一个授权层(
流程:
1)用户访问系统A;
2)系统A发现用户没有登录,也没有ticket,重定向到认证中心;有ticket跳转 第7)步;
3)认证中心发现用户并未登录,展示登录页面;
4)用户登录;
5)认证中心登录成功,带着生成的ticket,重定向到之前的系统A页面;
6)系统A检查登录,还是未登录,但存在ticket。系统A带着ticket和认证中心进行校验;
7)认证中心返回
#coding=utf-8 import socket target_host = "www.baidu.com" target_port = 80 #建立一个socket对象 client = socket.socket(socket.AF_INET,socket.SOCK_STREAM) #连接客户端 client.connect((target_host,ta
问题一,如何解决消息重复投递:
问题二,如何解决消息丢失:
消息在投递的时候是需要回执 的。需要返回一个确认信息。
比如 basic.ack去针对每一条消息进行回执。
但是当auto_ack设置为true的时候,那每一条消息投递完就默认是得到了接收回执。这个时候如果应用断开或者发生意外,
设置了true的情况,就会引起上述两个问题:
因为rabbitMQ 的机制是,如果默认得到回执
禁止使用SELECT *,只获取必要的字段,需要显示说明列属性
禁止使用INSERT INTO t_xxx VALUES(xxx),必须显示指定插入的列属性
解读:容易在增加或者删除字段后出现程序BUG
禁止使用属性隐式转换
解读:SELECT uid FROM t_user WHERE phone=13812345678 会导致全表扫描,而不能命中phone索引
禁止
server: port: 8000 spring: datasource: name: BaBa url: jdbc:mysql://****:3300/BaBa username: root password: root # 使用druid数据源 type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.jdbc.Driver filters: stat maxActive: 20 initialSize: 1 maxWait: 60000 minIdle: 1 timeBetweenEvictionRunsMillis: 60000 minEvictableIdleTimeMillis: 300000 validationQuery: select 'x' testWhileIdle: true testOnBorrow: false testOnReturn: false poolPreparedStatements: true maxOpenPreparedStatements: 20 mybatis: mapper-locations: classpath:mapping/*.xml type-aliases-package: com.baba.model #pagehelper pagehelper: helperDialect: mysql reasonable: true supportMethodsArguments: true params: count=countSql
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.baba</groupId> <artifactId>baba</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>baba</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <!--<version>2.0.0.BUILD-SNAPSHOT</version>--> <version>1.5.9.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.7</java.version> </properties> <dependencies> <dependency> <groupId>
打包命令
mvn install
完成之后再target里会出现一个jar包
运行命令,包括不同项目的不同配置相关:
java -jar xxx.jar --spring.profiles.active:dev
另外
根据yml配置的变量而引用的方法:见 获取yml自定义配置
ps: java -jar 未必生效,可能在maven打包的时候才行所
一般的时候,问到区别的时候都会这样认为:
GET在浏览器回退时是无害的,而POST会再次提交请求。
GET产生的URL地址可以被Bookmark,而POST不可以。
GET请求会被浏览器主动cache,而POST不会,除非手动设置。
GET请求只能进行url编码,而POST支持多种编码方式。
GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
GET请求在URL中传送的参数是有长度限制的,而POST么有。
对参数的数据类型,GET只接受ASCII字符,而POST没有限制。
GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。
GET参数通过URL传递,POST放在Request body中。
实质上这不完全正确的。
POST 是否比 GET 安全?
是的, POST要比GET安全一点点,注意,是一点点。。。
在我大万维网世界中,还有另一个重要的角色:运输公司