HTTP
中文名超文本传输协议
外文名HTTP
工作层应用层
基础架构于TCP之上(HTTP/3基于QUIC)
适用浏览器Firefox、Google Chrome等
作用规定WWW服务器与浏览器之间信息传递规范

简介

编辑

万维网(WWW)发源于欧洲日内瓦的欧洲核子研究组织(CERN)。1990年,HTTP成为WWW的支撑协议,当时由其创始人蒂姆·伯纳斯‑李提出[1]。随后,万维网联盟(W3C)成立,并联合互联网工程任务组(IETF)进一步完善和发布HTTP标准[2]。

HTTP是一种协议规范,记录于文档中,为实际通信程序提供标准。服务器端实现有 httpd、nginx 等,客户端实现主要是Web浏览器,例如 Firefox、Google Chrome 等[3]。

发展历史

编辑

HTTP自诞生以来经历了多个版本的演进。

HTTP/0.9

编辑

HTTP的初始版本(后称0.9)于1991年发布。请求仅由一行`GET`方法加资源路径组成,响应只包含HTML文件本身,无HTTP标头和状态码[4]。

HTTP/1.0

编辑

HTTP/1.0于1996年作为RFC 1945正式发布[4]。相比0.9版本,它引入了版本信息、状态码行、HTTP标头以及`Content-Type`支持,使得协议可扩展并能传输多种文档类型。但每个请求仍需新建TCP连接。

HTTP/1.1

编辑

HTTP/1.1于1997年发布(RFC 2068,后由RFC 2616取代,现为RFC 7230系列)[5][6]。主要改进包括持久连接、新增PUT/PATCH/OPTIONS/DELETE等方法、扩展状态码、断点续传、支持TLS以及引入Host请求头以支持同一IP上的多域名服务。

HTTP/2

编辑

HTTP/2于2015年发布(RFC 7540,现为RFC 9113互联网标准)[7][8]。它采用二进制分帧层,取代了之前的纯文本格式,显著提高了页面加载性能。

HTTP/3

编辑

HTTP/3基于QUIC协议(RFC 9114)[9],于2022年正式成为标准。它使用UDP传输,减少了连接建立时延,并已获得大多数主流浏览器支持[3]。

工作原理

编辑

HTTP采用请求/响应模型。客户端向服务器发送请求,包含请求方法、URL、协议版本及请求头等;服务器处理后返回响应,包含协议版本、状态码(如200)、原因短语、响应首部字段及实体主体[6]。

报文格式

编辑

HTTP请求和响应消息的首部以ASCII文本形式给出,消息内容则具有类似MIME的格式。请求报文由请求行、请求首部字段和内容实体构成;响应报文由状态行、响应首部字段和实体主体构成[6]。

状态码

编辑

HTTP状态码指示请求结果,分为五类[10]:

  • 1xx(信息性):请求已接收,继续处理。
  • 2xx(成功):请求已成功被服务器接收、理解并处理。
  • 3xx(重定向):需进一步操作以完成请求。
  • 4xx(客户端错误):请求包含语法错误或无法完成。
  • 5xx(服务器错误):服务器在处理请求时发生错误。

参考文献

编辑