HTTP 协议详解
HTTP(HyperText Transfer Protocol,超文本传输协议)是互联网中最基本的协议之一,用于在客户端(通常是浏览器)和服务器之间传输超媒体文档(HTML)。
HTTP协议包含、请求与响应结构、常用方法、状态码、头部字段以及安全性等内容。
HTTP 是一种应用层协议,主要用于分布式、协作式信息系统中。它基于请求-响应模型,客户端发送请求到服务器,服务器返回响应。HTTP 通常运行在TCP之上,默认端口为80。
HTTP 的发展历史
- HTTP/0.9(1991年):最早的版本,仅支持GET请求,用于传输纯文本HTML。
- HTTP/1.0(1996年):引入了请求和响应头,支持多种方法和状态码,增强了协议的功能。
- HTTP/1.1(1997年):当前广泛使用的版本,增加了持久连接、请求流水线、分块传输等特性,提高了性能和灵活性。
- HTTP/2(2015年):引入二进制协议、多路复用、头部压缩等优化,显著提升传输效率。
- HTTP/3(2022年):基于QUIC传输协议,旨在解决HTTP/2中的队头阻塞问题,进一步提升性能和安全性。
HTTP 的基本概念
- 客户端(Client):发起HTTP请求的实体,通常是浏览器或移动应用。
- 服务器(Server):接收并处理HTTP请求,返回响应的实体。
- 请求(Request):客户端向服务器发送的信息,包括方法、URL、头部和主体。
- 响应(Response):服务器返回给客户端的信息,包括状态码、头部和主体。
- 无状态协议(Stateless Protocol):每个请求都是独立的,服务器不保留客户端的状态信息。
HTTP 请求与响应结构
请求结构
一个标准的HTTP请求由以下几个部分组成:
<Method> <Request-URL> <HTTP-Version>
<Header1>: <Value1>
<Header2>: <Value2>
...
<Body>
-
请求行(Request Line):