【Java技术系列】爱情36技之追美妹的技术
1.
在古老的非洲大陆上,有个原始人无意中抬头仰望星空,凝视的时间稍微长了一些,超过了外星人设置的阈值,立刻拉响了人类即将产生文明的警报。因为外星人认为,人类已经产生了对宇宙的好奇心,文明的产生,科技的发展不过是一瞬间的事情——摘自刘慈欣《朝闻道》。
作为一个靠技术吃饭的我们,面对系统架构快速更新迭代,新技术层出不穷,如果不抱有对技术的好奇心,那么真可能会出现“昨日的你懵懂,今天的你却不懂”;更不会出现 Java 那小子 与 Python 菇凉浪漫的爱情故事。
准备好小板凳,爱情故事要开始啦。
2.
近期 Java 那小子,陷入了对 Python 菇凉的水深火热的爱情追逐。
9012 年 7 月 2 日是 Python 菇凉的生日,也就是今天,正是 Java 表爱心的好时机。Java 思索了好几天,想给心爱的 Python 菇凉送一个惊喜,于是绞尽脑汁制作了一个生日贺卡,由于 Java 天生脸皮就薄,不敢公开示爱,只能默默通过 Email 的方式邮寄过去。
由于 Python 菇凉的倾国倾城,导致追求她的年轻有为的帅小伙尤其的多,不知道有多少追求者曾拜倒在她的石榴裙下。
Java 十分好奇的想知道 Python 菇凉到底有没有看过自己发过去的爱的祝福?也不知道是否会被淹没在她专门收取爱的百宝收件箱中?
一向擅长默默行事的 Java,头顶个大大的问号,抱着好奇的心,找来压箱底的那本厚厚的《爱情 36 技》,倒腾好几遍。当倒腾到快要放弃时,突然倒腾到第 35 技 —— 追美妹的技术,Java 眼前一亮,心中乐开了花。
Java 结合自己的现状,认真展开了对《爱情 36 技》中的追美妹攻略的使用解读。
追美妹攻略使用指南。这个攻略,谨献给那些:内心无时无刻不在思念远在天涯的对方,而且时不时纠结每次发过去的祝福,是否被深爱的她(他)成功接收的小哥哥小姐姐们。
追美妹攻略实施步骤。
第一步:智商不够,HTML 月老来凑。
找 HTML 月老,把你想要表达的坚如磐石、海枯石烂的爱情让 HTML 月老帮你实现一个祝福贺卡。
月老肯定会把你的爱情表达的淋漓尽致,一定会达到你的满意。
第二步:耍小聪明,让追踪不成问题。
祝福贺卡 HTML 月老实现完成后,此时需要你稍作手脚。在祝福贺卡的正文中,找个不起眼的地方,放入一张空白的图片,爱情配方如下:
<img style='display:none;' src='http://www.javalovepython.com/loveFeedBack/pythonVipId'/>
其中图片的 src 属性为 Java 那小子专门提供的统计 Python 菇凉是否已阅的服务口,并把 Python 菇凉在 Java 心目中存储的 vip 编号掺入其中,以便确定是 Python 菇凉的阅读贺卡回馈,而不是 C++ 大娘的阅读回馈。
第三步:攻略献上,静等爱情的心跳。
此时当 Python 菇凉打开 Java 发过去的祝福贺卡时,她的百宝收件箱客户端解释执行邮件正文渲染的时候,埋藏的图片会执行 src 请求,会向 Java 发送已阅心跳(想想场景都很刺激)。
当 Python 菇凉向 Java 发送已阅心跳时,会调用 Java 那小子提前准备好的爱情服务口,爱情服务口会把对应的祝福贺卡是否已读状态,改为已读状态(想想暗箱操作,别有一番爱情的滋味)。
第四步:经验之谈。
人有失足,马有失蹄,经验也有不准的时候,未雨绸缪,爱情心跳双保险。
追踪 Python 菇凉的流程没毛病,Java 那小子能够正常判断 Python 菇凉是否读取了祝福贺卡邮件,但是由于 Python 菇凉收取爱的邮件百宝箱的版本不同,会导致有些埋藏的图片却无法隐藏,一旦展示将导致爱情局面无法挽回,所以 Java 那小子还需要在服务口真正的返回一张 1 x 1 的样式为不可见的图片。
随着 Python 菇凉阅读邮件的反馈次数越来越高,潜在表达了对 Java 好感越来越浓,Java 那小子用邮件发送爱情的祝福的频率也越来越高,就这样你侬我侬,一来二去,最终Java 那小子终于抱得美人归。
3.
故事讲完了,追逐爱情的攻略你 get 到了没?容我们再来总结一下。
a. HTML 月老负责生成邮件正文;
b. 添加一张样式为隐藏,大小为 1 x 1 的图片,其中 src 地址为服务端统计接口 url 地址;
c. 实现 src 对应的服务端接口 url,做阅读记录更新,再真实返回一张 1 x 1 的图片。
只写思路,不写代码都是氓流,所以我还是码两行硬编码吧,以供你们参考。
题外话:此种追踪技术不但适合在爱情的追逐上,同时也适用于工作中邮件阅读量统计以及诸多统计类的需求。
其中好奇的你肯定会问:是否能够获取足够多的隐私信息?这个可能存在不可告人的秘密啦,自己尝试摸索一下吧。
好了,今天的故事就讲完了,希望你们喜欢。

