第四课:HTTP框架修炼之道 | 青训营

80 阅读3分钟

这里是了解 HTTP 是什么的课程。

HTTP 协议是什么

HTTP 协议:是超文本传输协议的简称,是一种用于传输超文本文档的应用层协议。它被设计用来在Web浏览器和Web服务器之间进行通信,使浏览器能够访问和加载网页上的内容。HTTP协议是无状态的,意味着同一个用户对同一服务器的多次请求不会被关联起来,请求之间相互独立。

为什么会有这样一个协议呢?

是因为不同的计算机进行数据传输的需要,计算机需要知道按照什么方式来传输数据和接收数据,所以就制定了一个协议用来规范,他就是 HTTP 协议。制定好协议才能让发收双方更好的进行文本数据的传输。

协议的标准

  • 首先需要一个明确的边界表示开始结束

协议开始->text->协议结束

  • 能够携带一些信息表示这段数据是什么消息消息的类型是什么等等。

协议开始->协议元数据->text->协议结束

协议的内容

  • 首先是一个请求行/状态行 ( first line )

请求行是由方法名、URL、协议版本组成。

方法名有不少:GET、HEAD、POST、PUT、DELETE、CONNECT、OPTIONS、TRACE、PATCH

状态行是由协议版本、状态码、状态码描述组成。 状态码:1xx、2xx、3xx、4xx、5xx

  • 然后是一个请求头/响应头

  • 最后是一个请求体/响应体

请求流程

  1. 构建请求:客户端准备请求数据,包括请求的方法、请求的URI、请求版本等信息。

  2. 查找缓存:客户端可以在本地缓存中查找是否有对应的资源,如果有,则可以直接使用缓存中的数据,避免向服务器发送请求。

  3. 准备IP地址和端口:客户端确定目标服务器的IP地址和端口,可以通过DNS解析域名得到IP地址。

  4. 等待TCP队列:如果客户端和服务器之间之前有其他未完成的连接,TCP协议将会按照先进先出的原则处理这些连接。

  5. 建立TCP连接:客户端和服务器通过TCP协议三次握手建立连接。

  6. 发送HTTP请求:客户端将构建的HTTP请求发送给服务器。

  7. 服务器处理请求:服务器接收请求,解析请求,根据请求的内容进行相应的处理,可以包括查数据库、处理业务逻辑等。

  8. 服务器响应请求:服务器根据处理结果生成HTTP响应,包括状态码、响应头信息和响应体等,然后发送给客户端。

  9. 断开连接:客户端接收完响应后,可以选择断开连接。如果请求中使用了Keep-Alive连接,则可以保持连接,避免每次请求都建立新的连接。

  10. 特殊情况处理:如果请求被重定向或者出现其他错误,客户端需要重新发送请求或者处理错误。

总结

http 协议是一个很常见的协议,几乎所有计算机之间信息交流都会使用 http 协议,乍看下去,http 协议很复杂,但其实我们按照上面的过程来慢慢理解,其实很简单,因为一个协议不可能十分复杂,这样会增加传输的效率和成本。

另外,http 协议也是应用层协议,所以他也是计算机网络的一个基础部分,学习 http 协议也能帮助我们理解网络中的计算机是怎么保持联系的。