HTTP框架修炼之道 | 青训营笔记

76 阅读3分钟

HTTP框架修炼之道 | 青训营笔记

HTTP协议是什么

HTTP是一种用于在 Web 上传输数据的协议。它是一种应用层协议,建立在 TCP/IP 协议栈之上,简单来说就是客户端和服务端进行数据传输的一种规则。之所以叫做超文本,是因为普通文字是文本,而人们想要传输的数据不再局限于普通的文本,更多的是JPG、MP3等二进制流形式的图片视频等数据。

image.png

为什么需要HTTP协议

为什么我们需要HTTP协议呢?因为计算机只会识别二进制流,面对一堆没有任何规律的二进制流,如果我们不加以边界,肯定是无法正确的传输数据的。我们需要HTTP协议来规范网络传输数据的格式。

image.png

HTTP请求的组成

HTTP请求由请求行,请求头,请求体三部分组成,如下图所示。

image.png

image.png

请求行

请求行是 HTTP 请求的第一个部分,它包含请求方法、URL 和 HTTP 版本信息。下方举例:

GET /sis HTTP/1.1

其中Method(请求方法)有非常多,以下举例RESTFUL中最常用的四种Method:

  • GET:一个指定资源的表示形式,使用GET的请求应该只被用于获取数据
  • POST:用于将实体提交到指定的资源,通常导致在服务器上的状态变化或副作用
  • PUT:用请求有效载荷替换目标资源的所有当前表示
  • DELETE:删除指定的资源HEAD请求一个与GET请求的响应相同的响应,但没有响应体

请求头

请求头是 HTTP 请求的第二个部分,它包含请求的元数据,如请求方法、数据类型、编码方式等。下方举例:

Content-Type: text/plain
Host: 127.0.0.1:8888
Context-Length: 28

请求体

请求体是 HTTP 请求的第三个部分,它包含请求需要传输的数据。请求体通常用于传输文件、表单数据和二进制数据等。下方举例:

Let's watch a moviw together(可以替换成任何需要传输的数据)

HTTP优点

  • 简单快速:客户向服务器请求服务时,只需传送请求方法和路径,非常简单。也正是由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
  • 灵活:HTTP允许传输任意类型的数据对象。

HTTP缺点

  • 队头阻塞
  • 传输效率低
  • 通信使用明文,内容可能会被窃听

总结

随着互联网应用的不断发展,HTTP 1.1 协议的一些限制开始显现出来,例如传输速度较慢、安全性不高等。因此,HTTP 2.0 协议发布了,它引入了一些新的技术和特性,例如多路复用等,进一步提高了传输速度和安全性。

网络传输协议一直在不断发展和改进,以满足不断增长的互联网应用需求。从HTTP1到HTTP2,再到现在的QUIC(基于UDP实现,解决了HTTP的队头阻塞问题),一直都在不断地进步和探索。

image.png

个人思考

计算机网络是互联网的基础,是计算机与计算机之间进行通信的桥梁,而HTTP 协议则是互联网上应用最广泛的协议之一。计算机网络和 HTTP 协议对于计算机专业的大学生来说是非常重要的,它们不仅为我们提供了互联网上的资源和服务,同时也是我们了解和掌握互联网工作原理和技术应用的基础。