文章目录

  • 第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 的爱情故事相关推荐

  1. 90 后程序员薪资大揭秘:有人刚毕业年薪 200 万,有人月薪不足 1 万

    作者 | 素年清时 责编 | 伍杏玲 出品 | 程序人生(ID:coder_life) 相信大家最近都被华为给几名新员工开出的巨额工资给刷屏了,根据任正非签发的一份总裁办电子邮件,华为对八名 2019 ...

  2. 90 后程序员健康现状:掉头发、油腻、腰椎间盘突出……| 程序员有话说

    作者 | 年素清 责编 | 伍杏玲 出品 | 程序人生(ID:coder_life) 研究表明,我们30岁以后人体开始进入衰老期,从30岁开始肌肉的衰竭速度明显大于生长速度.这意味着,第一批90后即将 ...

  3. 90 后码农搬砖心态,有的斗志昂扬,有的行尸走肉

    作者 | 年素清 责编 | 伍杏玲 出品 | 程序人生(ID:coder_life) 掐指一算,90后的码农们已经搬了好几个年头的砖了,长则七八年,短的也有三四年了,初入职场的菜鸟们早已长成了能够独当 ...

  4. 大数据揭示90后爱情观,“有钱”只能排最后

    导读:如今90后生活状态如何?近日,中国经济生活大调查结果公布,有些数据还是挺出乎意料的. 图片来源/ 新华社 如今大学生的生活状态如何? 他们对自己生活满意吗? 幸福感高不高? 更看重的是什么? 究 ...

  5. 90后歌单精选100首,我有歌,你有故事吗?

    网易云音乐给我推荐的90后歌单,真的太久没听了,我有歌,你有故事吗? 1.别在我离开之前离开 2.有一种爱叫做放手 3.六月的雨 4.不要用我的爱来伤害我 5.江南 6.快乐崇拜 7.折子戏 (泪目了 ...

  6. 巨儒艮、漂泊信天翁……这位90后中科院动物所研究员用日历讲述“物种故事”...

    <哈利波特>的书迷都知道一位卢平教授,那是哈利三年级黑魔法防御术课的老师.而果壳网的粉丝们口口相传的,也有一位以优美的笔触讲述物种故事的"卢平教授".不过,与小说中那位 ...

  7. 22岁90后白羊座罗生和勒索病毒的背后故事

    有些事从开始就注定了结局,年仅22岁的罗生(化名)可能没想到这一天来的这么快,刺激.兴奋.担忧.害怕.恐惧.麻木.坦然,仅仅5天这个年轻人可谓体会了一把"人生巅峰". 图为病毒作者 ...

  8. 农村90后李传帅的创业故事

    多种赚钱模式,农妇们的春天 李传帅是个 90 后, 8 岁时母亲离世,父亲受刺激后离家出走,自幼跟着爷爷奶奶长大. 初中辍学之后,李传帅在家务农三年,辗转长沙.青岛.天津,做过保安.鞋厂工人.电脑维修 ...

  9. 真实揭秘90后程序员婚恋现状,有点扎心!

    导读:目前,90后已经成为婚恋市场的主力军,且在互联网占据人们大部分的生活和工作的当下,90后"找对象"的方式也互联网化:据有缘网<90后大众婚恋行为报告2019>报告 ...

最新文章

  1. TrackMouseEvent介绍
  2. python: ImportError:DLL load failed 解决方法。
  3. .net中对HTTP请求的两种请求:Get和Post的操作
  4. oracle根据分区移动,Oracle 12c 在线移动分区和部分分区read only
  5. android百度网盘倍速,百度网盘在线倍数播放-全网最强,已做群组视频适配,不用保存文件也可倍速,无vip限制(附加安卓倍速版)...
  6. centos7中yum源安装mysql_centos7下使用yum安装mysql
  7. 传智播客java20套源码_Hanselminutes播客20
  8. axio请求与响应拦截器
  9. Word排版技巧分享
  10. C++快速入门学习笔记(二)
  11. 0-VMware Horizon 2203 虚拟桌面-目录大纲
  12. 浏览器解析jsx_React 初窥:JSX 详解
  13. 【损失函数系列】softmax loss损失函数详解
  14. STC8H单片机I2C协议驱动OLED 的困惑
  15. 让别人叫爸爸的恶搞程序,第一天写程序,免费分享给大家,希望喜欢的一键三连多多支持。
  16. 与Xcode比照Adobe AIR开发iOS的优势和局限
  17. 5000词学英语——DAY2
  18. 电赛知识补充——电机篇
  19. 深入分析Win32k系统调用过滤机制
  20. 【Windows】win10家庭版无法被远程桌面(mstsc)连接的解决方案

热门文章

  1. k8s kubeadm 安装
  2. Unity SteamVR报错问题却影响运行的记录(Log path could not be located (112)“)
  3. 8255控制交通灯实验 c语言 main,交通灯控制实验
  4. 如何用云服务器进行深度学习
  5. 四川理工计算机专业好不好,急!!!!四川理工 、 宜宾学院 、 内江师范学院 哪个学校计算机专业好点?...
  6. MTI姿态传感器学习笔记
  7. Python绘制气泡图
  8. 如何利用微信活码快速裂变100个微信群?
  9. 爱快可以外接文件服务器吗,听说爱快路由器也支持NAS了?
  10. JDBC学习笔记(SQL语句的执行)