0%

WebSocket 简介

WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。
WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
在 WebSocket API 中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。

Read more »

微信支付分为JSAPI支付,扫码支付,APP支付,小程序支付等不同的支付方式。但大体的支付过程是一致的,本文以JSAPI支付,也就是微信内的H5支付为例,描述一下支付的整个开发流程。

配置

商户需要提前开通商户平台,并去公众平台或开放平台提交微信支付申请,获得商户号和秘钥。

详细文档可以看这里

Read more »

背景

用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑。

配置

  1. 在微信公众号请求用户网页授权之前,开发者需要先到公众平台官网中的“开发 - 接口权限 - 网页服务 - 网页帐号 - 网页授权获取用户基本信息”的配置选项中,修改授权回调域名。请注意,这里填写的是域名(是一个字符串),而不是URL,因此请勿加 http:// 等协议头;

  2. 授权回调域名配置规范为全域名,比如需要网页授权的域名为:www.qq.com,配置以后此域名下面的页面http://www.qq.com/music.htmlhttp://www.qq.com/login.html 都可以进行OAuth2.0鉴权。但http://pay.qq.comhttp://music.qq.comhttp://qq.com无法进行OAuth2.0鉴权

Read more »

登录流程

登录流程

  1. 小程序通过 wx.login 获取 code(用户登录凭证,有效期五分钟,使用一次后实效)
  2. 服务端拿到 code,调用 code2Session,获取用户的 openid (用户在当前应用的唯一标识)、unionid (用户在开发平台的唯一标识) session_key (会话秘钥是对用户数据进行 加密签名 的秘钥,在获取用户信息时会用到) 等信息。为了安全,服务器不应该把会话秘钥下发到小程序,也不应该对外提供这个秘钥
  3. 通过 unionid openid 自定义服务端登录态
Read more »

背景

前端在调用微信提供的分享、拍照、扫一扫等功能时需要到后台获取配置,主要是签名(signature)。Node 开发可以用朴灵大佬的SDK——co-wechat-api

配置

到微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。前提是该域名的项目目录下有微信提供的校验文件。如果需要本地调试或者测试环境调试,可以把IP白名单也顺便配置一下。

Read more »

背景

在修改前辈留下来的代码时踩到一个坑。简单讲一下代码做了什么事:在 try/catch 里实例化多个类,并调用类的方法为其赋值,catch 到错误也不会中断,而是通过打日志的形式收集报错信息。

我需要在里面新实例化一个类,有样学样,上来就是一顿copy改,可是新增的类的某个属性总是不对,排查了半天才发现一个坑。

Read more »

背景

公司在做付费课程,视频教学为主,需要对视频链接作防盗链处理。

REFERER

HTTP referer 是 header 上的一个属性。当浏览器向服务器发起请求时,一般会带上Referer,告诉服务器我是从哪个页面链接过来的。

七牛在融合 CDN -> 域名管理 -> 高级配置里有一个域名防盗链选项。

域名防盗链

配置好之后就可以限制链接只能从配置好的白名单域名进行访问,简单的防御了盗链。但是HTTP header 是可以被伪造的,经测试,直接用 postman 加个 Referer 就可以绕过了。

Read more »

“我呢,”雪穗继续说,“从来就没有生活在太阳底下。”
“我的天空里没有太阳,总是黑夜,但并不暗,因为有东西代替了太阳。虽然没有太阳那么明亮,但对我来说已经足够。凭借着这份光,我便能把黑夜当成白天。你明白吗?我从来没有太阳,所以不害怕失去。” ——《白夜行》东野圭吾。

《白夜行》

开头是一宗离奇的命案,调查以无任何结果告终。然后开始分别叙述两位主人公的生活。从十一岁到初中到高中到成人,时间跨度长达十九年。每一件事单独看都是一个精彩的故事,谁知道最后所有的事情都会串起来成为解答开头命案的线索。本来以为是两个互不相关的两个人,作者在分别叙述他们的故事,看起来毫无相关性。看到最后才知道两个人始终在一起,策划着每一个意外。

Read more »

花了一天时间翻完了《码农翻身》(跳过了Java部分)。生动有趣的书看起来就是舒服,竟有引人入胜、手不释卷的感觉,一不小心就翻完了。是一本很好的入门科普读物,开阔技术视野。

下面是书中的摘抄和笔记

线程

我是一个线程

  1. 不知道什么时候会被挑中执行
  2. 在执行的过程中随时可能被打断,让出CPU
  3. 一旦出现硬盘、数据库这样耗时的操作,也得让出CPU
  4. 数据来了,也不一定马上执行,还得等着被CPU挑选

三次握手

TCP/IP之大明内阁
TCP/IP之蓟辽督师
TCP/IP 之 大明王朝邮差

三次握手

发送的信息被拆分成小包裹,编上序号,打乱顺序后发送,由服务端发送,客户端接收,接收后返回确认接收信息。如果一定时间内没有收到确认信息,则代表信息丢失(可能是发出的包裹丢失,也可能是返回的确认信息丢失),重新发送该包裹。全部接收完成后按照序号重新组装成完整信息。

HTTPS

一个故事讲完https

Read more »

《看见》

花了半个月断断续续看完了柴静的《看见》。这本书值得重新再看一次。

这次看这本书,用手机看,一目十行,有时候看着看着走神了,有时候动动手指就多翻了几页,或者在电梯里地铁里吃饭排队时匆匆看两眼。碎片时间让文章没了上下文,没了沉浸感。用手机看书是方便,随时随地,但不适合看一些有深度的书。

这本书是一个时代的记忆——非典,汶川地震,奥运。也记录了各式各样的人和群体——双城集体服毒的小学生,戒毒所里被卖去卖淫的女人,采访同性恋,不知道犯了什么罪就被关了二十八年的人,因家庭暴力杀死丈夫的女人,山西的环境污染,采访用高跟鞋踩死小猫拍成视频传到网上的女人,华南虎照片真假事件,福建涂岭拆迁户不同意搬迁,户主的儿子——一个刚复员回来的年轻人,二十三岁——被开发商砍死,农村征地问题,采访卢安克,药家鑫事件。

Read more »