资讯专栏INFORMATION COLUMN

带你深入浅出HTTP协议(一)

wing324 / 218人阅读

摘要:或许对于刚接触协议的同学,或许有些理解不了上面的这句话。这样,在接受数据方,只要判断数据的前俩位标识,来解析固定的格式便可,至此,我们的简陋版的协议就完成了。下节内容带你深入浅出协议二开始进入的世界

写作背景

最近在面试一些前端工程师时,我总会问一个问题,"您有了解过HTTP协议吗?"有一些呢,答着还不错,有一些呢,回答有些差强人意,而有一些呢,竟然直接和我说身为前端不需要了解这些,这些是后端所需要了解的。在我看来,不管是前端与后端,了解HTTP协议是必要的,毕竟,我们吃的就是这一碗饭,不是吗?

何为协议?

百度词条中是这样解释的:

协议,网络协议的简称,网络协议是通信计算机双方必须共同遵从的一组约定。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。它的三要素是:语法、语义、时序。

或许对于刚接触协议的同学,或许有些理解不了上面的这句话。那么协议到底是什么呢?
我们都知道,计算机传输数据都是以二进制的形式来传输,也就是0,1 那么它是怎么转换为我们所看到的文字,图像,视频的呢? 这里有很重要一个环节就是编码---解码
例如:‘东’字的UTF-8编码转换为二进制便是 111001001011100010011100,那么我怎样把这个字发送给你呢?你又怎么知道我发送的是什么呢?所以,协议就是这样应运而生

设计一个协议

继续上面的问题,比如我现在把‘东’字编码之后的,发给你之后,你怎么知道我发送的是文字呢?就算是知道我发送的文字,你又以什么编码格式去解码我发送的数据呢?所以,我们现在来设计一个协议,解决上面所说的问题。
首先,解决这个问题 ‘你怎么知道我发送的是文字呢?’在计算机世界中,我们接触到的不仅仅是文本,还有图像,视频等等等等。。。所以,我们现在需要定义我们协议的第一个字段
我们把我们的数据类型用我们报文中的第一位标识 ,0表示发送的数据为文本,用1来表示数据为图片
所以,在我发送我的数据时,我会把‘东’的UTF-8二进制编码前加入一个0,最后结果为这样 0111001001011100010011100,在接受到数据的时候,我会把报文的第一位拿来判断,是文本还是图像,但是现在又遇到一个问题,我又该以哪种编码格式解析这一串数据呢?
解决第二个问题你又以什么编码格式去解码我发送的数据呢?
既然解决了第一个问题,那么我们的第二个问题就比较好解决了,当数据第一位为0的时候,也就是标识为文本的时候,我在数据第二位再添加一个标识符,来表示我的文本编码格式 0表示UTF-8
1则表示GBK 所以,现在我所发送的数据变成了这样 00111001001011100010011100,而当数据第一位为1的时候,也就是标识为图像的时候,我的数据第二位则用 0表示png
1表示GIF
这样,在接受数据方,只要判断数据的前俩位标识,来解析固定的格式便可,至此,我们的简陋版的‘协议’就完成了。


下节内容 带你深入浅出HTTP协议(二)开始进入HTTP的世界

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/31465.html

相关文章

  • 带你深入浅出HTTP协议

    摘要:或许对于刚接触协议的同学,或许有些理解不了上面的这句话。这样,在接受数据方,只要判断数据的前俩位标识,来解析固定的格式便可,至此,我们的简陋版的协议就完成了。下节内容带你深入浅出协议二开始进入的世界 写作背景 最近在面试一些前端工程师时,我总会问一个问题,您有了解过HTTP协议吗?有一些呢,答着还不错,有一些呢,回答有些差强人意,而有一些呢,竟然直接和我说身为前端不需要了解这些,这些是...

    TigerChain 评论0 收藏0
  • 带你深入浅出HTTP协议

    摘要:或许对于刚接触协议的同学,或许有些理解不了上面的这句话。这样,在接受数据方,只要判断数据的前俩位标识,来解析固定的格式便可,至此,我们的简陋版的协议就完成了。下节内容带你深入浅出协议二开始进入的世界 写作背景 最近在面试一些前端工程师时,我总会问一个问题,您有了解过HTTP协议吗?有一些呢,答着还不错,有一些呢,回答有些差强人意,而有一些呢,竟然直接和我说身为前端不需要了解这些,这些是...

    wuyumin 评论0 收藏0
  • 前端基础

    摘要:谈起闭包,它可是两个核心技术之一异步基于打造前端持续集成开发环境本文将以一个标准的项目为例,完全抛弃传统的前端项目开发部署方式,基于容器技术打造一个精简的前端持续集成的开发环境。 这一次,彻底弄懂 JavaScript 执行机制 本文的目的就是要保证你彻底弄懂javascript的执行机制,如果读完本文还不懂,可以揍我。 不论你是javascript新手还是老鸟,不论是面试求职,还是日...

    graf 评论0 收藏0
  • 信安 - 收藏集 - 掘金

    摘要:咱妈说别乱点链接之浅谈攻击阅读掘金作者马达编辑迷鹿马达,精通开发开发,擅长接口设计以及平台化建设,独自主导过多个产品。一题目购物应用分环境要求安全学习资料汇总掘金安全学习资料汇总安全学习网站收集 咱妈说别乱点链接之浅谈 CSRF 攻击 - 阅读 - 掘金作者 | 马达编辑 | 迷鹿 马达, 精通PHP开发、Web开发,擅长api接口设计以及平台化建设,独自主导过多个Web产品。目前就职...

    lushan 评论0 收藏0
  • 信安 - 收藏集 - 掘金

    摘要:咱妈说别乱点链接之浅谈攻击阅读掘金作者马达编辑迷鹿马达,精通开发开发,擅长接口设计以及平台化建设,独自主导过多个产品。一题目购物应用分环境要求安全学习资料汇总掘金安全学习资料汇总安全学习网站收集 咱妈说别乱点链接之浅谈 CSRF 攻击 - 阅读 - 掘金作者 | 马达编辑 | 迷鹿 马达, 精通PHP开发、Web开发,擅长api接口设计以及平台化建设,独自主导过多个Web产品。目前就职...

    codecraft 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<