青训营笔记5.2——HTTP 协议的应用场景分析

143 阅读4分钟

🎯课程表

📋前言

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

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

📑课程介绍

  • 在本节课中将为大家带来 HTTP 真实的场景实践,以「今日头条」浏览器为例,为大家展示线上的 demo,对于该案例涉及的请求中的缓存策略展开具体分析。

🔥课程重点

  1. 场景分析 - 静态资源
  2. 场景分析 - 登录

📝具体笔记

关于 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 协议的应用场景分析

602a0f1f7ef09517b03a30bb560d0d1.png

34a4597cd2b9be69d9d99a340fe2bcd.png

5ddc42f8810f7743dba6b7069c8a155.png

3d6bfb30169b48aa60a835c9b7e62ac.png

bb5f1190e5addb235c16ea5d0504f9c.png

跨域

d0a5f629b2e2a16336b217338eb0aaf.png

e3cb2ed09342655b39d6acd24b02556.png

登录

5781f54150fc8d1107b26041f38cc7c.png

e2bdd588590246486dd0412e89b7608.png

46d9ca11b1707751ed78edb7dc64908.png

8fa2ded0d2215c93f232a5869c943f8.png

f453c3cf7bf08d3598c22b53456d99e.png

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