什么是 超文本传输协议?
超文本传输协议是万维网的基础协议,定义了消息如何在 Web 浏览器和服务器之间格式化和传输。它是一种无状态的应用层协议,能够检索链接的资源。
快速了解
| 创建时间 | 1991 年由 Tim Berners-Lee 创建 |
|---|---|
| 规范文档 | 官方规范 |
工作原理
HTTP 由 Tim Berners-Lee 从 1989 年开始在 CERN 开发。它作为请求-响应协议运行:客户端向服务器发送请求,服务器响应请求的资源。HTTP/1.1(1997)添加了持久连接和分块传输。HTTP/2(2015)引入了多路复用和头部压缩。HTTP/3(2022)使用 QUIC 协议以提高性能。HTTP 方法包括 GET、POST、PUT、DELETE、PATCH、HEAD 和 OPTIONS。该协议是基于文本的,人类可读,便于调试。
主要特点
- 请求-响应协议模型
- 无状态 - 请求之间没有连接状态
- 基于文本,人类可读
- 支持多种方法(GET、POST、PUT、DELETE)
- 头部携带请求/响应的元数据
- 版本:HTTP/1.1、HTTP/2、HTTP/3
常见用途
- 网页检索
- API 通信
- 文件下载和上传
- 表单提交
- 流媒体传输
示例
Loading code...常见问题
GET 和 POST 请求有什么区别?
GET 请求用于获取数据,参数包含在 URL 中(可见且可收藏),有长度限制,应该是幂等的(可安全重复)。POST 请求将数据放在请求体中(URL 中不可见),可发送大量数据,用于创建/修改资源,且不应被浏览器缓存。
HTTP 无状态是什么意思?
HTTP 无状态意味着每个请求都是独立的——服务器不会记住同一客户端之前的请求。每个请求必须包含处理它所需的所有信息。为了维护用户会话,Web 应用程序使用 cookies、会话令牌或 URL 参数来跨多个请求跟踪状态。
HTTP 状态码是什么?不同范围代表什么意思?
HTTP 状态码表示请求的结果。1xx 是信息性的,2xx 表示成功(200 OK、201 Created),3xx 是重定向(301 永久、302 临时),4xx 是客户端错误(400 Bad Request、404 Not Found、403 Forbidden),5xx 是服务器错误(500 Internal Server Error、503 Service Unavailable)。
HTTP/1.1、HTTP/2 和 HTTP/3 有什么区别?
HTTP/1.1 通过持久连接顺序处理请求。HTTP/2(2015)引入了多路复用(一个连接处理多个请求)、头部压缩和服务器推送。HTTP/3(2022)使用 QUIC 替代 TCP,提供更快的连接建立、消除队头阻塞,并改善不稳定网络上的性能。
PUT 和 PATCH 方法有什么区别?
PUT 用提供的数据替换整个资源——如果省略某个字段,它可能被删除或设为默认值。PATCH 执行部分更新,只修改指定的字段而保留其他字段不变。发送完整资源表示时使用 PUT,更新特定属性时使用 PATCH。