【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,这种算法也经常被叫做密钥交换协议,它主要是针对密钥的 ...
随机推荐
- python之三元表达式,列表|字典推导式,函数对象
#### 三元表达式: 就是if....else...的语法糖 # -- 1) 只能解决if...else...结构,其他if分支结构都不管 # -- 2)一个分支提供一个结果: 如果一个分支提供了多 ...
- asp.net mvc core 管道以及拦截器初了解
今天来看一下asp.net core的执行管道.先看下官方说明: 从上图可以抛光,asp.net core的执行顺序是,当收到一个请求后,request请求会先经过已注册的中间件,然后会进入到mvc的 ...
- SpringBoot突报java.lang.NoSuchFieldError分析
SpringBoot项目,引了一个内部的工具包,竟然导致启动失败,报找不到freemarker Configuration类的一个属性,网上的解法都大同小异,最终用了自己的办法解决,花点时间记录下来, ...
- Java自学路线图之Java框架自学
Java自学路线图的框架分为两个阶段,第一阶段的Java框架包含六个内容:MyBatis,Spring,SpringMVC,Maven高级,Git,Dubbo. 在Java自学过程中掌握框架的使用,对 ...
- ajax4
用jquery实现json jquery.ajax([settings]) type类型使用“POST”或者“GET”,默认使用get URL:发送请求地址 data:是一个对象,连同请求发送到服务器 ...
- (转)C++中的new
转载自:http://blog.csdn.net/sparkliang/article/details/3650324 C++中的new其实是一个很糊弄人的术语,它有两种不同的含义,new运算符(ne ...
- 【Weiss】【第03章】练习3.18:检查平衡符号
[练习3.18]用下列语言编写检测平衡符号的程序 a.Pascal ( begin/end, ( ), [ ], { } ). b.C语言( /* */, ( ), [ ], { }). c.解释如何 ...
- [极客大挑战 2019]PHP1
知识点:PHP序列化与反序列化,最下方有几个扩展可以看一下 他说备份了,就肯定扫目录,把源文件备份扫出来 dirsearch扫目录扫到www.zip压缩包
- tomcat源码分析01-启动过程概览
导读:tomcat是一个开源的web服务器,它实现了我们常用的Servlet,JSP,EL等相关规范,因为其性能稳定,开源等因素得到越来越多开发者的青睐,出于学习的目的,我决定研读其源码,并将阶段性成 ...
- 深入Redis客户端(redis客户端属性、redis缓冲区、关闭redis客户端)
深入Redis客户端(redis客户端属性.redis缓冲区.关闭redis客户端) Redis 数据库采用 I/O 多路复用技术实现文件事件处理器,服务器采用单线程单进程的方式来处理多个客户端发送过 ...