微信公众号零基础入门小知识汇总

1、什么是API?

API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

具体描述:

①在通俗意义上,API就是把某些功能封装好,方便其他人调用。
调用的人可以很方便使用这些功能,并且可以不需要知道这些功能的具体实现过程。

接API就是按照作者规定的流程去调用这些功能。

②在web相关上,API的含义这篇文章讲的很好:https://blog.csdn.net/hellotanbin/article/details/52210057

一个API并不是等同于一整个远程服务器,他是服务器用来接受请求和发送响应的一部分

总的来说,当一个公司向它的用户提供了API 的时候,这就意味着他们建造了一系列的专用URL通道,用来返回纯数据形式的响应,意味这响应不会包含一些用于解释的额外开销,你期望的是一种像网站一样的图表用户界面。

你可以通过浏览器直接访问GitHub的API ,甚至根本不需要访问标记(=_= # 什么是访问标记.....),当你用浏览器访问一个GitHub的用户API的时候,你将获得一个JSON形式的响应。

一个JSON的响应就像它已经是可以让你直接使用的代码了,很容易在这段文本里添加额外的数据,然后你就可以对这段数据做任何你想要做的事了

 

2、access_token是什么?

在了解access_token之前我们会需要了解几种常用的认证机制:

HTTP Basic Auth(auth:认证)

HTTP Basic Auth简单点说明就是每次请求API时都提供用户的username和password,简言之,Basic Auth是配合RESTful API 使用的最简单的认证方式,只需提供用户名密码即可,但由于有把用户名密码暴露给第三方客户端的风险,在生产环境下被使用的越来越少。因此,在开发对外开放的RESTful API时,尽量避免采用HTTP Basic Auth

OAuth

OAuth(开放授权)是一个开放的授权标准,允许用户让第三方应用访问该用户在某一web服务上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。

OAuth允许用户提供一个令牌,而不是用户名和密码来访问他们存放在特定服务提供者的数据。每一个令牌授权一个特定的第三方系统(例如,视频编辑网站)在特定的时段(例如,接下来的2小时内)内访问特定的资源(例如仅仅是某一相册中的视频)。这样,OAuth让用户可以授权第三方网站访问他们存储在另外服务提供者的某些特定信息,而非所有内容。

 

在了解cookie之前首先要了解另一个概念,Session(会话),session跟踪是web程序中常用的技术,用来跟踪用户的整个会话。在这之中cookie通过在客户端记录信息确定用户身份,session通过在服务器端记录信息确定用户身份。

Cookie认证机制就是为一次请求认证在服务端创建一个Session对象,同时在客户端的浏览器端创建了一个Cookie对象;通过客户端带上来Cookie对象来与服务器端的session对象匹配来实现状态管理的。默认的,当我们关闭浏览器的时候,cookie会被删除。但可以通过修改cookie 的expire time使cookie在一定时间内有效。

举个栗子:当用户通过浏览器访问一个支持cookie的网站的时候,用户会提供包括用户名在内的信息并提交到服务器,服务器响应一些用于下次验证的信息,客户端浏览器会把这些信息存放在一个位置(即为cookie),下次再发送信息的时候带上cookie就可以(很多网站的请记住我是通过它实现的)

关于cookie的更多内容可以查看:https://www.cnblogs.com/andy-zhou/p/5360107.html

有一个弱点,容易遭受crsf攻击(待补充☆):https://blog.csdn.net/stpeace/article/details/53512283

 

接下来是我们最关注的

Token Auth

首先说cookie:“其实本质上cookies就是http的一个扩展。有两个http头部是专门负责设置以及发送cookie的,它们分别是Set-Cookie以及Cookie。当服务器返回给客户端一个http响应信息时,其中如果包含Set-Cookie这个头部时,意思就是指示客户端建立一个cookie,并且在后续的http请求中自动发送这个cookie到服务器端,直到这个cookie过期。”

 

Token Auth的优点

Token机制相对于Cookie机制又有什么好处呢?

  • 支持跨域访问: Cookie是不允许垮域访问的,这一点对Token机制是不存在的,前提是传输的用户认证信息通过HTTP头传输.
  • 无状态(也称:服务端可扩展行):Token机制在服务端不需要存储session信息,因为Token 自身包含了所有登录用户的信息,只需要在客户端的cookie或本地介质存储状态信息.
  • 更适用CDN: 可以通过内容分发网络请求你服务端的所有资料(如:javascript,HTML,图片等),而你的服务端只要提供API即可.
  • 去耦: 不需要绑定到一个特定的身份验证方案。Token可以在任何地方生成,只要在你的API被调用的时候,你可以进行Token生成调用即可.
  • 更适用于移动应用: 当你的客户端是一个原生平台(iOS, Android,Windows 8等)时,Cookie是不被支持的(你需要通过Cookie容器进行处理),这时采用Token认证机制就会简单得多。
  • CSRF:因为不再依赖于Cookie,所以你就不需要考虑对CSRF(跨站请求伪造)的防范。
  • 性能: 一次网络往返时间(通过数据库查询session信息)总比做一次HMACSHA256计算 的Token验证和解析要费时得多.
  • 不需要为登录页面做特殊处理: 如果你使用Protractor 做功能测试的时候,不再需要为登录页面做特殊处理.
  • 基于标准化:你的API可以采用标准化的 JSON Web Token (JWT). 这个标准已经存在多个后端库(.NET, Ruby, Java,Python, PHP)和多家公司的支持(如:Firebase,Google, Microsoft).

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值