【Java技术系列】爱情36技之追美妹的技术的更多相关文章
- 【Java技术系列】爱情36技之暗送秋波的技术
1. 这篇文章想分享已经很久了,苦于皱巴巴的技术比较生涩难懂,迟迟没有找到好的分享方式,今天结合爱情中暗送秋波的故事的形式,尝试分享一下. 以后如果再有人问你们:能否在加载类的时候,对字节码进行修改? ...
- Java Redis系列3(Jedis的使用+jedis连接池技术)
Jedis的使用 什么是Jedis? 一款Java操作redis数据库的工具 使用步骤 1.下载redis所需的java包 2.使用步骤 import org.junit.Test; public c ...
- 【Java技术系列】爱情36技之记忆永存
1. 关注“一猿小讲”的伙伴们都清楚,Java 那小子带着心爱的 Python 菇凉,去了一趟浪漫的土耳其,然后一起又去了东京和巴黎,接着 Python 菇凉自己又去了云南的大理. 就在昨天,Pyt ...
- 【Java技术系列】爱情36技之Bug大战
1. 鲁迅先生说:程序员,天不怕地不怕,就怕小虫儿爬呀爬,爬呀爬. 随着时间的推移,鲁迅先生又说:真正勇猛的程序员,敢于让虫子面对惨淡的虫生. 虫子在程序员心中是啥东西?虫子的学名为 Bug,是多少入 ...
- Java基础系列(36)- 数组三种初始化及内存分析
内存分析 数组三种初始化 静态初始化 int[] a = {1,2,3}; Man[] mans = {new Man(1,1),new Man(2,2)} 动态初始化 int[] a = new i ...
- Azure Messaging-ServiceBus Messaging消息队列技术系列-索引篇
Azure Messaging ServiceBus Messaging相关的技术系列,最近已经整理了不少了,统一做一个索引链接,置顶. 方便查找,并后续陆陆续续再增加. 学习消息队列技术,可以先看第 ...
- 1.Java 加解密技术系列之 BASE64
Java 加解密技术系列之 BASE64 序号 背景 正文 总结 序 这段时间,工作中 用到了 Java 的加解密技术,本着学习的态度,打算从这篇文章开始,详细的研究一番 Java 在加解密技术上有什 ...
- Java 加解密技术系列文章
Java 加解密技术系列之 总结 Java 加解密技术系列之 DH Java 加解密技术系列之 RSA Java 加解密技术系列之 PBE Java 加解密技术系列之 AES Java 加解密技术系列 ...
- 11.Java 加解密技术系列之 总结
Java 加解密技术系列之 总结 序 背景 分类 常用算法 原理 关于代码 结束语 序 上一篇文章中简单的介绍了第二种非对称加密算法 — — DH,这种算法也经常被叫做密钥交换协议,它主要是针对密钥的 ...
随机推荐
- vuex的使用心得
今天的工作内容-----vuex的使用心得: 都知道,对于小型的项目来说不必使用vuex,但是对于需要把共享的变量全部存储在一个对象里面,然后把这个对象放在顶层组件中以供其他组件使用.其实vuex就是 ...
- Kubernetes Jenkins动态创建Slave
目录 0.前言 1.Jenkins部署 2.配置jenkins动态slave 3.dubbo服务构建 3.1.制作dubbo镜像底包 3.2.制作slave基础镜像 3.2.1.Maven镜像 3.2 ...
- python切片使用方法(超详细)
#切片:就是根据一个下标范围来获取一部分数据,切片通常结合字符串,列表,元组使用 # 为什么使用切片?因为下标只能获取一个数据,所以想要获取字符串或者列表当中一部分数据需要用切片. # 切片的语法格式 ...
- Ubuntu16.04 desktop 设置共享文件夹 -- 图形界面配置
1. 安装 安装samba 直接采用 Ubuntu16.04 desktop 里面的安装向导来完成: 选中需要共享的文件夹 -> 右键 “local Network Share” -> 安 ...
- vue依赖注入
大家可能知道常规组件传值,父传子使用子组件定义好的props值,子传父可以使用子组件里面定义的时间this.$emit(); 然后很多层的情况,一层一层慢慢传太慢,vue提供了依赖注入的钩子:prov ...
- 基于 Roslyn 实现一个简单的条件解析引擎
基于 Roslyn 实现一个简单的条件解析引擎 Intro 最近在做一个勋章的服务,我们想定义一些勋章的获取条件,满足条件之后就给用户颁发一个勋章,定义条件的时候会定义需要哪些参数,参数的类型,获取勋 ...
- 【Weiss】【第03章】链表例程
这种基础例程,如之前所提,会有一个实现和一个简单的测试代码. 链表其实没什么可说的,其实包括后面的栈和队列也没什么可说的,直接放代码吧. 下面这个是测试代码 #include <iostream ...
- 使用C#+EmguCV处理图像入门(一)
首先我们先了解一下该库的一些相关信息 OpenCV(Open Source Computer Vision Library)是一个(开源免费)发行的跨平台计算机视觉库,可以运行在Linux.Windo ...
- 2. weddriver的定位方法
一. find_element_by_****的方式 首页在网页上鼠标右键选择检查并点击,查看需要定位的元素. https://www.baidu.com 以百度为例 导入模块的: from sel ...
- 【转】Typora极简教程
Typora极简教程 Typora download ” Markdown 是一种轻量级标记语言,创始人是约翰·格鲁伯(John Gruber).它允许人们 “使用易读易写的纯文本格式编写文档,然后转 ...