时隔四年,这个系列鸽了四年,我终于觉得我可以按照自己的思路和想法把这个系列完整的表达出来了. 想起四年前,那时候还是2018年的六月份,那时候我还工作不到两年,那时候我翻译了RFC2616的部分内容,发布在了博客园上,并在翻译不久后想要开始整理并学习HTTP相关的知识内容,那时候我以为我可以了. 但是在第一篇<真正"搞"懂http协议01之背景故事发布>之后,我发现我对整个系列的内容分布完全无从下手.这期间我也发布了很多系列内容(其实就是抄抄书),但是一方面没有花时间去刻意…
前面几篇文章,我从纵向的空间到横向的时间,再到一个具体的小栗子,可以说是全方位,无死角的覆盖了HTTP的大部分基本框架,但是我聊的都太宽泛了,很多内容都是一笔带过,再加上一句后面再说就草草结束了.并且我还漏了一点东西,就是HTTP本身. 所以那,这一章,我们回到我们的核心论点,来聊一聊HTTP的特性以及起始行中的核心内容. 一.What is HTTP? 这个问题如果大家看过前面几篇文章,肯定能很轻易的回答:HTTP是应用层协议,用来传输超文本,或者可以说是用来传输超媒体的一种协议,HTTP是无…
搞懂分布式技术19:使用RocketMQ事务消息解决分布式事务 初步认识RocketMQ的核心模块 rocketmq模块 rocketmq-broker:接受生产者发来的消息并存储(通过调用rocketmq-store),消费者从这里取得消息. rocketmq-client:提供发送.接受消息的客户端API. rocketmq-namesrv:NameServer,类似于Zookeeper,这里保存着消息的TopicName,队列等运行时的元信息.(有点NameNode的味道) rocketm…
去年读了<图解HTTP>.<图解TCP/IP>以及<图解网络硬件>但是读了之后并没有什么深刻的印象,只是有了一层模糊的脉络,刚好最近又接触了一些有关http的相关内容.所以,就打算把它写成一个系列,一方面可以让自己对http的理解更为深入.也可以为不懂不会http的同学在学习的路上先把荆棘剔除,以便学习的路更加的快速顺畅. http是前后端沟通的桥梁,无论是前端还是后端,都是极为重要的基础知识.大多数前端开发只关注页面布局好不好,css简不简洁,js的可读性可复用性是不…
上一篇我们简单的介绍了一下DoD模型和OSI模型,还着重的讲解了TCP的三次握手和四次挥手,让我们在空间层面,稍稍宏观的了解了HTTP所依赖的底层模型,那么这一篇,我们来追溯一下HTTP的历史,看一看HTTP在历史上经历了哪些发展和过程,才让这个协议一直经久不衰. 最开始,在20世纪60年代,也就是1950年到1960年之间,那时候我爹还没出生呢--但是美国国防部高等研究计划署(ARPA)建立了ARPA网,他有四个分布在各地的节点,被认为是互联网的始祖.信息时代的号角也在此刻吹响,人们即将迎来快…
一:HTTP和HTTPS的区别 HTTP是超文本传输协议,被用在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,因此HTTP协议不适合传输一些敏感信息,如:信用卡号,密码等支付信息.为了保证这些隐私数据能加密传输,于是网景公司设计了SSL用于对HTTP协议传输的数据进行加密,从而诞生了HTTPS. 两者主要区别: 1.https协议需要到CA申请证书,一般免费证书较少,因而需要一定费用.个人网站.小网站没有必要用. 2.http是超文本传输协议,信…
在前面的章节,我们把HTTP/1.1的大部分核心内容都过了一遍,并且给出了基于Node环境的一部分示例代码,想必大家对HTTP/1.1已经不再陌生,那么HTTP/1.1的学习基本上就结束了.这两篇文章,我会和大家一起,学习一下HTTP/2和HTTP/3. 还记得我们在之前的时间回溯那篇文章里,简单的聊过HTTP/2和HTTP/3,是为了提升HTTP/1.1所存在的性能问题的,这篇文章我们先来看看HTTP/2带来了哪些性能上的改进和提升.下一篇我们再来学习HTTP/3的性能优化. 不知道大家在第一…
我们知道,用来传输页面的协议就是HTTP协议,全称是超文本传输协议,而浏览器展示的页面则是用HTML编写的,HTML的全称则是超文本标记语言.你看,都叫做超文本,我在第一篇文章的时候也详细的聊过,超文本区别于文本的本质就是文本中具有超链接的文本. 当我们点击页面中的超链接,则会跳转到其它超文本页面,对于线性传统结构的文档,是一个根本性的变革. 一.重定向的基本概念和场景 点击超链接后,浏览器会解析URL,再用这个URL发起一个新的HTTP请求,跳转到其它页面.这样的跳转动作,是由浏览器的使用者发…
我们在之前的文章中介绍HTTP特性的时候聊过,HTTP是无状态的,每次聊起HTTP特性的时候,我都会回忆一下从前辉煌的日子,也就是互联网变革的初期,那时候其实HTTP不需要有状态,就是个浏览页面,没有什么需要记录信息的地方,所以无状态完全符合当时的场景. 另外,无状态也给HTTP带来了不少的好处,正是因为无状态,这样服务器就没有状态差异,就可以很轻易的组成集群,当然,缺点就是无法支持需要记录状态的事务.为了解决这个缺点,Cookie就出现了. 一.这个饼干是什么? Cookie的核心作用,其实就…
我真没想到这篇文章竟然写了将近一个月,一方面我在写这篇文章的时候阳了,所以将近有两周没干活,另外一方面,我发现在写基于Node的HTTP的demo的时候,我不会Node,所以我又要一边学学Node,一边百度,一边看HTTP,最后百度的东西百分之九十不能用,所以某些点就卡的我特别难受. 比如最后的分段传输的例子,我以为是浏览器会解析分段数据,谁知道是拼接在body里的. 其次,我还觉得是否这样去详细的逐字的写例子是不是有点本末倒置,本来是讲HTTP的,结果全是一些例子.但是我又觉得不这么写,你就知…