Skip to content

什么是 HTTP 协议

HTTP(超文本传输协议,HyperText Transfer Protocol)是一种用于分布式、协作式、超媒体信息系统的应用层协议。HTTP 是万维网的数据通信的基础。

基本工作原理

HTTP 协议工作于客户端-服务端架构上。浏览器(如 Chrome、Firefox 等)作为客户端,发送请求到服务器,然后服务器响应该请求,并将请求的资源(如 HTML 文档)发送到客户端。HTTP 是无状态协议,这意味着服务器不会在两个请求之间保存任何数据。每次的请求都是独立的,服务器无法识别发出请求的是同一客户端。为了解决这个问题,Web 应用通常使用 Cookie 和 Session 来维护状态。

请求与响应

一个 HTTP 交互主要包含请求(Request)和响应(Response)两个部分。

  1. 请求: 当你在浏览器中输入一个 URL 时,浏览器会创建一个 HTTP 请求。这个请求包含了方法、URL、HTTP 版本、Headers(头部)和可能的 Body。Headers 包含了描述请求或者客户端本身的元数据,如 User-Agent、Accept-Language 等。Body 用于携带 POST、PUT 方法的数据。

  2. 响应: 服务器接收到请求后,会解析请求中的内容,根据请求的内容做出相应的响应,响应中会包含 HTTP 版本、状态码、状态消息、响应头部和响应体。响应的头部包含了有关服务器和响应的元数据,如 Content-Type、Content-Length 等。响应的体包含了实际的资源内容。

常见的 HTTP 方法

  • GET: 请求特定的页面信息,并返回实体主体。
  • POST: 向指定资源提交数据进行处理请求(例如提交表单或上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。
  • PUT: 从客户端向服务器传送的数据取代指定的文档的内容。
  • DELETE: 请求服务器删除指定的页面。
  • HEAD: 与 GET 方法一样,但服务器在响应中只返回头部,不返回实体的主体。
  • OPTIONS: 用于描述服务器的通信选项。
  • PATCH: 用于对资源进行部分修改。

常见的状态码

  • 200 OK: 请求成功。
  • 201 Created: 请求已经被实现,而且有一个新的资源已经依据请求的需要而建立。
  • 204 No Content: 服务器成功处理了请求,但不需要返回任何实体内容。
  • 301 Moved Permanently: 请求的网页已永久移动到新位置。
  • 400 Bad Request: 服务器无法理解请求的格式。
  • 403 Forbidden: 服务器拒绝请求。
  • 404 Not Found: 请求的资源未在服务器上找到。
  • 500 Internal Server Error: 服务器遇到了错误,无法完成请求。
  • 504 Gateway Timeout: 服务器作为网关或代理,但是没有及时从上游服务器收到请求。

HTTP 与 HTTPS

HTTPS 是一种通过计算机网络进行安全通信的传输协议。HTTPS 通过 HTTP 进行通信,但利用 SSL/TLS 来加密数据包。HTTPS 在传输数据包时,会使用 SSL/TLS 协议对数据包进行加密处理。这个过程中,客户端和服务器会进行一次握手,协商生成加密的密钥。这保证了即便数据包在传输过程中被拦截,拦截者也无法解密其中的信息。同时,HTTPS 还提供了数据完整性校验和认证,确保数据在传输过程中不会被篡改,并且客户端是与正确的服务器通信。

总之,HTTP 协议是互联网中应用非常广泛的一种协议,它规定了客户端和服务器之间的通信规范,使得互联网的信息可以顺利地在网络中传输。