什么是HTTP(超文本传输​​协议)?

什么是HTTP(超文本传输​​协议)?

HTTP(超文本传输协议) 是一种应用层协议,用于实现 Web 客户端(如浏览器)与 Web 服务器之间的通信。HTTP 定义了客户端如何请求资源,以及服务器如何返回请求的内容或其他信息。

当用户访问网站时,浏览器通过 HTTP 请求 HTML 页面、图像和脚本等资源,服务器则通过 HTTP 响应返回相应内容。HTTP 还支持 Web 应用与 API 之间的通信,使不同系统能够交换数据。

HTTP 是如何工作的?

HTTP 采用客户端-服务器模型,使 Web 浏览器及其他客户端能够通过网络与服务器进行通信。当用户打开网站或与 Web 应用进行交互时,客户端会向托管目标资源的服务器发起请求。

一次典型的 HTTP 通信通常包含以下三个步骤:

  1. 请求: 客户端向服务器发送 HTTP 请求,以获取资源或执行特定操作。
  2. 处理: 服务器接收请求,并根据请求内容确定相应的处理方式。
  3. 响应: 服务器返回 HTTP 响应,客户端接收并处理返回的信息,以呈现网页或处理所请求的数据。

什么是 HTTP 请求与响应?

HTTP 请求与响应是客户端和服务器之间交换的消息。请求用于指定客户端希望执行的操作,响应则用于反馈操作结果并返回相关数据。

HTTP 请求

HTTP 请求通常包含请求方法、URL 或路径、请求头,以及可选的请求体。

例如,浏览器可以发送 GET 请求来获取网页,而应用程序可以使用 POST 请求提交用户注册信息。请求头则提供额外信息,例如客户端可接受的内容格式、身份验证凭据和客户端偏好设置。

HTTP 响应

HTTP 响应包含用于指示请求处理结果的状态码、提供附加信息的响应头,以及可选的响应体。响应体通常包含请求的资源或其他数据。

例如,200 OK 表示请求成功,404 Not Found 表示找不到请求的资源。响应头中的 Content-Type 字段用于标识返回内容的媒体类型,例如 text/html、application/json 或 image/jpeg。

常见的 HTTP 方法与状态码

常见的 HTTP 方法

HTTP 方法用于定义客户端可以对资源执行的操作,例如获取网页、提交数据或更新资源。不同的方法对应不同的预期操作。

  • GET: 从服务器获取资源。
  • POST: 向服务器提交数据,通常用于创建资源或触发特定操作。
  • PUT: 在指定位置创建资源或替换现有资源。
  • PATCH: 对资源进行部分更新。
  • DELETE: 请求删除指定资源。
  • HEAD: 获取响应头,但不返回响应体。

常见的 HTTP 状态码

HTTP 状态码是 HTTP 响应中的三位数字,用于指示请求的处理结果。状态码分为五类,从 1xx(信息响应)到 5xx(服务器错误)。

  • 1xx – 信息响应: 表示服务器已收到请求,通信或处理过程仍在继续。
  • 2xx – 成功响应: 表示请求已成功处理,例如 200 OK 或 201 Created。
  • 3xx – 重定向: 表示客户端需要采取进一步操作,例如访问重定向后的 URL。
  • 4xx – 客户端错误: 表示请求存在问题,例如 400 Bad Request、403 Forbidden 或 404 Not Found。
  • 5xx – 服务器错误: 表示服务器在处理请求时遇到问题,例如 500 Internal Server Error 或 503 Service Unavailable。

HTTP 有哪些用途?

HTTP 支持多种在线服务之间的通信,常见应用场景包括:

  • 网站内容交付: 传输 HTML、CSS、JavaScript、图像及其他网页资源。
  • Web 应用: 支持交互功能、表单提交和用户身份验证流程。
  • API 通信: 在不同应用程序和服务之间交换信息,通常使用 JSON 等数据格式。
  • 文件传输: 上传和下载文档、图像及其他文件。
  • 流媒体与媒体交付: 通过基于 HTTP 的技术传输音频、视频及其他媒体内容。

HTTP 与 HTTPS 有什么区别?

HTTP 和 HTTPS 都用于实现客户端与 Web 服务器之间的通信,但两者在安全性和数据保护方面存在区别。

对比维度 HTTP HTTPS
全称 Hypertext Transfer Protocol Hypertext Transfer Protocol Secure
加密方式 协议本身不对数据进行加密 使用 TLS 加密通信
数据安全 数据容易遭到拦截或篡改 有助于防止数据在传输过程中被拦截或篡改
服务器身份验证 本身不具备验证服务器身份的机制 使用数字证书帮助验证服务器身份
默认端口 80 443
URL 前缀 http:// https://
常见应用场景 非敏感信息传输和测试环境 现代网站、在线交易和 Web 应用

如何提升 HTTP 交付性能?

提升 HTTP 交付性能,可以通过将内容缓存到更靠近用户的位置、优化动态内容、采用 HTTP/2 和 HTTP/3 等现代协议,以及缓解可能影响服务可用性的恶意流量来实现。

CDNetworks 将网络性能优化解决方案与 Web 应用防火墙(WAF)和 DDoS 云清洗相结合,以提升 HTTP 交付性能,并保护网站和应用免受 Web 应用攻击及 DDoS 攻击。

了解 CDNetworks 的 HTTP 交付与安全解决方案。

常见问题

HTTP 是一种无状态协议吗?

HTTP 是一种无状态协议,这意味着每个请求都是独立的,协议本身不会在请求之间自动保留客户端状态。应用程序可以通过 Cookie、令牌和服务器端会话存储等机制来维护会话状态。

HTTP 请求的示例是什么?

HTTP 请求的一个示例是 GET /index.html HTTP/1.1,它表示客户端请求 Web 服务器获取 /index.html 资源。

DDoS 攻击可以通过 HTTP 发起吗?

HTTP 可被用于发起 DDoS 攻击,攻击者通过发送大量请求,试图耗尽网站或应用的资源。HTTP 洪水攻击是常见的一种攻击方式,会消耗服务器资源并影响服务的正常运行。

HTTP 可以用于文件传输吗?

HTTP 支持文件传输,浏览器和应用程序可以通过 HTTP 请求与响应上传和下载文件。

HTTP 必须使用 TCP 连接吗?

HTTP 并非始终需要使用 TCP 连接。HTTP/1.1 和 HTTP/2 使用 TCP,而 HTTP/3 则通过 UDP 传输 QUIC。