青训营笔记5.1——初识 HTTP 协议

80 阅读4分钟

🎯课程表

📋前言

这是我参与「第五届青训营 」伴学笔记创作活动的第 7 天。

今天已经开始步入正轨了,重新开始了做笔记的学习节奏,年前那段时间落下了一些内容,要学习内容较多,因此分为几个部分来学习,课程的内容是学习http协议的内容,通过该篇文章记录在课程中学到的知识以及重点,对此做相对应的笔记来巩固学习。

📑课程介绍

  • 在正式讲解 Http 协议的技术细节前,本节课前置介绍 Http 协议的基本定义和特点,在此基础上,对于 Http 协议的发展历程及报文结构展开进一步分析。

🔥课程重点

  1. HTTP 协议的基本定义
  2. HTTP 协议主要特征
  3. HTTP 协议发展历程
  4. HTTP 协议的报文结构

📝具体笔记

关于 HTTP 协议

超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而消息内容则具有一个类似MIME的格式。这个简单模型是早期 Web 成功的有功之臣,因为它使开发和部署非常地直截了当。

发展历程

0.9

0.9协议是适用于各种数据信息的简洁快速协议,但是远不能满足日益发展的各种应用的需要。0.9协议就是一个交换信息的无序协议,仅仅限于文字。由于无法进行内容的协商,在双发的握手和协议中,并有规定双发的内容是什么,也就是图片是无法显示和处理的。

1.0

到了1.0协议阶段,也就是在1982年,Tim Berners-Lee提出了HTTP/1.0。在此后的不断丰富和发展中,HTTP/1.0成为最重要的面向事务的应用层协议。该协议对每一次请求/响应建立并拆除一次连接。其特点是简单、易于管理,所以它符合了大家的需要,得到了广泛的应用。

1.1

在1.0协议中,双方规定了连接方式和连接类型,这已经极大扩展了HTTP的领域,但对于互联网最重要的速度和效率,并没有太多的考虑。毕竟,作为协议的制定者,当时也没有想到HTTP会有那么快的普及速度。 关于HTTP1.1协议的具体内容可以参考RFC 2616。 

2.0

HTTP2.0的前身是HTTP1.0和HTTP1.1。虽然之前仅仅只有两个版本,但这两个版本所包含的协议规范之庞大,足以让任何一个有经验的工程师为之头疼。网络协议新版本并不会马上取代旧版本。实际上,1.0和1.1在之后很长的一段时间内一直并存,这是由于网络基础设施更新缓慢所决定的。

报文结构

HTTP报文由从客户机到服务器的请求和从服务器到客户机的响应构成。请求报文格式如下:

请求行 - 通用信息头 - 请求头 - 实体头 - 报文主体

请求行以方法字段开始,后面分别是URL字段和HTTP协议版本字段,并以CRLF结尾。SP是分隔符。除了在最后的CRLF序列中CF和LF是必需的之外,其他都可以不要。有关通用信息头,请求头和实体头方面的具体内容可以参照相关文件。

应答报文格式如下:

状态行 - 通用信息头 - 响应头 - 实体头 - 报文主体

状态码元由3位数字组成,表示请求是否被理解或被满足。原因分析是对原文的状态码作简短的描述,状态码用来支持自动操作,而原因分析用来供用户使用。客户机无需用来检查或显示语法。有关通用信息头,响应头和实体头方面的具体内容可以参照相关文件。

课程笔记截图

初识http

34e1553fba5926415db9bb5e9f2ea95.png

0a0ac3da4667c427a3b1f85026661c9.png

发展

38c8e4a82c5d09c8f2960b2f37e701b.png

4f7c2c66f7e2cfbbbfe2ece05d936d1.png

1ae69258a735409cd65ed842461879e.png

dc69e4b46be79a042dae369914db843.png

7e78248e92499e81976c10fd410cd81.png

28b8a744d52eba50b16c0f7756cbb15.png

509085647986ba054c88c72e59e84da.png

文章仅为个人学习笔记,如有错误,欢迎指正。