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

写作背景

最近在口试一些前端工程师时,我总会问一个题目,’您有相识过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协定(二)最先进入HTTP的天下

    原文作者:extendsObject
    原文地址: https://segmentfault.com/a/1190000019183829
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