HTTP框架修炼之道技术学习总结|青训营

68 阅读2分钟

HTTP协议

1.网络模型

在了解协议之前,我们先来了解一下常用网络模型。

OSI模型全称是Open System Interconnection Reference Model。它将网络划分为7个层次,它们分别是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。各层次各司其职又相互联系,共同维持网络的运作。相距较远位置的客户端与服务端在各个层次上进行逻辑连接,例如客户端的应用层与服务端的应用层在逻辑上进行连接。实际上它们最根本的交流都是通过物理层来实现的。

在后面的实际应用中,人们开发出了TCP/IP模型(Transmission Control Protocol/Internet Protocol),该模型有4层,分别是:网络接口层、网络层、传输层和应用层。实际上还有另外一种常见的5层网络模型,层次分别是物理层、数据链路层、网络层、传输层和应用层。

2.协议

协议是指在网络通信中用于规定数据传输格式、通信规则和错误处理等的约定。通俗来说,可以把协议理解为规则。在计算机遵循协议的前提下,计算机之间可以进行网络通信。协议有很多种类,如HTTP协议,TCP/IP协议和UDP协议等。

3.HTTP协议

HTTP全称是Hypertext Transfer Protocol,其协议是一种用于在网络上传输超文本的应用层协议。它用TCP作为传输层协议。HTTP协议是基于客户端-服务端模型的。客户端与服务端使用请求和相应进行通信。客户端可以向服务端发送HTTP请求,服务端收到请求后发送HTTP响应。

HTTP请求由请求行、请求头部、空行和请求体构成。请求行包含了请求的方法,URL(Uniform Resource Locator,统一资源定位器)和HTTP协议版本号;请求头部则包含一些附加信息,如内容类型等;空行用于分隔请求头部和请求体;请求体用于包含一些传输的数据。

而HTTP响应的结构则与HTTP请求的结构类似。

4.例子

下面是一个HTTP请求的代码,有助于理解HTTP协议。

`POST /api/users HTTP/1.1 
Host: example.com
Content-Type: application/json 

{ 
    "name": "John Doe", 
    "email": "john@example.com" 
}`