48小时系统班试听入口

解读HTTPHTTP工作原理及请求-响应全过程

发布作者:新盟教育 发布日期:2024-04-03 浏览人数:4545人

解读HTTPHTTP工作原理及请求-响应全过程

HTTP的发展历程可以追溯到1990年,当时由蒂姆·伯纳斯-李(Tim Berners-Lee)提出。随着全球网络的迅速发展,为了更好地满足用户需求,万维网联盟(World Wide Web Consortium)成立,并组织了Internet工程任务组(IETF)的相关小组,致力于进一步完善和发布HTTP协议的不断更新版本。 

最初的HTTP协议版本为HTTP/0.9,其功能较为简单,主要用于传输超文本信息。随着互联网的普及和应用场景的不断扩展,HTTP协议经历了多次重要的更新和演进,逐步向更加高效和安全的方向发展。其中,HTTP/1.0和HTTP/1.1版本带来了一系列改进,如持久连接、虚拟主机、缓存机制等,从而提升了协议的性能和稳定性。

简单文字排版方形二维码.png 

随着互联网技术的不断创新和发展,为了应对日益增长的网络负载和提高用户体验,HTTP/2协议应运而生。HTTP/2采用了多路复用技术、头部压缩和服务器推送等新特性,进一步提升了网络性能,实现了更快的页面加载速度和更低的延迟。

HTTP/2的基础上,HTTP/3协议推出,引入了基于UDP的传输协议QUIC(Quick UDP Internet Connections)。QUIC协议通过减少握手次数和降低网络延迟,进一步提高了网络连接的速度和稳定性,为用户提供了更加流畅的网络体验。

HTTP工作原理

HTTP是基于客户端/服务端(C/S)的架构模型。在HTTP请求及响应过程中,通常包括以下五个步骤:首先,客户端与服务器建立TCP连接;其次,客户端发送HTTP请求,该请求由请求行、请求头部、空行和请求数据四部分组成;随后,服务器接受请求并返回HTTP响应,该响应包含状态行、响应头部、空行和响应正文四部分;然后,TCP连接被释放;最后,客户端浏览器解析响应报文并显示,按照状态行、响应头部、响应正文的顺序进行解析,如正文数据为HTML,则客户端根据HTML的语法对其进行格式化,并在浏览器窗口中显示。 

HTTP特点描述

无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求后就断开连接。媒体独立:这意味着,只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送。客户端以及服务器通过头部字段指定适合的MIME Type内容类型。无状态:无状态是指协议对于事务处理没有记忆能力,这样做利于更快地处理大量事务,确保协议的可伸缩性。 

客户端请求消息

客户端发送的HTTP请求消息包括由请求行、请求头部、空行和请求数据四个部分组成,下图给出了请求报文的一般格式。 

客户端请求消息:请求行

请求行由请求方法字段、URI字段和HTTP协议版本字段3个字段组成。

请求方法:HTTP使用的请求方法,比如常见的GET/POST等。HTTP客户程序(例如浏览器),向服务器发送请求的时候必须指明请求类型。

URI:URI是一个统一资源标识符,它标识了请求所针对的资源。

协议版本:协议版本旨在允许发送方指示消息的格式和理解后续HTTP通信的能力 

HTTP请求方法

根据HTTP标准,HTTP请求可以使用多种请求方法。HTTP1.0定义了三种请求方法:GET、POST和HEAD方法。HTTP1.1新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE和CONNECT方法。 

客户端请求消息:请求头部

请求头部允许客户端向服务器传递关于请求的附加信息。这些字段充当请求修饰符,其语义相当于编程语言方法调用中的参数。 

请求头部字段 

客户端请求消息:请求数据

空行:它的作用是通过一个空行,告诉服务器请求头部到此为止。

请求数据:若方法字段是GET,则此项为空,没有数据。若方法字段是POST,则通常来说此处放置的是要提交的数据。 

服务器响应消息

HTTP响应消息由四个部分组成,分别是:状态行、响应头部、空行和响应正文。 

服务器响应消息:状态行

响应消息的第一行是状态行,由协议版本、状态码和原因短语组成,每个元素由空格字符分隔。

协议版本:协议版本旨在允许发送方指示消息的格式及其理解后续HTTP通信的能力。

状态码:一个3位整数结果码,用于向客户端返回操作结果。

原因短语:旨在对状态码进行简短的文本描述,帮助理解。 

状态码

HTTP状态码(HTTP Status Code)是服务器响应状态的3位数字码,用于向客户端返回操作结果。 

服务器响应消息:响应头部

响应头部允许服务器传递关于响应的附加信息,这些头部字段提供了关于服务器的相关信息以及URI所标识资源的信息。 

响应头部常见字段 

服务器响应消息:响应正文

空行:它的作用是通过一个空行,告诉客户端响应头部到此为止。

响应正文:响应的消息体,如果客户端请求的数据类型是纯数据则返回纯数据。如果请求的是HTML页面,则返回HTML代码。 

客户端请求消息:报文示例

客户端向服务器发送含有用户名密码的请求消息,进行登录认证。 

服务器响应消息:报文示例

服务器向客户端返回响应消息,认证成功。

 课程招生免费进群图书二维码.png


客服电话 15822722968 邮箱 799830458@qq.com 地址 天津市红桥区光荣道157号宝能创业中心2号楼-1、2门-907号
官方公众号
商务合作