90后HTTP 的爱情故事
文章目录
- 第1篇日记
- 第2篇日记
- 第3篇日记
- 第4篇日记
- 结束语
第1篇日记
1991年 8月
我叫
客户端
,英文名字client
。她叫
服务端
,英文名字server
。
这一年,我们出生了。
是的,我们都是90后。
我爱她,可是她却远在天边。
为了和她可以互诉衷肠,我同时发明了HTTP协议。
一门世界上只有我和她能懂的语言,一种世界上只有我和她能懂的浪漫。
虽然我只能给她发出GET
操作,她也只能返回HTML
文档,但是已足够了。
当我发出 GET /index.html
时 她会返回
<html><body>Hello World</body>
</html>
可能在她看来,我也是她的全世界吧
。
我知道自己还不完美,所以给自己命名0.9版本
,我期待未来自己也能变得更好。
第2篇日记
1996年 5月
这是我的第二篇日记。
原谅我很少写日记,毕竟一位知名人物说过:“正常人谁写日记啊?!”
之前我只和她分享HTML,这已经远远不能满足我了,现在我还想和她分享图像、视频、二进制文件。
另外,我也想要和她有更多的接触,就像恋人除了牵手还想要拥抱接吻,我除了
GET还想要POST,HEAD
。
再次,在我的强烈要求下,每次交流能不能给点提示,省得老是被吐槽不解风情。所以,除了数据部分,每次通信加上了头信息
,大家都有个心理准备这次要干吗。
比如在请求数据头信息, Accept: */*会告诉她我能接受的数据类型,她若返回数据 Content-Type:image/jpeg我就知道她要分享自己的美照,Content-Type:video/mp4我就知道可以看到她美美的视频。
最后,唉,女孩子有时候真的是有点啰嗦的,所以我又在HTTP协议里加了Content-Encoding
,暗示她可以压缩一下数据。
比如 我会用 Accept-Encoding: gzip, deflate
来告诉她我能接受的压缩类型,而Content-Encoding: gzip
就是告诉我她的实际压缩类型。
可以看出来现在HTTP协议复杂了很多,但是我想说这是我们俩的特殊密码,我愿意记录下来,成为一份美好的回忆。
另外一个很尴尬的问题就是,她觉得我不太久,每个Tcp链接只能发送一个请求,发送数据就关闭,这让我很苦恼,所以有些浏览器在请求时,用了一个非标准的Connection字段
。
Connection: keep-alive
这样她就知道,我这次时间真的长了,不要再轻易断开链接。
不过遗憾的是,这个并没有纳入标准。
不管咋样,我觉得HTTP这次改的也算像模像样了,所以就命名1.0
吧。
有了这个里程碑,我和我的服务端之后交流可以更加丰富多彩了。
毕竟异地恋,最重要的还是有效、丰富的沟通。
第3篇日记
1997年1月
随着我们深入了解,我觉得我更爱她了,所以愿意做更多的事情。作为男人最大的尊严,我首先把
Connection: keep-alive
纳入标准,即没有声明默认不关闭。
其次,我已经受不了我一问她一答这个模式,我想尽可能一次把我更多的爱意发出去,
所以我引入管道机制
,允许我同时发出多个请求,当然她还是按照顺序,先后回应即可,最起码我已经做到位了。
我的付出也是有回报的,server也很体贴的给我传回来 Content-Length字段
,好让我方便知道她给了我多少数据。
但是有时候她要说的话太多了,我真的不想等待太久她处理完了才有回应,所以除了Content-Length,我同时在HTTP增加了Transfer-Encoding字段
,就表明回应将由数量未定的数据块组成。
比如 每个非空的数据块之前,会有一个16进制的数值,表示这个块的长度。最后是一个大小为0的块,就表示本次回应的数据发送完了。下面是一个例子。
HTTP/1.1 200 OK
Content-Type: text/plain
Transfer-Encoding: chunked25
This is the data in the first chunk1C
and this is the second one3
con8
sequence0
这样,我就可以立马收到她的回复,真好。
- 最后,除了
GET POST
等操作,我还增加了PUT ,PATCH
各种姿势来和她沟通,你们懂的。
虽然优化了不少,但是作为男人要谦虚点,所以我把版本命名为1.1
。
好的,就到这里吧,我会继续努力的,为了她。
- 2009年终于第三者 来了!!!
听说谷歌公开了SPDY协议
,还是用来解决我的HTTP1.1 效率不高
的问题?我不太开心,我还是喜欢我的HTTP协议。(男人的专一呀)
server还问我能不能也把HTTP也优化优化,无语,我通过我的HTTP已经和她谈了18年的恋爱了。
就这样吧,不想写了,爱咋咋地。
第4篇日记
2015年 5月
爱一个人,真的会让自己变得优秀啊。为了能和我的她走的更近,我还是狠狠地把HTTP优化了下。
虽然是在
SPDY
的协议基础上,但是,不重要!
大概主要几点吧:
- 二进制编码
HTTP/1.1版的头信息肯定是文本(ASCII编码),数据体可以是文本,也可以是二进制,文本解析肯定不如二进制啊,所以直接彻底点,`都变成二进制了`。
这样我们可以快速理解对方的诉求。
- 并发返回数据
之前说我这可以同时发出多个请求,server按照顺序处理,但是我不想一个个接收她的回应,所以她也可以并发返回给我数据啦。
- 压缩数据
恋爱越久,越怕对方说重复的话,所以除了数据体,我这次把头信息也进行了压缩。一方面可以使用gzip/ compress 进行压缩,另外我和她同时维护一张头信息表,所有字段都会存入这个表,生成一个索引号,以后就不发送同样字段了,只发送索引号,这样就提高速度了。
- 主动推送
这个是最重要的,服务端可以主动给客户端发送资源了,而不是我必须先发个请求。也就是当我走了99步之后,剩下的一步终于是她向我走来。
这次优化太多了,我决定直接命名HTTP2.0
,当然之后还会有3.0,4.0。为了她,我愿意变得更加优秀。
- 安全措施
为了在“深入交流”的时候更安全 我戴上了ssl安全套接层 变成了https
结束语
从前车马很慢,书信很远,一生只够爱一个人。
如今,HTTP可以让你的爱意毫秒级传达给对方,但是也更祝福大家像我一样,得之所爱,一生被爱。
http协议详解
*您的关注、点赞、在看、分享真的是我创作的最大动力!没闹*!
90后HTTP 的爱情故事相关推荐
- 90 后程序员薪资大揭秘:有人刚毕业年薪 200 万,有人月薪不足 1 万
作者 | 素年清时 责编 | 伍杏玲 出品 | 程序人生(ID:coder_life) 相信大家最近都被华为给几名新员工开出的巨额工资给刷屏了,根据任正非签发的一份总裁办电子邮件,华为对八名 2019 ...
- 90 后程序员健康现状:掉头发、油腻、腰椎间盘突出……| 程序员有话说
作者 | 年素清 责编 | 伍杏玲 出品 | 程序人生(ID:coder_life) 研究表明,我们30岁以后人体开始进入衰老期,从30岁开始肌肉的衰竭速度明显大于生长速度.这意味着,第一批90后即将 ...
- 90 后码农搬砖心态,有的斗志昂扬,有的行尸走肉
作者 | 年素清 责编 | 伍杏玲 出品 | 程序人生(ID:coder_life) 掐指一算,90后的码农们已经搬了好几个年头的砖了,长则七八年,短的也有三四年了,初入职场的菜鸟们早已长成了能够独当 ...
- 大数据揭示90后爱情观,“有钱”只能排最后
导读:如今90后生活状态如何?近日,中国经济生活大调查结果公布,有些数据还是挺出乎意料的. 图片来源/ 新华社 如今大学生的生活状态如何? 他们对自己生活满意吗? 幸福感高不高? 更看重的是什么? 究 ...
- 90后歌单精选100首,我有歌,你有故事吗?
网易云音乐给我推荐的90后歌单,真的太久没听了,我有歌,你有故事吗? 1.别在我离开之前离开 2.有一种爱叫做放手 3.六月的雨 4.不要用我的爱来伤害我 5.江南 6.快乐崇拜 7.折子戏 (泪目了 ...
- 巨儒艮、漂泊信天翁……这位90后中科院动物所研究员用日历讲述“物种故事”...
<哈利波特>的书迷都知道一位卢平教授,那是哈利三年级黑魔法防御术课的老师.而果壳网的粉丝们口口相传的,也有一位以优美的笔触讲述物种故事的"卢平教授".不过,与小说中那位 ...
- 22岁90后白羊座罗生和勒索病毒的背后故事
有些事从开始就注定了结局,年仅22岁的罗生(化名)可能没想到这一天来的这么快,刺激.兴奋.担忧.害怕.恐惧.麻木.坦然,仅仅5天这个年轻人可谓体会了一把"人生巅峰". 图为病毒作者 ...
- 农村90后李传帅的创业故事
多种赚钱模式,农妇们的春天 李传帅是个 90 后, 8 岁时母亲离世,父亲受刺激后离家出走,自幼跟着爷爷奶奶长大. 初中辍学之后,李传帅在家务农三年,辗转长沙.青岛.天津,做过保安.鞋厂工人.电脑维修 ...
- 真实揭秘90后程序员婚恋现状,有点扎心!
导读:目前,90后已经成为婚恋市场的主力军,且在互联网占据人们大部分的生活和工作的当下,90后"找对象"的方式也互联网化:据有缘网<90后大众婚恋行为报告2019>报告 ...
最新文章
- TrackMouseEvent介绍
- python: ImportError:DLL load failed 解决方法。
- .net中对HTTP请求的两种请求:Get和Post的操作
- oracle根据分区移动,Oracle 12c 在线移动分区和部分分区read only
- android百度网盘倍速,百度网盘在线倍数播放-全网最强,已做群组视频适配,不用保存文件也可倍速,无vip限制(附加安卓倍速版)...
- centos7中yum源安装mysql_centos7下使用yum安装mysql
- 传智播客java20套源码_Hanselminutes播客20
- axio请求与响应拦截器
- Word排版技巧分享
- C++快速入门学习笔记(二)
- 0-VMware Horizon 2203 虚拟桌面-目录大纲
- 浏览器解析jsx_React 初窥:JSX 详解
- 【损失函数系列】softmax loss损失函数详解
- STC8H单片机I2C协议驱动OLED 的困惑
- 让别人叫爸爸的恶搞程序,第一天写程序,免费分享给大家,希望喜欢的一键三连多多支持。
- 与Xcode比照Adobe AIR开发iOS的优势和局限
- 5000词学英语——DAY2
- 电赛知识补充——电机篇
- 深入分析Win32k系统调用过滤机制
- 【Windows】win10家庭版无法被远程桌面(mstsc)连接的解决方案
热门文章
- k8s kubeadm 安装
- Unity SteamVR报错问题却影响运行的记录(Log path could not be located (112)“)
- 8255控制交通灯实验 c语言 main,交通灯控制实验
- 如何用云服务器进行深度学习
- 四川理工计算机专业好不好,急!!!!四川理工 、 宜宾学院 、 内江师范学院 哪个学校计算机专业好点?...
- MTI姿态传感器学习笔记
- Python绘制气泡图
- 如何利用微信活码快速裂变100个微信群?
- 爱快可以外接文件服务器吗,听说爱快路由器也支持NAS了?
- JDBC学习笔记(SQL语句的执行)